WORST_CASE(?,O(n^4)) * Step 1: Sum. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c42(#EQ'(z0,z1)) #GREATER(z0,z1) -> c43(#CKGT(#compare(z0,z1)),#COMPARE(z0,z1)) APPEND(z0,z1) -> c44(APPEND#1(z0,z1)) APPEND#1(::(z0,z1),z2) -> c45(APPEND(z1,z2)) APPEND#1(nil(),z0) -> c46() INSERT(z0,z1) -> c47(INSERT#1(z0,z1,z0)) INSERT#1(tuple#2(z0,z1),z2,z3) -> c48(INSERT#2(z2,z1,z0,z3)) INSERT#2(::(z0,z1),z2,z3,z4) -> c49(INSERT#3(z0,z2,z1,z3,z4)) INSERT#2(nil(),z0,z1,z2) -> c50() INSERT#3(tuple#2(z0,z1),z2,z3,z4,z5) -> c51(INSERT#4(#equal(z1,z2),z1,z3,z4,z0,z5),#EQUAL(z1,z2)) INSERT#4(#false(),z0,z1,z2,z3,z4) -> c52(INSERT(z4,z1)) INSERT#4(#true(),z0,z1,z2,z3,z4) -> c53() QUICKSORT(z0) -> c54(QUICKSORT#1(z0)) QUICKSORT#1(::(z0,z1)) -> c55(QUICKSORT#2(splitqs(z0,z1),z0),SPLITQS(z0,z1)) QUICKSORT#1(nil()) -> c56() QUICKSORT#2(tuple#2(z0,z1),z2) -> c57(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z0)) QUICKSORT#2(tuple#2(z0,z1),z2) -> c58(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z1)) SORTALL(z0) -> c59(SORTALL#1(z0)) SORTALL#1(::(z0,z1)) -> c60(SORTALL#2(z0,z1)) SORTALL#1(nil()) -> c61() SORTALL#2(tuple#2(z0,z1),z2) -> c62(QUICKSORT(z0)) SORTALL#2(tuple#2(z0,z1),z2) -> c63(SORTALL(z2)) SPLIT(z0) -> c64(SPLIT#1(z0)) SPLIT#1(::(z0,z1)) -> c65(INSERT(z0,split(z1)),SPLIT(z1)) SPLIT#1(nil()) -> c66() SPLITANDSORT(z0) -> c67(SORTALL(split(z0)),SPLIT(z0)) SPLITQS(z0,z1) -> c68(SPLITQS#1(z1,z0)) SPLITQS#1(::(z0,z1),z2) -> c69(SPLITQS#2(splitqs(z2,z1),z2,z0),SPLITQS(z2,z1)) SPLITQS#1(nil(),z0) -> c70() SPLITQS#2(tuple#2(z0,z1),z2,z3) -> c71(SPLITQS#3(#greater(z3,z2),z0,z1,z3),#GREATER(z3,z2)) SPLITQS#3(#false(),z0,z1,z2) -> c72() SPLITQS#3(#true(),z0,z1,z2) -> c73() - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #CKGT(#EQ()) -> c4() #CKGT(#GT()) -> c5() #CKGT(#LT()) -> c6() #COMPARE(#0(),#0()) -> c7() #COMPARE(#0(),#neg(z0)) -> c8() #COMPARE(#0(),#pos(z0)) -> c9() #COMPARE(#0(),#s(z0)) -> c10() #COMPARE(#neg(z0),#0()) -> c11() #COMPARE(#neg(z0),#neg(z1)) -> c12(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c13() #COMPARE(#pos(z0),#0()) -> c14() #COMPARE(#pos(z0),#neg(z1)) -> c15() #COMPARE(#pos(z0),#pos(z1)) -> c16(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c17() #COMPARE(#s(z0),#s(z1)) -> c18(#COMPARE(z0,z1)) #EQ'(#0(),#0()) -> c19() #EQ'(#0(),#neg(z0)) -> c20() #EQ'(#0(),#pos(z0)) -> c21() #EQ'(#0(),#s(z0)) -> c22() #EQ'(#neg(z0),#0()) -> c23() #EQ'(#neg(z0),#neg(z1)) -> c24(#EQ'(z0,z1)) #EQ'(#neg(z0),#pos(z1)) -> c25() #EQ'(#pos(z0),#0()) -> c26() #EQ'(#pos(z0),#neg(z1)) -> c27() #EQ'(#pos(z0),#pos(z1)) -> c28(#EQ'(z0,z1)) #EQ'(#s(z0),#0()) -> c29() #EQ'(#s(z0),#s(z1)) -> c30(#EQ'(z0,z1)) #EQ'(::(z0,z1),::(z2,z3)) -> c31(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(::(z0,z1),::(z2,z3)) -> c32(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #EQ'(::(z0,z1),nil()) -> c33() #EQ'(::(z0,z1),tuple#2(z2,z3)) -> c34() #EQ'(nil(),::(z0,z1)) -> c35() #EQ'(nil(),nil()) -> c36() #EQ'(nil(),tuple#2(z0,z1)) -> c37() #EQ'(tuple#2(z0,z1),::(z2,z3)) -> c38() #EQ'(tuple#2(z0,z1),nil()) -> c39() #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c40(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c41(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #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(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) sortAll(z0) -> sortAll#1(z0) sortAll#1(::(z0,z1)) -> sortAll#2(z0,z1) sortAll#1(nil()) -> nil() sortAll#2(tuple#2(z0,z1),z2) -> ::(tuple#2(quicksort(z0),z1),sortAll(z2)) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitAndSort(z0) -> sortAll(split(z0)) splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0 ,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0 ,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2 ,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2 ,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#CKGT,#COMPARE,#EQ',#EQUAL,#GREATER,#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,append,append#1,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2 ,sortAll,sortAll#1,sortAll#2,split,split#1,splitAndSort,splitqs,splitqs#1,splitqs#2 ,splitqs#3} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16 ,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40 ,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65 ,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DependencyPairs. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c42(#EQ'(z0,z1)) #GREATER(z0,z1) -> c43(#CKGT(#compare(z0,z1)),#COMPARE(z0,z1)) APPEND(z0,z1) -> c44(APPEND#1(z0,z1)) APPEND#1(::(z0,z1),z2) -> c45(APPEND(z1,z2)) APPEND#1(nil(),z0) -> c46() INSERT(z0,z1) -> c47(INSERT#1(z0,z1,z0)) INSERT#1(tuple#2(z0,z1),z2,z3) -> c48(INSERT#2(z2,z1,z0,z3)) INSERT#2(::(z0,z1),z2,z3,z4) -> c49(INSERT#3(z0,z2,z1,z3,z4)) INSERT#2(nil(),z0,z1,z2) -> c50() INSERT#3(tuple#2(z0,z1),z2,z3,z4,z5) -> c51(INSERT#4(#equal(z1,z2),z1,z3,z4,z0,z5),#EQUAL(z1,z2)) INSERT#4(#false(),z0,z1,z2,z3,z4) -> c52(INSERT(z4,z1)) INSERT#4(#true(),z0,z1,z2,z3,z4) -> c53() QUICKSORT(z0) -> c54(QUICKSORT#1(z0)) QUICKSORT#1(::(z0,z1)) -> c55(QUICKSORT#2(splitqs(z0,z1),z0),SPLITQS(z0,z1)) QUICKSORT#1(nil()) -> c56() QUICKSORT#2(tuple#2(z0,z1),z2) -> c57(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z0)) QUICKSORT#2(tuple#2(z0,z1),z2) -> c58(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z1)) SORTALL(z0) -> c59(SORTALL#1(z0)) SORTALL#1(::(z0,z1)) -> c60(SORTALL#2(z0,z1)) SORTALL#1(nil()) -> c61() SORTALL#2(tuple#2(z0,z1),z2) -> c62(QUICKSORT(z0)) SORTALL#2(tuple#2(z0,z1),z2) -> c63(SORTALL(z2)) SPLIT(z0) -> c64(SPLIT#1(z0)) SPLIT#1(::(z0,z1)) -> c65(INSERT(z0,split(z1)),SPLIT(z1)) SPLIT#1(nil()) -> c66() SPLITANDSORT(z0) -> c67(SORTALL(split(z0)),SPLIT(z0)) SPLITQS(z0,z1) -> c68(SPLITQS#1(z1,z0)) SPLITQS#1(::(z0,z1),z2) -> c69(SPLITQS#2(splitqs(z2,z1),z2,z0),SPLITQS(z2,z1)) SPLITQS#1(nil(),z0) -> c70() SPLITQS#2(tuple#2(z0,z1),z2,z3) -> c71(SPLITQS#3(#greater(z3,z2),z0,z1,z3),#GREATER(z3,z2)) SPLITQS#3(#false(),z0,z1,z2) -> c72() SPLITQS#3(#true(),z0,z1,z2) -> c73() - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #CKGT(#EQ()) -> c4() #CKGT(#GT()) -> c5() #CKGT(#LT()) -> c6() #COMPARE(#0(),#0()) -> c7() #COMPARE(#0(),#neg(z0)) -> c8() #COMPARE(#0(),#pos(z0)) -> c9() #COMPARE(#0(),#s(z0)) -> c10() #COMPARE(#neg(z0),#0()) -> c11() #COMPARE(#neg(z0),#neg(z1)) -> c12(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c13() #COMPARE(#pos(z0),#0()) -> c14() #COMPARE(#pos(z0),#neg(z1)) -> c15() #COMPARE(#pos(z0),#pos(z1)) -> c16(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c17() #COMPARE(#s(z0),#s(z1)) -> c18(#COMPARE(z0,z1)) #EQ'(#0(),#0()) -> c19() #EQ'(#0(),#neg(z0)) -> c20() #EQ'(#0(),#pos(z0)) -> c21() #EQ'(#0(),#s(z0)) -> c22() #EQ'(#neg(z0),#0()) -> c23() #EQ'(#neg(z0),#neg(z1)) -> c24(#EQ'(z0,z1)) #EQ'(#neg(z0),#pos(z1)) -> c25() #EQ'(#pos(z0),#0()) -> c26() #EQ'(#pos(z0),#neg(z1)) -> c27() #EQ'(#pos(z0),#pos(z1)) -> c28(#EQ'(z0,z1)) #EQ'(#s(z0),#0()) -> c29() #EQ'(#s(z0),#s(z1)) -> c30(#EQ'(z0,z1)) #EQ'(::(z0,z1),::(z2,z3)) -> c31(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(::(z0,z1),::(z2,z3)) -> c32(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #EQ'(::(z0,z1),nil()) -> c33() #EQ'(::(z0,z1),tuple#2(z2,z3)) -> c34() #EQ'(nil(),::(z0,z1)) -> c35() #EQ'(nil(),nil()) -> c36() #EQ'(nil(),tuple#2(z0,z1)) -> c37() #EQ'(tuple#2(z0,z1),::(z2,z3)) -> c38() #EQ'(tuple#2(z0,z1),nil()) -> c39() #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c40(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c41(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #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(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) sortAll(z0) -> sortAll#1(z0) sortAll#1(::(z0,z1)) -> sortAll#2(z0,z1) sortAll#1(nil()) -> nil() sortAll#2(tuple#2(z0,z1),z2) -> ::(tuple#2(quicksort(z0),z1),sortAll(z2)) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitAndSort(z0) -> sortAll(split(z0)) splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0 ,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0 ,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2 ,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2 ,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#CKGT,#COMPARE,#EQ',#EQUAL,#GREATER,#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,append,append#1,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2 ,sortAll,sortAll#1,sortAll#2,split,split#1,splitAndSort,splitqs,splitqs#1,splitqs#2 ,splitqs#3} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16 ,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40 ,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65 ,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) APPEND#1#(nil(),z0) -> c_5() INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#1#(nil()) -> c_15() QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#1#(nil()) -> c_20() SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLIT#1#(nil()) -> c_25() SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() Weak DPs #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() and mark the set of starting terms. * Step 3: UsableRules. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) APPEND#1#(nil(),z0) -> c_5() INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#1#(nil()) -> c_15() QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#1#(nil()) -> c_20() SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLIT#1#(nil()) -> c_25() SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() - Weak DPs: #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #CKGT(#EQ()) -> c4() #CKGT(#GT()) -> c5() #CKGT(#LT()) -> c6() #COMPARE(#0(),#0()) -> c7() #COMPARE(#0(),#neg(z0)) -> c8() #COMPARE(#0(),#pos(z0)) -> c9() #COMPARE(#0(),#s(z0)) -> c10() #COMPARE(#neg(z0),#0()) -> c11() #COMPARE(#neg(z0),#neg(z1)) -> c12(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c13() #COMPARE(#pos(z0),#0()) -> c14() #COMPARE(#pos(z0),#neg(z1)) -> c15() #COMPARE(#pos(z0),#pos(z1)) -> c16(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c17() #COMPARE(#s(z0),#s(z1)) -> c18(#COMPARE(z0,z1)) #EQ'(#0(),#0()) -> c19() #EQ'(#0(),#neg(z0)) -> c20() #EQ'(#0(),#pos(z0)) -> c21() #EQ'(#0(),#s(z0)) -> c22() #EQ'(#neg(z0),#0()) -> c23() #EQ'(#neg(z0),#neg(z1)) -> c24(#EQ'(z0,z1)) #EQ'(#neg(z0),#pos(z1)) -> c25() #EQ'(#pos(z0),#0()) -> c26() #EQ'(#pos(z0),#neg(z1)) -> c27() #EQ'(#pos(z0),#pos(z1)) -> c28(#EQ'(z0,z1)) #EQ'(#s(z0),#0()) -> c29() #EQ'(#s(z0),#s(z1)) -> c30(#EQ'(z0,z1)) #EQ'(::(z0,z1),::(z2,z3)) -> c31(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(::(z0,z1),::(z2,z3)) -> c32(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #EQ'(::(z0,z1),nil()) -> c33() #EQ'(::(z0,z1),tuple#2(z2,z3)) -> c34() #EQ'(nil(),::(z0,z1)) -> c35() #EQ'(nil(),nil()) -> c36() #EQ'(nil(),tuple#2(z0,z1)) -> c37() #EQ'(tuple#2(z0,z1),::(z2,z3)) -> c38() #EQ'(tuple#2(z0,z1),nil()) -> c39() #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c40(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z0,z2)) #EQ'(tuple#2(z0,z1),tuple#2(z2,z3)) -> c41(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ'(z1,z3)) #EQUAL(z0,z1) -> c42(#EQ'(z0,z1)) #GREATER(z0,z1) -> c43(#CKGT(#compare(z0,z1)),#COMPARE(z0,z1)) #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(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) APPEND(z0,z1) -> c44(APPEND#1(z0,z1)) APPEND#1(::(z0,z1),z2) -> c45(APPEND(z1,z2)) APPEND#1(nil(),z0) -> c46() INSERT(z0,z1) -> c47(INSERT#1(z0,z1,z0)) INSERT#1(tuple#2(z0,z1),z2,z3) -> c48(INSERT#2(z2,z1,z0,z3)) INSERT#2(::(z0,z1),z2,z3,z4) -> c49(INSERT#3(z0,z2,z1,z3,z4)) INSERT#2(nil(),z0,z1,z2) -> c50() INSERT#3(tuple#2(z0,z1),z2,z3,z4,z5) -> c51(INSERT#4(#equal(z1,z2),z1,z3,z4,z0,z5),#EQUAL(z1,z2)) INSERT#4(#false(),z0,z1,z2,z3,z4) -> c52(INSERT(z4,z1)) INSERT#4(#true(),z0,z1,z2,z3,z4) -> c53() QUICKSORT(z0) -> c54(QUICKSORT#1(z0)) QUICKSORT#1(::(z0,z1)) -> c55(QUICKSORT#2(splitqs(z0,z1),z0),SPLITQS(z0,z1)) QUICKSORT#1(nil()) -> c56() QUICKSORT#2(tuple#2(z0,z1),z2) -> c57(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z0)) QUICKSORT#2(tuple#2(z0,z1),z2) -> c58(APPEND(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT(z1)) SORTALL(z0) -> c59(SORTALL#1(z0)) SORTALL#1(::(z0,z1)) -> c60(SORTALL#2(z0,z1)) SORTALL#1(nil()) -> c61() SORTALL#2(tuple#2(z0,z1),z2) -> c62(QUICKSORT(z0)) SORTALL#2(tuple#2(z0,z1),z2) -> c63(SORTALL(z2)) SPLIT(z0) -> c64(SPLIT#1(z0)) SPLIT#1(::(z0,z1)) -> c65(INSERT(z0,split(z1)),SPLIT(z1)) SPLIT#1(nil()) -> c66() SPLITANDSORT(z0) -> c67(SORTALL(split(z0)),SPLIT(z0)) SPLITQS(z0,z1) -> c68(SPLITQS#1(z1,z0)) SPLITQS#1(::(z0,z1),z2) -> c69(SPLITQS#2(splitqs(z2,z1),z2,z0),SPLITQS(z2,z1)) SPLITQS#1(nil(),z0) -> c70() SPLITQS#2(tuple#2(z0,z1),z2,z3) -> c71(SPLITQS#3(#greater(z3,z2),z0,z1,z3),#GREATER(z3,z2)) SPLITQS#3(#false(),z0,z1,z2) -> c72() SPLITQS#3(#true(),z0,z1,z2) -> c73() append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) sortAll(z0) -> sortAll#1(z0) sortAll#1(::(z0,z1)) -> sortAll#2(z0,z1) sortAll#1(nil()) -> nil() sortAll#2(tuple#2(z0,z1),z2) -> ::(tuple#2(quicksort(z0),z1),sortAll(z2)) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitAndSort(z0) -> sortAll(split(z0)) splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0,c_10/3,c_11/1,c_12/0,c_13/1 ,c_14/3,c_15/0,c_16/4,c_17/4,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/3,c_25/0,c_26/3,c_27/1,c_28/3 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) APPEND#1#(nil(),z0) -> c_5() INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#1#(nil()) -> c_15() QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#1#(nil()) -> c_20() SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLIT#1#(nil()) -> c_25() SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() * Step 4: PredecessorEstimation. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) APPEND#1#(nil(),z0) -> c_5() INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#1#(nil()) -> c_15() QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#1#(nil()) -> c_20() SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLIT#1#(nil()) -> c_25() SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() - Weak DPs: #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0,c_10/3,c_11/1,c_12/0,c_13/1 ,c_14/3,c_15/0,c_16/4,c_17/4,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/3,c_25/0,c_26/3,c_27/1,c_28/3 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,5,9,12,15,20,25,29,31,32} by application of Pre({1,2,5,9,12,15,20,25,29,31,32}) = {3,7,10,13,18,23,27,30}. Here rules are labelled as follows: 1: #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) 2: #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 3: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) 4: APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) 5: APPEND#1#(nil(),z0) -> c_5() 6: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 7: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 8: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 9: INSERT#2#(nil(),z0,z1,z2) -> c_9() 10: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) 11: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 12: INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() 13: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 14: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) 15: QUICKSORT#1#(nil()) -> c_15() 16: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) 17: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) 18: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 19: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 20: SORTALL#1#(nil()) -> c_20() 21: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 22: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 23: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 24: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) 25: SPLIT#1#(nil()) -> c_25() 26: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) 27: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 28: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) 29: SPLITQS#1#(nil(),z0) -> c_29() 30: SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) 31: SPLITQS#3#(#false(),z0,z1,z2) -> c_31() 32: SPLITQS#3#(#true(),z0,z1,z2) -> c_32() 33: #AND#(#false(),#false()) -> c_33() 34: #AND#(#false(),#true()) -> c_34() 35: #AND#(#true(),#false()) -> c_35() 36: #AND#(#true(),#true()) -> c_36() 37: #CKGT#(#EQ()) -> c_37() 38: #CKGT#(#GT()) -> c_38() 39: #CKGT#(#LT()) -> c_39() 40: #COMPARE#(#0(),#0()) -> c_40() 41: #COMPARE#(#0(),#neg(z0)) -> c_41() 42: #COMPARE#(#0(),#pos(z0)) -> c_42() 43: #COMPARE#(#0(),#s(z0)) -> c_43() 44: #COMPARE#(#neg(z0),#0()) -> c_44() 45: #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) 46: #COMPARE#(#neg(z0),#pos(z1)) -> c_46() 47: #COMPARE#(#pos(z0),#0()) -> c_47() 48: #COMPARE#(#pos(z0),#neg(z1)) -> c_48() 49: #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) 50: #COMPARE#(#s(z0),#0()) -> c_50() 51: #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) 52: #EQ'#(#0(),#0()) -> c_52() 53: #EQ'#(#0(),#neg(z0)) -> c_53() 54: #EQ'#(#0(),#pos(z0)) -> c_54() 55: #EQ'#(#0(),#s(z0)) -> c_55() 56: #EQ'#(#neg(z0),#0()) -> c_56() 57: #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) 58: #EQ'#(#neg(z0),#pos(z1)) -> c_58() 59: #EQ'#(#pos(z0),#0()) -> c_59() 60: #EQ'#(#pos(z0),#neg(z1)) -> c_60() 61: #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) 62: #EQ'#(#s(z0),#0()) -> c_62() 63: #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) 64: #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) 65: #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) 66: #EQ'#(::(z0,z1),nil()) -> c_66() 67: #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() 68: #EQ'#(nil(),::(z0,z1)) -> c_68() 69: #EQ'#(nil(),nil()) -> c_69() 70: #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() 71: #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() 72: #EQ'#(tuple#2(z0,z1),nil()) -> c_72() 73: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) 74: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) 75: #and#(#false(),#false()) -> c_75() 76: #and#(#false(),#true()) -> c_76() 77: #and#(#true(),#false()) -> c_77() 78: #and#(#true(),#true()) -> c_78() 79: #ckgt#(#EQ()) -> c_79() 80: #ckgt#(#GT()) -> c_80() 81: #ckgt#(#LT()) -> c_81() 82: #compare#(#0(),#0()) -> c_82() 83: #compare#(#0(),#neg(z0)) -> c_83() 84: #compare#(#0(),#pos(z0)) -> c_84() 85: #compare#(#0(),#s(z0)) -> c_85() 86: #compare#(#neg(z0),#0()) -> c_86() 87: #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) 88: #compare#(#neg(z0),#pos(z1)) -> c_88() 89: #compare#(#pos(z0),#0()) -> c_89() 90: #compare#(#pos(z0),#neg(z1)) -> c_90() 91: #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) 92: #compare#(#s(z0),#0()) -> c_92() 93: #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) 94: #eq#(#0(),#0()) -> c_94() 95: #eq#(#0(),#neg(z0)) -> c_95() 96: #eq#(#0(),#pos(z0)) -> c_96() 97: #eq#(#0(),#s(z0)) -> c_97() 98: #eq#(#neg(z0),#0()) -> c_98() 99: #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) 100: #eq#(#neg(z0),#pos(z1)) -> c_100() 101: #eq#(#pos(z0),#0()) -> c_101() 102: #eq#(#pos(z0),#neg(z1)) -> c_102() 103: #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) 104: #eq#(#s(z0),#0()) -> c_104() 105: #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) 106: #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 107: #eq#(::(z0,z1),nil()) -> c_107() 108: #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() 109: #eq#(nil(),::(z0,z1)) -> c_109() 110: #eq#(nil(),nil()) -> c_110() 111: #eq#(nil(),tuple#2(z0,z1)) -> c_111() 112: #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() 113: #eq#(tuple#2(z0,z1),nil()) -> c_113() 114: #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 115: #equal#(z0,z1) -> c_115(#eq#(z0,z1)) 116: #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) 117: append#(z0,z1) -> c_117(append#1#(z0,z1)) 118: append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) 119: append#1#(nil(),z0) -> c_119() 120: insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) 121: insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) 122: insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) 123: insert#2#(nil(),z0,z1,z2) -> c_123() 124: insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) 125: insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) 126: insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() 127: quicksort#(z0) -> c_127(quicksort#1#(z0)) 128: quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) 129: quicksort#1#(nil()) -> c_129() 130: quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) 131: sortAll#(z0) -> c_131(sortAll#1#(z0)) 132: sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) 133: sortAll#1#(nil()) -> c_133() 134: sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) 135: split#(z0) -> c_135(split#1#(z0)) 136: split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) 137: split#1#(nil()) -> c_137() 138: splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) 139: splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) 140: splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) 141: splitqs#1#(nil(),z0) -> c_141() 142: splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) 143: splitqs#3#(#false(),z0,z1,z2) -> c_143() 144: splitqs#3#(#true(),z0,z1,z2) -> c_144() * Step 5: PredecessorEstimation. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) - Weak DPs: #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) APPEND#1#(nil(),z0) -> c_5() INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#1#(nil()) -> c_15() SORTALL#1#(nil()) -> c_20() SPLIT#1#(nil()) -> c_25() SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0,c_10/3,c_11/1,c_12/0,c_13/1 ,c_14/3,c_15/0,c_16/4,c_17/4,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/3,c_25/0,c_26/3,c_27/1,c_28/3 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {21} by application of Pre({21}) = {20}. Here rules are labelled as follows: 1: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) 2: APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) 3: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 4: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 5: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 6: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) 7: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 8: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 9: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) 10: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) 11: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) 12: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 13: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 14: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 15: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 16: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 17: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) 18: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) 19: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 20: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) 21: SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) 22: #AND#(#false(),#false()) -> c_33() 23: #AND#(#false(),#true()) -> c_34() 24: #AND#(#true(),#false()) -> c_35() 25: #AND#(#true(),#true()) -> c_36() 26: #CKGT#(#EQ()) -> c_37() 27: #CKGT#(#GT()) -> c_38() 28: #CKGT#(#LT()) -> c_39() 29: #COMPARE#(#0(),#0()) -> c_40() 30: #COMPARE#(#0(),#neg(z0)) -> c_41() 31: #COMPARE#(#0(),#pos(z0)) -> c_42() 32: #COMPARE#(#0(),#s(z0)) -> c_43() 33: #COMPARE#(#neg(z0),#0()) -> c_44() 34: #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) 35: #COMPARE#(#neg(z0),#pos(z1)) -> c_46() 36: #COMPARE#(#pos(z0),#0()) -> c_47() 37: #COMPARE#(#pos(z0),#neg(z1)) -> c_48() 38: #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) 39: #COMPARE#(#s(z0),#0()) -> c_50() 40: #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) 41: #EQ'#(#0(),#0()) -> c_52() 42: #EQ'#(#0(),#neg(z0)) -> c_53() 43: #EQ'#(#0(),#pos(z0)) -> c_54() 44: #EQ'#(#0(),#s(z0)) -> c_55() 45: #EQ'#(#neg(z0),#0()) -> c_56() 46: #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) 47: #EQ'#(#neg(z0),#pos(z1)) -> c_58() 48: #EQ'#(#pos(z0),#0()) -> c_59() 49: #EQ'#(#pos(z0),#neg(z1)) -> c_60() 50: #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) 51: #EQ'#(#s(z0),#0()) -> c_62() 52: #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) 53: #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) 54: #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) 55: #EQ'#(::(z0,z1),nil()) -> c_66() 56: #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() 57: #EQ'#(nil(),::(z0,z1)) -> c_68() 58: #EQ'#(nil(),nil()) -> c_69() 59: #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() 60: #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() 61: #EQ'#(tuple#2(z0,z1),nil()) -> c_72() 62: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) 63: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) 64: #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) 65: #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 66: #and#(#false(),#false()) -> c_75() 67: #and#(#false(),#true()) -> c_76() 68: #and#(#true(),#false()) -> c_77() 69: #and#(#true(),#true()) -> c_78() 70: #ckgt#(#EQ()) -> c_79() 71: #ckgt#(#GT()) -> c_80() 72: #ckgt#(#LT()) -> c_81() 73: #compare#(#0(),#0()) -> c_82() 74: #compare#(#0(),#neg(z0)) -> c_83() 75: #compare#(#0(),#pos(z0)) -> c_84() 76: #compare#(#0(),#s(z0)) -> c_85() 77: #compare#(#neg(z0),#0()) -> c_86() 78: #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) 79: #compare#(#neg(z0),#pos(z1)) -> c_88() 80: #compare#(#pos(z0),#0()) -> c_89() 81: #compare#(#pos(z0),#neg(z1)) -> c_90() 82: #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) 83: #compare#(#s(z0),#0()) -> c_92() 84: #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) 85: #eq#(#0(),#0()) -> c_94() 86: #eq#(#0(),#neg(z0)) -> c_95() 87: #eq#(#0(),#pos(z0)) -> c_96() 88: #eq#(#0(),#s(z0)) -> c_97() 89: #eq#(#neg(z0),#0()) -> c_98() 90: #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) 91: #eq#(#neg(z0),#pos(z1)) -> c_100() 92: #eq#(#pos(z0),#0()) -> c_101() 93: #eq#(#pos(z0),#neg(z1)) -> c_102() 94: #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) 95: #eq#(#s(z0),#0()) -> c_104() 96: #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) 97: #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 98: #eq#(::(z0,z1),nil()) -> c_107() 99: #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() 100: #eq#(nil(),::(z0,z1)) -> c_109() 101: #eq#(nil(),nil()) -> c_110() 102: #eq#(nil(),tuple#2(z0,z1)) -> c_111() 103: #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() 104: #eq#(tuple#2(z0,z1),nil()) -> c_113() 105: #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 106: #equal#(z0,z1) -> c_115(#eq#(z0,z1)) 107: #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) 108: APPEND#1#(nil(),z0) -> c_5() 109: INSERT#2#(nil(),z0,z1,z2) -> c_9() 110: INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() 111: QUICKSORT#1#(nil()) -> c_15() 112: SORTALL#1#(nil()) -> c_20() 113: SPLIT#1#(nil()) -> c_25() 114: SPLITQS#1#(nil(),z0) -> c_29() 115: SPLITQS#3#(#false(),z0,z1,z2) -> c_31() 116: SPLITQS#3#(#true(),z0,z1,z2) -> c_32() 117: append#(z0,z1) -> c_117(append#1#(z0,z1)) 118: append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) 119: append#1#(nil(),z0) -> c_119() 120: insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) 121: insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) 122: insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) 123: insert#2#(nil(),z0,z1,z2) -> c_123() 124: insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) 125: insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) 126: insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() 127: quicksort#(z0) -> c_127(quicksort#1#(z0)) 128: quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) 129: quicksort#1#(nil()) -> c_129() 130: quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) 131: sortAll#(z0) -> c_131(sortAll#1#(z0)) 132: sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) 133: sortAll#1#(nil()) -> c_133() 134: sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) 135: split#(z0) -> c_135(split#1#(z0)) 136: split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) 137: split#1#(nil()) -> c_137() 138: splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) 139: splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) 140: splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) 141: splitqs#1#(nil(),z0) -> c_141() 142: splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) 143: splitqs#3#(#false(),z0,z1,z2) -> c_143() 144: splitqs#3#(#true(),z0,z1,z2) -> c_144() * Step 6: RemoveWeakSuffixes. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) - Weak DPs: #AND#(#false(),#false()) -> c_33() #AND#(#false(),#true()) -> c_34() #AND#(#true(),#false()) -> c_35() #AND#(#true(),#true()) -> c_36() #CKGT#(#EQ()) -> c_37() #CKGT#(#GT()) -> c_38() #CKGT#(#LT()) -> c_39() #COMPARE#(#0(),#0()) -> c_40() #COMPARE#(#0(),#neg(z0)) -> c_41() #COMPARE#(#0(),#pos(z0)) -> c_42() #COMPARE#(#0(),#s(z0)) -> c_43() #COMPARE#(#neg(z0),#0()) -> c_44() #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_46() #COMPARE#(#pos(z0),#0()) -> c_47() #COMPARE#(#pos(z0),#neg(z1)) -> c_48() #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_50() #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) #EQ'#(#0(),#0()) -> c_52() #EQ'#(#0(),#neg(z0)) -> c_53() #EQ'#(#0(),#pos(z0)) -> c_54() #EQ'#(#0(),#s(z0)) -> c_55() #EQ'#(#neg(z0),#0()) -> c_56() #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) #EQ'#(#neg(z0),#pos(z1)) -> c_58() #EQ'#(#pos(z0),#0()) -> c_59() #EQ'#(#pos(z0),#neg(z1)) -> c_60() #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) #EQ'#(#s(z0),#0()) -> c_62() #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) #EQ'#(::(z0,z1),nil()) -> c_66() #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() #EQ'#(nil(),::(z0,z1)) -> c_68() #EQ'#(nil(),nil()) -> c_69() #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() #EQ'#(tuple#2(z0,z1),nil()) -> c_72() #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) #and#(#false(),#false()) -> c_75() #and#(#false(),#true()) -> c_76() #and#(#true(),#false()) -> c_77() #and#(#true(),#true()) -> c_78() #ckgt#(#EQ()) -> c_79() #ckgt#(#GT()) -> c_80() #ckgt#(#LT()) -> c_81() #compare#(#0(),#0()) -> c_82() #compare#(#0(),#neg(z0)) -> c_83() #compare#(#0(),#pos(z0)) -> c_84() #compare#(#0(),#s(z0)) -> c_85() #compare#(#neg(z0),#0()) -> c_86() #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_88() #compare#(#pos(z0),#0()) -> c_89() #compare#(#pos(z0),#neg(z1)) -> c_90() #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_92() #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) #eq#(#0(),#0()) -> c_94() #eq#(#0(),#neg(z0)) -> c_95() #eq#(#0(),#pos(z0)) -> c_96() #eq#(#0(),#s(z0)) -> c_97() #eq#(#neg(z0),#0()) -> c_98() #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_100() #eq#(#pos(z0),#0()) -> c_101() #eq#(#pos(z0),#neg(z1)) -> c_102() #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_104() #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_107() #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() #eq#(nil(),::(z0,z1)) -> c_109() #eq#(nil(),nil()) -> c_110() #eq#(nil(),tuple#2(z0,z1)) -> c_111() #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() #eq#(tuple#2(z0,z1),nil()) -> c_113() #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #equal#(z0,z1) -> c_115(#eq#(z0,z1)) #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) APPEND#1#(nil(),z0) -> c_5() INSERT#2#(nil(),z0,z1,z2) -> c_9() INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() QUICKSORT#1#(nil()) -> c_15() SORTALL#1#(nil()) -> c_20() SPLIT#1#(nil()) -> c_25() SPLITQS#1#(nil(),z0) -> c_29() SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) SPLITQS#3#(#false(),z0,z1,z2) -> c_31() SPLITQS#3#(#true(),z0,z1,z2) -> c_32() append#(z0,z1) -> c_117(append#1#(z0,z1)) append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) append#1#(nil(),z0) -> c_119() insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) insert#2#(nil(),z0,z1,z2) -> c_123() insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() quicksort#(z0) -> c_127(quicksort#1#(z0)) quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) quicksort#1#(nil()) -> c_129() quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) sortAll#(z0) -> c_131(sortAll#1#(z0)) sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) sortAll#1#(nil()) -> c_133() sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) split#(z0) -> c_135(split#1#(z0)) split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) split#1#(nil()) -> c_137() splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) splitqs#1#(nil(),z0) -> c_141() splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) splitqs#3#(#false(),z0,z1,z2) -> c_143() splitqs#3#(#true(),z0,z1,z2) -> c_144() - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0,c_10/3,c_11/1,c_12/0,c_13/1 ,c_14/3,c_15/0,c_16/4,c_17/4,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/3,c_25/0,c_26/3,c_27/1,c_28/3 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) -->_1 APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)):2 -->_1 APPEND#1#(nil(),z0) -> c_5():107 2:S:APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 3:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):4 4:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):5 -->_1 INSERT#2#(nil(),z0,z1,z2) -> c_9():108 5:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)):6 6:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) -->_2 #equal#(z0,z1) -> c_115(#eq#(z0,z1)):105 -->_3 #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)):63 -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):7 -->_1 INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12():109 7:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 8:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)):9 -->_1 QUICKSORT#1#(nil()) -> c_15():110 9:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) -->_2 splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)):139 -->_3 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)):11 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)):10 10:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) -->_3 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_2 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_4 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 11:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) -->_3 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_2 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_4 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 12:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):13 -->_1 SORTALL#1#(nil()) -> c_20():111 13:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):15 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):14 14:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 15:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 16:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)):17 -->_1 SPLIT#1#(nil()) -> c_25():112 17:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) -->_2 split#(z0) -> c_135(split#1#(z0)):135 -->_3 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 18:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) -->_2 split#(z0) -> c_135(split#1#(z0)):135 -->_3 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 19:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0) ,splitqs#(z2,z1) ,SPLITQS#(z2,z1)):20 -->_1 SPLITQS#1#(nil(),z0) -> c_29():113 20:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) -->_2 splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)):139 -->_1 SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)):114 -->_3 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 21:W:#AND#(#false(),#false()) -> c_33() 22:W:#AND#(#false(),#true()) -> c_34() 23:W:#AND#(#true(),#false()) -> c_35() 24:W:#AND#(#true(),#true()) -> c_36() 25:W:#CKGT#(#EQ()) -> c_37() 26:W:#CKGT#(#GT()) -> c_38() 27:W:#CKGT#(#LT()) -> c_39() 28:W:#COMPARE#(#0(),#0()) -> c_40() 29:W:#COMPARE#(#0(),#neg(z0)) -> c_41() 30:W:#COMPARE#(#0(),#pos(z0)) -> c_42() 31:W:#COMPARE#(#0(),#s(z0)) -> c_43() 32:W:#COMPARE#(#neg(z0),#0()) -> c_44() 33:W:#COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)):39 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)):37 -->_1 #COMPARE#(#s(z0),#0()) -> c_50():38 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_48():36 -->_1 #COMPARE#(#pos(z0),#0()) -> c_47():35 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_46():34 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)):33 -->_1 #COMPARE#(#neg(z0),#0()) -> c_44():32 -->_1 #COMPARE#(#0(),#s(z0)) -> c_43():31 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_42():30 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_41():29 -->_1 #COMPARE#(#0(),#0()) -> c_40():28 34:W:#COMPARE#(#neg(z0),#pos(z1)) -> c_46() 35:W:#COMPARE#(#pos(z0),#0()) -> c_47() 36:W:#COMPARE#(#pos(z0),#neg(z1)) -> c_48() 37:W:#COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)):39 -->_1 #COMPARE#(#s(z0),#0()) -> c_50():38 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)):37 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_48():36 -->_1 #COMPARE#(#pos(z0),#0()) -> c_47():35 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_46():34 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)):33 -->_1 #COMPARE#(#neg(z0),#0()) -> c_44():32 -->_1 #COMPARE#(#0(),#s(z0)) -> c_43():31 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_42():30 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_41():29 -->_1 #COMPARE#(#0(),#0()) -> c_40():28 38:W:#COMPARE#(#s(z0),#0()) -> c_50() 39:W:#COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)):39 -->_1 #COMPARE#(#s(z0),#0()) -> c_50():38 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)):37 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_48():36 -->_1 #COMPARE#(#pos(z0),#0()) -> c_47():35 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_46():34 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)):33 -->_1 #COMPARE#(#neg(z0),#0()) -> c_44():32 -->_1 #COMPARE#(#0(),#s(z0)) -> c_43():31 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_42():30 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_41():29 -->_1 #COMPARE#(#0(),#0()) -> c_40():28 40:W:#EQ'#(#0(),#0()) -> c_52() 41:W:#EQ'#(#0(),#neg(z0)) -> c_53() 42:W:#EQ'#(#0(),#pos(z0)) -> c_54() 43:W:#EQ'#(#0(),#s(z0)) -> c_55() 44:W:#EQ'#(#neg(z0),#0()) -> c_56() 45:W:#EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_1 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_1 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_1 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_1 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_1 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_1 #EQ'#(nil(),nil()) -> c_69():57 -->_1 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_1 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_1 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_1 #EQ'#(#s(z0),#0()) -> c_62():50 -->_1 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_1 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_1 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_1 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_1 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_1 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_1 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_1 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_1 #EQ'#(#0(),#0()) -> c_52():40 46:W:#EQ'#(#neg(z0),#pos(z1)) -> c_58() 47:W:#EQ'#(#pos(z0),#0()) -> c_59() 48:W:#EQ'#(#pos(z0),#neg(z1)) -> c_60() 49:W:#EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_1 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_1 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_1 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_1 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_1 #EQ'#(nil(),nil()) -> c_69():57 -->_1 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_1 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_1 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_1 #EQ'#(#s(z0),#0()) -> c_62():50 -->_1 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_1 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_1 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_1 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_1 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_1 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_1 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_1 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_1 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_1 #EQ'#(#0(),#0()) -> c_52():40 50:W:#EQ'#(#s(z0),#0()) -> c_62() 51:W:#EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_1 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_1 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_1 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_1 #EQ'#(nil(),nil()) -> c_69():57 -->_1 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_1 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_1 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_1 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_1 #EQ'#(#s(z0),#0()) -> c_62():50 -->_1 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_1 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_1 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_1 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_1 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_1 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_1 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_1 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_1 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_1 #EQ'#(#0(),#0()) -> c_52():40 52:W:#EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_4 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_4 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_4 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_4 #EQ'#(nil(),nil()) -> c_69():57 -->_4 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_4 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_4 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_4 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_4 #EQ'#(#s(z0),#0()) -> c_62():50 -->_4 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_4 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_4 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_4 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_4 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_4 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_4 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_4 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_4 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_4 #EQ'#(#0(),#0()) -> c_52():40 -->_1 #AND#(#true(),#true()) -> c_36():24 -->_1 #AND#(#true(),#false()) -> c_35():23 -->_1 #AND#(#false(),#true()) -> c_34():22 -->_1 #AND#(#false(),#false()) -> c_33():21 53:W:#EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_4 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_4 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_4 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_4 #EQ'#(nil(),nil()) -> c_69():57 -->_4 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_4 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_4 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_4 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_4 #EQ'#(#s(z0),#0()) -> c_62():50 -->_4 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_4 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_4 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_4 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_4 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_4 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_4 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_4 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_4 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_4 #EQ'#(#0(),#0()) -> c_52():40 -->_1 #AND#(#true(),#true()) -> c_36():24 -->_1 #AND#(#true(),#false()) -> c_35():23 -->_1 #AND#(#false(),#true()) -> c_34():22 -->_1 #AND#(#false(),#false()) -> c_33():21 54:W:#EQ'#(::(z0,z1),nil()) -> c_66() 55:W:#EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() 56:W:#EQ'#(nil(),::(z0,z1)) -> c_68() 57:W:#EQ'#(nil(),nil()) -> c_69() 58:W:#EQ'#(nil(),tuple#2(z0,z1)) -> c_70() 59:W:#EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() 60:W:#EQ'#(tuple#2(z0,z1),nil()) -> c_72() 61:W:#EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_4 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_4 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_4 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_4 #EQ'#(nil(),nil()) -> c_69():57 -->_4 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_4 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_4 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_4 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_4 #EQ'#(#s(z0),#0()) -> c_62():50 -->_4 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_4 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_4 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_4 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_4 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_4 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_4 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_4 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_4 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_4 #EQ'#(#0(),#0()) -> c_52():40 -->_1 #AND#(#true(),#true()) -> c_36():24 -->_1 #AND#(#true(),#false()) -> c_35():23 -->_1 #AND#(#false(),#true()) -> c_34():22 -->_1 #AND#(#false(),#false()) -> c_33():21 62:W:#EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_4 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_4 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_4 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_4 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_4 #EQ'#(nil(),nil()) -> c_69():57 -->_4 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_4 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_4 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_4 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_4 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_4 #EQ'#(#s(z0),#0()) -> c_62():50 -->_4 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_4 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_4 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_4 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_4 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_4 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_4 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_4 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_4 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_4 #EQ'#(#0(),#0()) -> c_52():40 -->_1 #AND#(#true(),#true()) -> c_36():24 -->_1 #AND#(#true(),#false()) -> c_35():23 -->_1 #AND#(#false(),#true()) -> c_34():22 -->_1 #AND#(#false(),#false()) -> c_33():21 63:W:#EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):62 -->_1 #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):61 -->_1 #EQ'#(tuple#2(z0,z1),nil()) -> c_72():60 -->_1 #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71():59 -->_1 #EQ'#(nil(),tuple#2(z0,z1)) -> c_70():58 -->_1 #EQ'#(nil(),nil()) -> c_69():57 -->_1 #EQ'#(nil(),::(z0,z1)) -> c_68():56 -->_1 #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67():55 -->_1 #EQ'#(::(z0,z1),nil()) -> c_66():54 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)):53 -->_1 #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)):52 -->_1 #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)):51 -->_1 #EQ'#(#s(z0),#0()) -> c_62():50 -->_1 #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)):49 -->_1 #EQ'#(#pos(z0),#neg(z1)) -> c_60():48 -->_1 #EQ'#(#pos(z0),#0()) -> c_59():47 -->_1 #EQ'#(#neg(z0),#pos(z1)) -> c_58():46 -->_1 #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)):45 -->_1 #EQ'#(#neg(z0),#0()) -> c_56():44 -->_1 #EQ'#(#0(),#s(z0)) -> c_55():43 -->_1 #EQ'#(#0(),#pos(z0)) -> c_54():42 -->_1 #EQ'#(#0(),#neg(z0)) -> c_53():41 -->_1 #EQ'#(#0(),#0()) -> c_52():40 64:W:#GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) -->_2 #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)):83 -->_2 #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)):81 -->_2 #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)):77 -->_2 #compare#(#s(z0),#0()) -> c_92():82 -->_2 #compare#(#pos(z0),#neg(z1)) -> c_90():80 -->_2 #compare#(#pos(z0),#0()) -> c_89():79 -->_2 #compare#(#neg(z0),#pos(z1)) -> c_88():78 -->_2 #compare#(#neg(z0),#0()) -> c_86():76 -->_2 #compare#(#0(),#s(z0)) -> c_85():75 -->_2 #compare#(#0(),#pos(z0)) -> c_84():74 -->_2 #compare#(#0(),#neg(z0)) -> c_83():73 -->_2 #compare#(#0(),#0()) -> c_82():72 -->_3 #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)):39 -->_3 #COMPARE#(#s(z0),#0()) -> c_50():38 -->_3 #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)):37 -->_3 #COMPARE#(#pos(z0),#neg(z1)) -> c_48():36 -->_3 #COMPARE#(#pos(z0),#0()) -> c_47():35 -->_3 #COMPARE#(#neg(z0),#pos(z1)) -> c_46():34 -->_3 #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)):33 -->_3 #COMPARE#(#neg(z0),#0()) -> c_44():32 -->_3 #COMPARE#(#0(),#s(z0)) -> c_43():31 -->_3 #COMPARE#(#0(),#pos(z0)) -> c_42():30 -->_3 #COMPARE#(#0(),#neg(z0)) -> c_41():29 -->_3 #COMPARE#(#0(),#0()) -> c_40():28 -->_1 #CKGT#(#LT()) -> c_39():27 -->_1 #CKGT#(#GT()) -> c_38():26 -->_1 #CKGT#(#EQ()) -> c_37():25 65:W:#and#(#false(),#false()) -> c_75() 66:W:#and#(#false(),#true()) -> c_76() 67:W:#and#(#true(),#false()) -> c_77() 68:W:#and#(#true(),#true()) -> c_78() 69:W:#ckgt#(#EQ()) -> c_79() 70:W:#ckgt#(#GT()) -> c_80() 71:W:#ckgt#(#LT()) -> c_81() 72:W:#compare#(#0(),#0()) -> c_82() 73:W:#compare#(#0(),#neg(z0)) -> c_83() 74:W:#compare#(#0(),#pos(z0)) -> c_84() 75:W:#compare#(#0(),#s(z0)) -> c_85() 76:W:#compare#(#neg(z0),#0()) -> c_86() 77:W:#compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) -->_1 #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)):83 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)):81 -->_1 #compare#(#s(z0),#0()) -> c_92():82 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_90():80 -->_1 #compare#(#pos(z0),#0()) -> c_89():79 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_88():78 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)):77 -->_1 #compare#(#neg(z0),#0()) -> c_86():76 -->_1 #compare#(#0(),#s(z0)) -> c_85():75 -->_1 #compare#(#0(),#pos(z0)) -> c_84():74 -->_1 #compare#(#0(),#neg(z0)) -> c_83():73 -->_1 #compare#(#0(),#0()) -> c_82():72 78:W:#compare#(#neg(z0),#pos(z1)) -> c_88() 79:W:#compare#(#pos(z0),#0()) -> c_89() 80:W:#compare#(#pos(z0),#neg(z1)) -> c_90() 81:W:#compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) -->_1 #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)):83 -->_1 #compare#(#s(z0),#0()) -> c_92():82 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)):81 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_90():80 -->_1 #compare#(#pos(z0),#0()) -> c_89():79 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_88():78 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)):77 -->_1 #compare#(#neg(z0),#0()) -> c_86():76 -->_1 #compare#(#0(),#s(z0)) -> c_85():75 -->_1 #compare#(#0(),#pos(z0)) -> c_84():74 -->_1 #compare#(#0(),#neg(z0)) -> c_83():73 -->_1 #compare#(#0(),#0()) -> c_82():72 82:W:#compare#(#s(z0),#0()) -> c_92() 83:W:#compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) -->_1 #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)):83 -->_1 #compare#(#s(z0),#0()) -> c_92():82 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)):81 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_90():80 -->_1 #compare#(#pos(z0),#0()) -> c_89():79 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_88():78 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)):77 -->_1 #compare#(#neg(z0),#0()) -> c_86():76 -->_1 #compare#(#0(),#s(z0)) -> c_85():75 -->_1 #compare#(#0(),#pos(z0)) -> c_84():74 -->_1 #compare#(#0(),#neg(z0)) -> c_83():73 -->_1 #compare#(#0(),#0()) -> c_82():72 84:W:#eq#(#0(),#0()) -> c_94() 85:W:#eq#(#0(),#neg(z0)) -> c_95() 86:W:#eq#(#0(),#pos(z0)) -> c_96() 87:W:#eq#(#0(),#s(z0)) -> c_97() 88:W:#eq#(#neg(z0),#0()) -> c_98() 89:W:#eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) -->_1 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_1 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_1 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_1 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_1 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_1 #eq#(nil(),nil()) -> c_110():100 -->_1 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_1 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_1 #eq#(::(z0,z1),nil()) -> c_107():97 -->_1 #eq#(#s(z0),#0()) -> c_104():94 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_1 #eq#(#pos(z0),#0()) -> c_101():91 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_1 #eq#(#neg(z0),#0()) -> c_98():88 -->_1 #eq#(#0(),#s(z0)) -> c_97():87 -->_1 #eq#(#0(),#pos(z0)) -> c_96():86 -->_1 #eq#(#0(),#neg(z0)) -> c_95():85 -->_1 #eq#(#0(),#0()) -> c_94():84 90:W:#eq#(#neg(z0),#pos(z1)) -> c_100() 91:W:#eq#(#pos(z0),#0()) -> c_101() 92:W:#eq#(#pos(z0),#neg(z1)) -> c_102() 93:W:#eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) -->_1 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_1 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_1 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_1 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_1 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_1 #eq#(nil(),nil()) -> c_110():100 -->_1 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_1 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_1 #eq#(::(z0,z1),nil()) -> c_107():97 -->_1 #eq#(#s(z0),#0()) -> c_104():94 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_1 #eq#(#pos(z0),#0()) -> c_101():91 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_1 #eq#(#neg(z0),#0()) -> c_98():88 -->_1 #eq#(#0(),#s(z0)) -> c_97():87 -->_1 #eq#(#0(),#pos(z0)) -> c_96():86 -->_1 #eq#(#0(),#neg(z0)) -> c_95():85 -->_1 #eq#(#0(),#0()) -> c_94():84 94:W:#eq#(#s(z0),#0()) -> c_104() 95:W:#eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) -->_1 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_1 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_1 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_1 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_1 #eq#(nil(),nil()) -> c_110():100 -->_1 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_1 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_1 #eq#(::(z0,z1),nil()) -> c_107():97 -->_1 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_1 #eq#(#s(z0),#0()) -> c_104():94 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_1 #eq#(#pos(z0),#0()) -> c_101():91 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_1 #eq#(#neg(z0),#0()) -> c_98():88 -->_1 #eq#(#0(),#s(z0)) -> c_97():87 -->_1 #eq#(#0(),#pos(z0)) -> c_96():86 -->_1 #eq#(#0(),#neg(z0)) -> c_95():85 -->_1 #eq#(#0(),#0()) -> c_94():84 96:W:#eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_1 #and#(#true(),#true()) -> c_78():68 -->_1 #and#(#true(),#false()) -> c_77():67 -->_1 #and#(#false(),#true()) -> c_76():66 -->_1 #and#(#false(),#false()) -> c_75():65 97:W:#eq#(::(z0,z1),nil()) -> c_107() 98:W:#eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() 99:W:#eq#(nil(),::(z0,z1)) -> c_109() 100:W:#eq#(nil(),nil()) -> c_110() 101:W:#eq#(nil(),tuple#2(z0,z1)) -> c_111() 102:W:#eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() 103:W:#eq#(tuple#2(z0,z1),nil()) -> c_113() 104:W:#eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) -->_3 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_2 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_3 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_2 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_3 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_2 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_3 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_2 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_3 #eq#(nil(),nil()) -> c_110():100 -->_2 #eq#(nil(),nil()) -> c_110():100 -->_3 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_2 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_3 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_2 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_3 #eq#(::(z0,z1),nil()) -> c_107():97 -->_2 #eq#(::(z0,z1),nil()) -> c_107():97 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_3 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_2 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_3 #eq#(#s(z0),#0()) -> c_104():94 -->_2 #eq#(#s(z0),#0()) -> c_104():94 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_3 #eq#(#pos(z0),#0()) -> c_101():91 -->_2 #eq#(#pos(z0),#0()) -> c_101():91 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_3 #eq#(#neg(z0),#0()) -> c_98():88 -->_2 #eq#(#neg(z0),#0()) -> c_98():88 -->_3 #eq#(#0(),#s(z0)) -> c_97():87 -->_2 #eq#(#0(),#s(z0)) -> c_97():87 -->_3 #eq#(#0(),#pos(z0)) -> c_96():86 -->_2 #eq#(#0(),#pos(z0)) -> c_96():86 -->_3 #eq#(#0(),#neg(z0)) -> c_95():85 -->_2 #eq#(#0(),#neg(z0)) -> c_95():85 -->_3 #eq#(#0(),#0()) -> c_94():84 -->_2 #eq#(#0(),#0()) -> c_94():84 -->_1 #and#(#true(),#true()) -> c_78():68 -->_1 #and#(#true(),#false()) -> c_77():67 -->_1 #and#(#false(),#true()) -> c_76():66 -->_1 #and#(#false(),#false()) -> c_75():65 105:W:#equal#(z0,z1) -> c_115(#eq#(z0,z1)) -->_1 #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3)):104 -->_1 #eq#(tuple#2(z0,z1),nil()) -> c_113():103 -->_1 #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112():102 -->_1 #eq#(nil(),tuple#2(z0,z1)) -> c_111():101 -->_1 #eq#(nil(),nil()) -> c_110():100 -->_1 #eq#(nil(),::(z0,z1)) -> c_109():99 -->_1 #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108():98 -->_1 #eq#(::(z0,z1),nil()) -> c_107():97 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):96 -->_1 #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)):95 -->_1 #eq#(#s(z0),#0()) -> c_104():94 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)):93 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_102():92 -->_1 #eq#(#pos(z0),#0()) -> c_101():91 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_100():90 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)):89 -->_1 #eq#(#neg(z0),#0()) -> c_98():88 -->_1 #eq#(#0(),#s(z0)) -> c_97():87 -->_1 #eq#(#0(),#pos(z0)) -> c_96():86 -->_1 #eq#(#0(),#neg(z0)) -> c_95():85 -->_1 #eq#(#0(),#0()) -> c_94():84 106:W:#greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) -->_2 #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)):83 -->_2 #compare#(#s(z0),#0()) -> c_92():82 -->_2 #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)):81 -->_2 #compare#(#pos(z0),#neg(z1)) -> c_90():80 -->_2 #compare#(#pos(z0),#0()) -> c_89():79 -->_2 #compare#(#neg(z0),#pos(z1)) -> c_88():78 -->_2 #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)):77 -->_2 #compare#(#neg(z0),#0()) -> c_86():76 -->_2 #compare#(#0(),#s(z0)) -> c_85():75 -->_2 #compare#(#0(),#pos(z0)) -> c_84():74 -->_2 #compare#(#0(),#neg(z0)) -> c_83():73 -->_2 #compare#(#0(),#0()) -> c_82():72 -->_1 #ckgt#(#LT()) -> c_81():71 -->_1 #ckgt#(#GT()) -> c_80():70 -->_1 #ckgt#(#EQ()) -> c_79():69 107:W:APPEND#1#(nil(),z0) -> c_5() 108:W:INSERT#2#(nil(),z0,z1,z2) -> c_9() 109:W:INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() 110:W:QUICKSORT#1#(nil()) -> c_15() 111:W:SORTALL#1#(nil()) -> c_20() 112:W:SPLIT#1#(nil()) -> c_25() 113:W:SPLITQS#1#(nil(),z0) -> c_29() 114:W:SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) -->_1 SPLITQS#3#(#true(),z0,z1,z2) -> c_32():116 -->_1 SPLITQS#3#(#false(),z0,z1,z2) -> c_31():115 -->_2 #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)):106 -->_3 #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)):64 115:W:SPLITQS#3#(#false(),z0,z1,z2) -> c_31() 116:W:SPLITQS#3#(#true(),z0,z1,z2) -> c_32() 117:W:append#(z0,z1) -> c_117(append#1#(z0,z1)) -->_1 append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)):118 -->_1 append#1#(nil(),z0) -> c_119():119 118:W:append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) -->_1 append#(z0,z1) -> c_117(append#1#(z0,z1)):117 119:W:append#1#(nil(),z0) -> c_119() 120:W:insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) -->_1 insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)):121 121:W:insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) -->_1 insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)):122 -->_1 insert#2#(nil(),z0,z1,z2) -> c_123():123 122:W:insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) -->_1 insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2)):124 123:W:insert#2#(nil(),z0,z1,z2) -> c_123() 124:W:insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) -->_1 insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)):125 -->_1 insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126():126 -->_2 #equal#(z0,z1) -> c_115(#eq#(z0,z1)):105 125:W:insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) -->_1 insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)):120 126:W:insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() 127:W:quicksort#(z0) -> c_127(quicksort#1#(z0)) -->_1 quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)):128 -->_1 quicksort#1#(nil()) -> c_129():129 128:W:quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) -->_2 splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)):139 -->_1 quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)):130 129:W:quicksort#1#(nil()) -> c_129() 130:W:quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) -->_3 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_2 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 -->_1 append#(z0,z1) -> c_117(append#1#(z0,z1)):117 131:W:sortAll#(z0) -> c_131(sortAll#1#(z0)) -->_1 sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)):132 -->_1 sortAll#1#(nil()) -> c_133():133 132:W:sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) -->_1 sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)):134 133:W:sortAll#1#(nil()) -> c_133() 134:W:sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) -->_2 sortAll#(z0) -> c_131(sortAll#1#(z0)):131 -->_1 quicksort#(z0) -> c_127(quicksort#1#(z0)):127 135:W:split#(z0) -> c_135(split#1#(z0)) -->_1 split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)):136 -->_1 split#1#(nil()) -> c_137():137 136:W:split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) -->_2 split#(z0) -> c_135(split#1#(z0)):135 -->_1 insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)):120 137:W:split#1#(nil()) -> c_137() 138:W:splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) -->_2 split#(z0) -> c_135(split#1#(z0)):135 -->_1 sortAll#(z0) -> c_131(sortAll#1#(z0)):131 139:W:splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) -->_1 splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)):140 -->_1 splitqs#1#(nil(),z0) -> c_141():141 140:W:splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) -->_1 splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2)):142 -->_2 splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)):139 141:W:splitqs#1#(nil(),z0) -> c_141() 142:W:splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) -->_1 splitqs#3#(#true(),z0,z1,z2) -> c_144():144 -->_1 splitqs#3#(#false(),z0,z1,z2) -> c_143():143 -->_2 #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)):106 143:W:splitqs#3#(#false(),z0,z1,z2) -> c_143() 144:W:splitqs#3#(#true(),z0,z1,z2) -> c_144() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 138: splitAndSort#(z0) -> c_138(sortAll#(split(z0)),split#(z0)) 131: sortAll#(z0) -> c_131(sortAll#1#(z0)) 134: sortAll#2#(tuple#2(z0,z1),z2) -> c_134(quicksort#(z0),sortAll#(z2)) 132: sortAll#1#(::(z0,z1)) -> c_132(sortAll#2#(z0,z1)) 133: sortAll#1#(nil()) -> c_133() 112: SPLIT#1#(nil()) -> c_25() 135: split#(z0) -> c_135(split#1#(z0)) 136: split#1#(::(z0,z1)) -> c_136(insert#(z0,split(z1)),split#(z1)) 137: split#1#(nil()) -> c_137() 120: insert#(z0,z1) -> c_120(insert#1#(z0,z1,z0)) 125: insert#4#(#false(),z0,z1,z2,z3,z4) -> c_125(insert#(z4,z1)) 124: insert#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_124(insert#4#(#equal(z1,z2),z1,z3,z4,z0,z5),#equal#(z1,z2)) 122: insert#2#(::(z0,z1),z2,z3,z4) -> c_122(insert#3#(z0,z2,z1,z3,z4)) 121: insert#1#(tuple#2(z0,z1),z2,z3) -> c_121(insert#2#(z2,z1,z0,z3)) 123: insert#2#(nil(),z0,z1,z2) -> c_123() 126: insert#4#(#true(),z0,z1,z2,z3,z4) -> c_126() 111: SORTALL#1#(nil()) -> c_20() 110: QUICKSORT#1#(nil()) -> c_15() 127: quicksort#(z0) -> c_127(quicksort#1#(z0)) 130: quicksort#2#(tuple#2(z0,z1),z2) -> c_130(append#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1)) 128: quicksort#1#(::(z0,z1)) -> c_128(quicksort#2#(splitqs(z0,z1),z0),splitqs#(z0,z1)) 129: quicksort#1#(nil()) -> c_129() 117: append#(z0,z1) -> c_117(append#1#(z0,z1)) 118: append#1#(::(z0,z1),z2) -> c_118(append#(z1,z2)) 119: append#1#(nil(),z0) -> c_119() 113: SPLITQS#1#(nil(),z0) -> c_29() 114: SPLITQS#2#(tuple#2(z0,z1),z2,z3) -> c_30(SPLITQS#3#(#greater(z3,z2),z0,z1,z3) ,#greater#(z3,z2) ,#GREATER#(z3,z2)) 64: #GREATER#(z0,z1) -> c_2(#CKGT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 25: #CKGT#(#EQ()) -> c_37() 26: #CKGT#(#GT()) -> c_38() 27: #CKGT#(#LT()) -> c_39() 39: #COMPARE#(#s(z0),#s(z1)) -> c_51(#COMPARE#(z0,z1)) 37: #COMPARE#(#pos(z0),#pos(z1)) -> c_49(#COMPARE#(z0,z1)) 33: #COMPARE#(#neg(z0),#neg(z1)) -> c_45(#COMPARE#(z1,z0)) 28: #COMPARE#(#0(),#0()) -> c_40() 29: #COMPARE#(#0(),#neg(z0)) -> c_41() 30: #COMPARE#(#0(),#pos(z0)) -> c_42() 31: #COMPARE#(#0(),#s(z0)) -> c_43() 32: #COMPARE#(#neg(z0),#0()) -> c_44() 34: #COMPARE#(#neg(z0),#pos(z1)) -> c_46() 35: #COMPARE#(#pos(z0),#0()) -> c_47() 36: #COMPARE#(#pos(z0),#neg(z1)) -> c_48() 38: #COMPARE#(#s(z0),#0()) -> c_50() 115: SPLITQS#3#(#false(),z0,z1,z2) -> c_31() 116: SPLITQS#3#(#true(),z0,z1,z2) -> c_32() 139: splitqs#(z0,z1) -> c_139(splitqs#1#(z1,z0)) 140: splitqs#1#(::(z0,z1),z2) -> c_140(splitqs#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1)) 141: splitqs#1#(nil(),z0) -> c_141() 142: splitqs#2#(tuple#2(z0,z1),z2,z3) -> c_142(splitqs#3#(#greater(z3,z2),z0,z1,z3),#greater#(z3,z2)) 106: #greater#(z0,z1) -> c_116(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) 69: #ckgt#(#EQ()) -> c_79() 70: #ckgt#(#GT()) -> c_80() 71: #ckgt#(#LT()) -> c_81() 83: #compare#(#s(z0),#s(z1)) -> c_93(#compare#(z0,z1)) 81: #compare#(#pos(z0),#pos(z1)) -> c_91(#compare#(z0,z1)) 77: #compare#(#neg(z0),#neg(z1)) -> c_87(#compare#(z1,z0)) 72: #compare#(#0(),#0()) -> c_82() 73: #compare#(#0(),#neg(z0)) -> c_83() 74: #compare#(#0(),#pos(z0)) -> c_84() 75: #compare#(#0(),#s(z0)) -> c_85() 76: #compare#(#neg(z0),#0()) -> c_86() 78: #compare#(#neg(z0),#pos(z1)) -> c_88() 79: #compare#(#pos(z0),#0()) -> c_89() 80: #compare#(#pos(z0),#neg(z1)) -> c_90() 82: #compare#(#s(z0),#0()) -> c_92() 143: splitqs#3#(#false(),z0,z1,z2) -> c_143() 144: splitqs#3#(#true(),z0,z1,z2) -> c_144() 108: INSERT#2#(nil(),z0,z1,z2) -> c_9() 109: INSERT#4#(#true(),z0,z1,z2,z3,z4) -> c_12() 63: #EQUAL#(z0,z1) -> c_1(#EQ'#(z0,z1)) 62: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_74(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z1,z3)) 61: #EQ'#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_73(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ'#(z0,z2)) 53: #EQ'#(::(z0,z1),::(z2,z3)) -> c_65(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z1,z3)) 52: #EQ'#(::(z0,z1),::(z2,z3)) -> c_64(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ'#(z0,z2)) 51: #EQ'#(#s(z0),#s(z1)) -> c_63(#EQ'#(z0,z1)) 49: #EQ'#(#pos(z0),#pos(z1)) -> c_61(#EQ'#(z0,z1)) 45: #EQ'#(#neg(z0),#neg(z1)) -> c_57(#EQ'#(z0,z1)) 21: #AND#(#false(),#false()) -> c_33() 22: #AND#(#false(),#true()) -> c_34() 23: #AND#(#true(),#false()) -> c_35() 24: #AND#(#true(),#true()) -> c_36() 40: #EQ'#(#0(),#0()) -> c_52() 41: #EQ'#(#0(),#neg(z0)) -> c_53() 42: #EQ'#(#0(),#pos(z0)) -> c_54() 43: #EQ'#(#0(),#s(z0)) -> c_55() 44: #EQ'#(#neg(z0),#0()) -> c_56() 46: #EQ'#(#neg(z0),#pos(z1)) -> c_58() 47: #EQ'#(#pos(z0),#0()) -> c_59() 48: #EQ'#(#pos(z0),#neg(z1)) -> c_60() 50: #EQ'#(#s(z0),#0()) -> c_62() 54: #EQ'#(::(z0,z1),nil()) -> c_66() 55: #EQ'#(::(z0,z1),tuple#2(z2,z3)) -> c_67() 56: #EQ'#(nil(),::(z0,z1)) -> c_68() 57: #EQ'#(nil(),nil()) -> c_69() 58: #EQ'#(nil(),tuple#2(z0,z1)) -> c_70() 59: #EQ'#(tuple#2(z0,z1),::(z2,z3)) -> c_71() 60: #EQ'#(tuple#2(z0,z1),nil()) -> c_72() 105: #equal#(z0,z1) -> c_115(#eq#(z0,z1)) 104: #eq#(tuple#2(z0,z1),tuple#2(z2,z3)) -> c_114(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 96: #eq#(::(z0,z1),::(z2,z3)) -> c_106(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 95: #eq#(#s(z0),#s(z1)) -> c_105(#eq#(z0,z1)) 93: #eq#(#pos(z0),#pos(z1)) -> c_103(#eq#(z0,z1)) 89: #eq#(#neg(z0),#neg(z1)) -> c_99(#eq#(z0,z1)) 65: #and#(#false(),#false()) -> c_75() 66: #and#(#false(),#true()) -> c_76() 67: #and#(#true(),#false()) -> c_77() 68: #and#(#true(),#true()) -> c_78() 84: #eq#(#0(),#0()) -> c_94() 85: #eq#(#0(),#neg(z0)) -> c_95() 86: #eq#(#0(),#pos(z0)) -> c_96() 87: #eq#(#0(),#s(z0)) -> c_97() 88: #eq#(#neg(z0),#0()) -> c_98() 90: #eq#(#neg(z0),#pos(z1)) -> c_100() 91: #eq#(#pos(z0),#0()) -> c_101() 92: #eq#(#pos(z0),#neg(z1)) -> c_102() 94: #eq#(#s(z0),#0()) -> c_104() 97: #eq#(::(z0,z1),nil()) -> c_107() 98: #eq#(::(z0,z1),tuple#2(z2,z3)) -> c_108() 99: #eq#(nil(),::(z0,z1)) -> c_109() 100: #eq#(nil(),nil()) -> c_110() 101: #eq#(nil(),tuple#2(z0,z1)) -> c_111() 102: #eq#(tuple#2(z0,z1),::(z2,z3)) -> c_112() 103: #eq#(tuple#2(z0,z1),nil()) -> c_113() 107: APPEND#1#(nil(),z0) -> c_5() * Step 7: SimplifyRHS. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0,c_10/3,c_11/1,c_12/0,c_13/1 ,c_14/3,c_15/0,c_16/4,c_17/4,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/3,c_25/0,c_26/3,c_27/1,c_28/3 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) -->_1 APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)):2 2:S:APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 3:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):4 4:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):5 5:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)):6 6:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5) ,#equal#(z1,z2) ,#EQUAL#(z1,z2)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):7 7:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 8:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)):9 9:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),splitqs#(z0,z1),SPLITQS#(z0,z1)) -->_3 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)):11 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)):10 10:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z0)) -->_4 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 11:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,quicksort#(z0) ,quicksort#(z1) ,QUICKSORT#(z1)) -->_4 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 12:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):13 13:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):15 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):14 14:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 15:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 16:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)):17 17:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),split#(z1),SPLIT#(z1)) -->_3 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 18:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),split#(z0),SPLIT#(z0)) -->_3 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 19:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0) ,splitqs#(z2,z1) ,SPLITQS#(z2,z1)):20 20:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#2#(splitqs(z2,z1),z2,z0),splitqs#(z2,z1),SPLITQS#(z2,z1)) -->_3 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) * Step 8: Decompose. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} Problem (S) - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} ** Step 8.a:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) -->_1 APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)):2 2:S:APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 3:W:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):4 4:W:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):5 5:W:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):6 6:W:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):7 7:W:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 8:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):9 9:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,QUICKSORT#(z1)):11 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,QUICKSORT#(z0)):10 10:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 11:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 12:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):13 13:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):15 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):14 14:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 15:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 16:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):17 17:W:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):3 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 18:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):16 19:W:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):20 20:W:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):19 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 16: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 17: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 19: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 20: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) 3: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 7: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 6: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 5: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 4: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) ** Step 8.a:2: SimplifyRHS. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) -->_1 APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)):2 2:S:APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 8:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):9 9:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,QUICKSORT#(z1)):11 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,QUICKSORT#(z0)):10 10:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 11:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):1 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 12:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):13 13:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):15 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):14 14:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):8 15:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 18:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):12 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) ** Step 8.a:3: DecomposeDG. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) and a lower component APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) Further, following extension rules are added to the lower component. QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) *** Step 8.a:3.a:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) Consider the set of all dependency pairs 1: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) 2: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) 3: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 4: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {2} These cover all (indirect) predecessors of dependency pairs {2,9} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. **** Step 8.a:3.a:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima): The following argument positions are considered usable: uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_16) = {1,2}, uargs(c_17) = {1,2}, uargs(c_18) = {1}, uargs(c_19) = {1}, uargs(c_21) = {1}, uargs(c_22) = {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#,#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#,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(#AND) = [0] [0] [0] p(#CKGT) = [0] [0] [0] p(#COMPARE) = [0] [0] [0] p(#EQ) = [0] [0] [0] p(#EQ') = [0] [0] [0] p(#EQUAL) = [0] [0] [0] p(#GREATER) = [0] [0] [0] p(#GT) = [0] [0] [0] p(#LT) = [0] [0] [0] p(#and) = [0 0 0] [0 0 0] [0] [0 0 1] x1 + [0 0 1] x2 + [1] [0 0 0] [0 0 1] [0] p(#ckgt) = [0] [1] [0] p(#compare) = [0 0 0] [0] [0 0 1] x2 + [1] [0 0 0] [0] p(#eq) = [0 0 0] [0] [0 0 0] x2 + [0] [0 1 0] [0] p(#equal) = [0] [0] [0] p(#false) = [0] [0] [0] p(#greater) = [0] [0] [0] p(#neg) = [0] [0] [1] p(#pos) = [0] [0] [0] p(#s) = [0] [0] [0] p(#true) = [0] [0] [0] p(::) = [1 0 0] [1 0 0] [0] [0 0 0] x1 + [0 1 1] x2 + [0] [0 0 0] [0 0 0] [1] p(APPEND) = [0] [0] [0] p(APPEND#1) = [0] [0] [0] p(INSERT) = [0] [0] [0] 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] [0] p(QUICKSORT#1) = [0] [0] [0] p(QUICKSORT#2) = [0] [0] [0] p(SORTALL) = [0] [0] [0] p(SORTALL#1) = [0] [0] [0] p(SORTALL#2) = [0] [0] [0] p(SPLIT) = [0] [0] [0] p(SPLIT#1) = [0] [0] [0] p(SPLITANDSORT) = [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(append) = [0 0 0] [0 1 0] [0] [1 0 0] x1 + [1 0 0] x2 + [1] [1 0 1] [0 0 0] [1] p(append#1) = [0 0 0] [0] [0 0 1] x1 + [0] [0 0 0] [0] p(c) = [0] [0] [0] p(c1) = [0] [0] [0] p(c10) = [0] [0] [0] p(c11) = [0] [0] [0] p(c12) = [0] [0] [0] p(c13) = [0] [0] [0] p(c14) = [0] [0] [0] p(c15) = [0] [0] [0] p(c16) = [0] [0] [0] p(c17) = [0] [0] [0] p(c18) = [0] [0] [0] p(c19) = [0] [0] [0] p(c2) = [0] [0] [0] p(c20) = [0] [0] [0] p(c21) = [0] [0] [0] p(c22) = [0] [0] [0] p(c23) = [0] [0] [0] p(c24) = [0] [0] [0] p(c25) = [0] [0] [0] p(c26) = [0] [0] [0] p(c27) = [0] [0] [0] p(c28) = [0] [0] [0] p(c29) = [0] [0] [0] p(c3) = [0] [0] [0] p(c30) = [0] [0] [0] p(c31) = [0] [0] [0] p(c32) = [0] [0] [0] p(c33) = [0] [0] [0] p(c34) = [0] [0] [0] p(c35) = [0] [0] [0] p(c36) = [0] [0] [0] p(c37) = [0] [0] [0] p(c38) = [0] [0] [0] p(c39) = [0] [0] [0] p(c4) = [0] [0] [0] p(c40) = [0] [0] [0] p(c41) = [0] [0] [0] p(c42) = [0] [0] [0] p(c43) = [0] [0] [0] p(c44) = [0] [0] [0] p(c45) = [0] [0] [0] p(c46) = [0] [0] [0] p(c47) = [0] [0] [0] p(c48) = [0] [0] [0] p(c49) = [0] [0] [0] p(c5) = [0] [0] [0] p(c50) = [0] [0] [0] p(c51) = [0] [0] [0] p(c52) = [0] [0] [0] p(c53) = [0] [0] [0] p(c54) = [0] [0] [0] p(c55) = [0] [0] [0] p(c56) = [0] [0] [0] p(c57) = [0] [0] [0] p(c58) = [0] [0] [0] p(c59) = [0] [0] [0] p(c6) = [0] [0] [0] p(c60) = [0] [0] [0] p(c61) = [0] [0] [0] p(c62) = [0] [0] [0] p(c63) = [0] [0] [0] p(c64) = [0] [0] [0] p(c65) = [0] [0] [0] p(c66) = [0] [0] [0] p(c67) = [0] [0] [0] p(c68) = [0] [0] [0] p(c69) = [0] [0] [0] p(c7) = [0] [0] [0] p(c70) = [0] [0] [0] p(c71) = [0] [0] [0] p(c72) = [0] [0] [0] p(c73) = [0] [0] [0] p(c8) = [0] [0] [0] p(c9) = [0] [0] [0] p(insert) = [1 0 0] [1] [0 1 1] x2 + [0] [0 0 0] [1] p(insert#1) = [1 0 0] [1] [0 1 1] x2 + [0] [0 0 0] [1] p(insert#2) = [1 0 0] [1] [0 1 1] x1 + [0] [0 0 0] [1] p(insert#3) = [1 0 0] [1 0 0] [1] [0 0 0] x1 + [0 1 1] x3 + [1] [0 0 0] [0 0 0] [1] p(insert#4) = [1 0 0] [0 1 1] [1] [0 1 1] x3 + [0 0 0] x5 + [1] [0 0 0] [0 0 0] [1] p(nil) = [1] [0] [0] p(quicksort) = [0 1 0] [1] [0 0 0] x1 + [0] [0 1 0] [0] p(quicksort#1) = [0 1 0] [0] [0 0 1] x1 + [0] [1 0 1] [0] p(quicksort#2) = [1 0 1] [0 0 1] [1] [0 0 0] x1 + [0 0 0] x2 + [1] [0 0 0] [1 1 0] [1] p(sortAll) = [0] [0] [0] p(sortAll#1) = [0] [0] [0] p(sortAll#2) = [0] [0] [0] p(split) = [0 1 1] [1] [0 1 0] x1 + [0] [0 0 1] [0] p(split#1) = [0 1 1] [1] [0 1 0] x1 + [0] [0 0 1] [0] p(splitAndSort) = [0] [0] [0] p(splitqs) = [1 0 1] [0 1 0] [1] [0 0 0] x1 + [0 1 1] x2 + [0] [0 0 1] [0 0 0] [0] p(splitqs#1) = [0 1 0] [1 0 1] [1] [0 1 1] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 1] [0] p(splitqs#2) = [0 1 0] [1 0 1] [1] [0 1 0] x1 + [0 0 0] x2 + [1] [0 0 0] [0 0 0] [0] p(splitqs#3) = [0 1 1] [0 0 0] [1] [0 1 1] x2 + [0 1 1] x3 + [1] [0 0 0] [0 0 0] [0] p(tuple#2) = [0 1 1] [0 0 0] [0] [0 1 1] x1 + [0 1 1] x2 + [0] [0 0 0] [0 0 0] [0] p(#AND#) = [0] [0] [0] p(#CKGT#) = [0] [0] [0] p(#COMPARE#) = [0] [0] [0] p(#EQ'#) = [0] [0] [0] p(#EQUAL#) = [0] [0] [0] p(#GREATER#) = [0] [0] [0] p(#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] [1] [0] p(APPEND#1#) = [0] [0] [0] p(INSERT#) = [0] [0] [0] p(INSERT#1#) = [0] [0] [0] p(INSERT#2#) = [0] [0] [0] p(INSERT#3#) = [0] [0] [0] p(INSERT#4#) = [0] [0] [0] p(QUICKSORT#) = [0 1 1] [0] [1 1 1] x1 + [1] [1 0 1] [1] p(QUICKSORT#1#) = [0 1 1] [0] [1 1 1] x1 + [0] [0 0 0] [1] p(QUICKSORT#2#) = [0 1 0] [0 0 0] [1] [0 0 0] x1 + [0 1 1] x2 + [0] [0 0 1] [1 1 1] [1] p(SORTALL#) = [1 0 0] [0] [0 1 0] x1 + [0] [1 1 1] [1] p(SORTALL#1#) = [1 0 0] [0] [0 1 0] x1 + [0] [1 1 1] [0] p(SORTALL#2#) = [1 0 0] [1 0 0] [0] [0 0 0] x1 + [1 1 1] x2 + [1] [1 0 0] [0 0 0] [0] p(SPLIT#) = [0] [0] [0] p(SPLIT#1#) = [0] [0] [0] p(SPLITANDSORT#) = [0 1 1] [1] [0 0 0] x1 + [0] [0 1 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(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] [0] p(quicksort#1#) = [0] [0] [0] p(quicksort#2#) = [0] [0] [0] p(sortAll#) = [0] [0] [0] p(sortAll#1#) = [0] [0] [0] p(sortAll#2#) = [0] [0] [0] p(split#) = [0] [0] [0] p(split#1#) = [0] [0] [0] p(splitAndSort#) = [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) = [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 1 0] x1 + [1] [0 0 0] [0] p(c_14) = [1 0 0] [0] [1 0 0] x1 + [0] [0 0 0] [1] p(c_15) = [0] [0] [0] p(c_16) = [1 1 0] [1 0 0] [0] [0 0 0] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 0] [1] p(c_17) = [1 0 0] [1 0 0] [0] [0 0 0] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 1 0] x1 + [0] [1 1 0] [1] p(c_19) = [1 0 0] [0] [0 0 0] x1 + [0] [0 1 1] [0] p(c_20) = [0] [0] [0] p(c_21) = [1 0 0] [0] [0 0 0] x1 + [0] [1 0 0] [0] p(c_22) = [1 0 0] [0] [0 0 1] x1 + [0] [0 0 0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [1 0 0] [0] [0 0 0] x1 + [0] [0 1 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] p(c_71) = [0] [0] [0] p(c_72) = [0] [0] [0] p(c_73) = [0] [0] [0] p(c_74) = [0] [0] [0] p(c_75) = [0] [0] [0] p(c_76) = [0] [0] [0] p(c_77) = [0] [0] [0] p(c_78) = [0] [0] [0] p(c_79) = [0] [0] [0] p(c_80) = [0] [0] [0] p(c_81) = [0] [0] [0] p(c_82) = [0] [0] [0] p(c_83) = [0] [0] [0] p(c_84) = [0] [0] [0] p(c_85) = [0] [0] [0] p(c_86) = [0] [0] [0] p(c_87) = [0] [0] [0] p(c_88) = [0] [0] [0] p(c_89) = [0] [0] [0] p(c_90) = [0] [0] [0] p(c_91) = [0] [0] [0] p(c_92) = [0] [0] [0] p(c_93) = [0] [0] [0] p(c_94) = [0] [0] [0] p(c_95) = [0] [0] [0] p(c_96) = [0] [0] [0] p(c_97) = [0] [0] [0] p(c_98) = [0] [0] [0] p(c_99) = [0] [0] [0] p(c_100) = [0] [0] [0] p(c_101) = [0] [0] [0] p(c_102) = [0] [0] [0] p(c_103) = [0] [0] [0] p(c_104) = [0] [0] [0] p(c_105) = [0] [0] [0] p(c_106) = [0] [0] [0] p(c_107) = [0] [0] [0] p(c_108) = [0] [0] [0] p(c_109) = [0] [0] [0] p(c_110) = [0] [0] [0] p(c_111) = [0] [0] [0] p(c_112) = [0] [0] [0] p(c_113) = [0] [0] [0] p(c_114) = [0] [0] [0] p(c_115) = [0] [0] [0] p(c_116) = [0] [0] [0] p(c_117) = [0] [0] [0] p(c_118) = [0] [0] [0] p(c_119) = [0] [0] [0] p(c_120) = [0] [0] [0] p(c_121) = [0] [0] [0] p(c_122) = [0] [0] [0] p(c_123) = [0] [0] [0] p(c_124) = [0] [0] [0] p(c_125) = [0] [0] [0] p(c_126) = [0] [0] [0] p(c_127) = [0] [0] [0] p(c_128) = [0] [0] [0] p(c_129) = [0] [0] [0] p(c_130) = [0] [0] [0] p(c_131) = [0] [0] [0] p(c_132) = [0] [0] [0] p(c_133) = [0] [0] [0] p(c_134) = [0] [0] [0] p(c_135) = [0] [0] [0] p(c_136) = [0] [0] [0] p(c_137) = [0] [0] [0] p(c_138) = [0] [0] [0] p(c_139) = [0] [0] [0] p(c_140) = [0] [0] [0] p(c_141) = [0] [0] [0] p(c_142) = [0] [0] [0] p(c_143) = [0] [0] [0] p(c_144) = [0] [0] [0] Following rules are strictly oriented: QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 1 1] [0 0 0] [1] [0 0 0] z0 + [0 0 0] z1 + [0 1 1] z2 + [0] [0 0 0] [0 0 0] [1 1 1] [1] > [0 1 1] [0] [0 0 0] z1 + [0] [0 0 0] [0] = c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) Following rules are (at-least) weakly oriented: QUICKSORT#(z0) = [0 1 1] [0] [1 1 1] z0 + [1] [1 0 1] [1] >= [0 1 1] [0] [1 1 1] z0 + [1] [0 0 0] [0] = c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) = [0 0 0] [0 1 1] [1] [1 0 0] z0 + [1 1 1] z1 + [1] [0 0 0] [0 0 0] [1] >= [0 1 1] [1] [0 1 1] z1 + [1] [0 0 0] [1] = c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 1 1] [0 0 0] [1] [0 0 0] z0 + [0 0 0] z1 + [0 1 1] z2 + [0] [0 0 0] [0 0 0] [1 1 1] [1] >= [0 1 1] [1] [0 0 0] z0 + [0] [0 0 0] [1] = c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) SORTALL#(z0) = [1 0 0] [0] [0 1 0] z0 + [0] [1 1 1] [1] >= [1 0 0] [0] [0 1 0] z0 + [0] [1 1 0] [1] = c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) = [1 0 0] [1 0 0] [0] [0 0 0] z0 + [0 1 1] z1 + [0] [1 0 0] [1 1 1] [1] >= [1 0 0] [1 0 0] [0] [0 0 0] z0 + [0 0 0] z1 + [0] [1 0 0] [1 1 1] [1] = c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1 1] [1 0 0] [0] [0 0 0] z0 + [1 1 1] z2 + [1] [0 1 1] [0 0 0] [0] >= [0 1 1] [0] [0 0 0] z0 + [0] [0 1 1] [0] = c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1 1] [1 0 0] [0] [0 0 0] z0 + [1 1 1] z2 + [1] [0 1 1] [0 0 0] [0] >= [1 0 0] [0] [1 1 1] z2 + [1] [0 0 0] [0] = c_22(SORTALL#(z2)) SPLITANDSORT#(z0) = [0 1 1] [1] [0 0 0] z0 + [0] [0 1 0] [0] >= [0 1 1] [1] [0 0 0] z0 + [0] [0 1 0] [0] = c_26(SORTALL#(split(z0))) insert(z0,z1) = [1 0 0] [1] [0 1 1] z1 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 1 1] z1 + [0] [0 0 0] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0 0] [1] [0 1 1] z2 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 1 1] z2 + [0] [0 0 0] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1 0 0] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [1] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [2] [0] [1] >= [2] [0] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1 1] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z3 + [1] [0 0 0] [0 0 0] [1] >= [0 1 1] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z3 + [1] [0 0 0] [0 0 0] [1] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [0] [0 0 0] [0 0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [0 1 1] [1] [0 1 0] z0 + [0] [0 0 1] [0] >= [0 1 1] [1] [0 1 0] z0 + [0] [0 0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 1 1] [2] [0 1 1] z1 + [0] [0 0 0] [1] >= [0 1 1] [2] [0 1 1] z1 + [0] [0 0 0] [1] = insert(z0,split(z1)) split#1(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() splitqs(z0,z1) = [1 0 1] [0 1 0] [1] [0 0 0] z0 + [0 1 1] z1 + [0] [0 0 1] [0 0 0] [0] >= [1 0 1] [0 1 0] [1] [0 0 0] z0 + [0 1 1] z1 + [0] [0 0 1] [0 0 0] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 1 1] [1 0 1] [1] [0 1 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 1] [0] >= [0 1 1] [1 0 1] [1] [0 1 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 0] [0] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [1 0 1] [1] [0 0 0] z0 + [0] [0 0 1] [0] >= [0] [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1 1] [0 1 1] [1 0 1] [1] [0 1 1] z0 + [0 1 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1 1] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1 1] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 0 0] [0] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] = tuple#2(z0,::(z2,z1)) **** Step 8.a:3.a:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () **** Step 8.a:3.a:1.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 1: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) Consider the set of all dependency pairs 1: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) 2: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 3: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {1} These cover all (indirect) predecessors of dependency pairs {1,9} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ***** Step 8.a:3.a:1.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima): The following argument positions are considered usable: uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_16) = {1,2}, uargs(c_17) = {1,2}, uargs(c_18) = {1}, uargs(c_19) = {1}, uargs(c_21) = {1}, uargs(c_22) = {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#,#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#,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] [1] p(#AND) = [0] [0] [0] p(#CKGT) = [0] [0] [0] p(#COMPARE) = [0] [0] [0] p(#EQ) = [0] [0] [0] p(#EQ') = [0] [0] [0] p(#EQUAL) = [0] [0] [0] p(#GREATER) = [0] [0] [0] p(#GT) = [0] [0] [0] p(#LT) = [0] [0] [0] p(#and) = [0 0 0] [1 1 0] [1] [0 1 1] x1 + [0 0 0] x2 + [0] [0 0 1] [0 0 1] [1] p(#ckgt) = [1] [0] [0] p(#compare) = [0 0 0] [0] [1 0 1] x2 + [0] [0 0 0] [0] p(#eq) = [1] [0] [1] p(#equal) = [0] [0] [0] p(#false) = [0] [1] [0] p(#greater) = [0] [0] [0] p(#neg) = [0] [0] [0] p(#pos) = [0 1 0] [0] [0 0 0] x1 + [0] [0 0 0] [0] p(#s) = [0] [0] [0] p(#true) = [0] [0] [0] p(::) = [0 1 0] [1 0 0] [0] [0 0 0] x1 + [0 1 1] x2 + [0] [0 0 0] [0 0 0] [1] p(APPEND) = [0] [0] [0] p(APPEND#1) = [0] [0] [0] p(INSERT) = [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] [0] p(QUICKSORT#1) = [0] [0] [0] p(QUICKSORT#2) = [0] [0] [0] p(SORTALL) = [0] [0] [0] p(SORTALL#1) = [0] [0] [0] p(SORTALL#2) = [0] [0] [0] p(SPLIT) = [0] [0] [0] p(SPLIT#1) = [0] [0] [0] p(SPLITANDSORT) = [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(append) = [1 0 1] [0 0 0] [0] [0 0 1] x1 + [0 0 1] x2 + [0] [0 0 0] [0 0 0] [1] p(append#1) = [0 1 0] [0] [0 0 0] x1 + [0] [0 0 0] [0] p(c) = [0] [0] [0] p(c1) = [0] [0] [0] p(c10) = [0] [0] [0] p(c11) = [0] [0] [0] p(c12) = [0] [0] [0] p(c13) = [0] [0] [0] p(c14) = [0] [0] [0] p(c15) = [0] [0] [0] p(c16) = [0] [0] [0] p(c17) = [0] [0] [0] p(c18) = [0] [0] [0] p(c19) = [0] [0] [0] p(c2) = [0] [0] [0] p(c20) = [0] [0] [0] p(c21) = [0] [0] [0] p(c22) = [0] [0] [0] p(c23) = [0] [0] [0] p(c24) = [0] [0] [0] p(c25) = [0] [0] [0] p(c26) = [0] [0] [0] p(c27) = [0] [0] [0] p(c28) = [0] [0] [0] p(c29) = [0] [0] [0] p(c3) = [0] [0] [0] p(c30) = [0] [0] [0] p(c31) = [0] [0] [0] p(c32) = [0] [0] [0] p(c33) = [0] [0] [0] p(c34) = [0] [0] [0] p(c35) = [0] [0] [0] p(c36) = [0] [0] [0] p(c37) = [0] [0] [0] p(c38) = [0] [0] [0] p(c39) = [0] [0] [0] p(c4) = [0] [0] [0] p(c40) = [0] [0] [0] p(c41) = [0] [0] [0] p(c42) = [0] [0] [0] p(c43) = [0] [0] [0] p(c44) = [0] [0] [0] p(c45) = [0] [0] [0] p(c46) = [0] [0] [0] p(c47) = [0] [0] [0] p(c48) = [0] [0] [0] p(c49) = [0] [0] [0] p(c5) = [0] [0] [0] p(c50) = [0] [0] [0] p(c51) = [0] [0] [0] p(c52) = [0] [0] [0] p(c53) = [0] [0] [0] p(c54) = [0] [0] [0] p(c55) = [0] [0] [0] p(c56) = [0] [0] [0] p(c57) = [0] [0] [0] p(c58) = [0] [0] [0] p(c59) = [0] [0] [0] p(c6) = [0] [0] [0] p(c60) = [0] [0] [0] p(c61) = [0] [0] [0] p(c62) = [0] [0] [0] p(c63) = [0] [0] [0] p(c64) = [0] [0] [0] p(c65) = [0] [0] [0] p(c66) = [0] [0] [0] p(c67) = [0] [0] [0] p(c68) = [0] [0] [0] p(c69) = [0] [0] [0] p(c7) = [0] [0] [0] p(c70) = [0] [0] [0] p(c71) = [0] [0] [0] p(c72) = [0] [0] [0] p(c73) = [0] [0] [0] p(c8) = [0] [0] [0] p(c9) = [0] [0] [0] p(insert) = [1 0 0] [1] [0 1 1] x2 + [0] [0 0 0] [1] p(insert#1) = [1 0 0] [1] [0 1 1] x2 + [0] [0 0 0] [1] p(insert#2) = [1 0 0] [1] [0 1 1] x1 + [0] [0 0 0] [1] p(insert#3) = [0 1 0] [1 0 0] [1] [0 0 0] x1 + [0 1 1] x3 + [1] [0 0 0] [0 0 0] [1] p(insert#4) = [1 0 0] [0 1 1] [1] [0 1 1] x3 + [0 0 0] x5 + [1] [0 0 0] [0 0 0] [1] p(nil) = [1] [0] [0] p(quicksort) = [0 0 0] [0] [0 0 0] x1 + [0] [0 0 1] [0] p(quicksort#1) = [0 0 1] [0] [0 0 0] x1 + [0] [1 0 0] [1] p(quicksort#2) = [0 1 0] [0 0 1] [0] [0 0 0] x1 + [0 0 0] x2 + [0] [1 0 0] [0 0 0] [0] p(sortAll) = [0] [0] [0] p(sortAll#1) = [0] [0] [0] p(sortAll#2) = [0] [0] [0] p(split) = [1 1 1] [0] [0 1 1] x1 + [0] [0 0 0] [1] p(split#1) = [1 1 1] [0] [0 1 1] x1 + [0] [0 0 0] [1] p(splitAndSort) = [0] [0] [0] p(splitqs) = [0 0 0] [0 1 1] [0] [1 0 1] x1 + [0 1 0] x2 + [1] [1 0 0] [0 0 0] [0] p(splitqs#1) = [0 1 1] [0 0 0] [0] [0 1 0] x1 + [1 0 0] x2 + [1] [0 0 0] [1 0 0] [0] p(splitqs#2) = [1 0 0] [1] [1 0 0] x1 + [1] [0 0 0] [0] p(splitqs#3) = [0 1 1] [0 1 1] [1] [0 1 1] x2 + [0 0 0] x3 + [1] [0 0 0] [0 0 0] [0] p(tuple#2) = [0 1 1] [0 1 1] [0] [0 1 1] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 0] [0] p(#AND#) = [0] [0] [0] p(#CKGT#) = [0] [0] [0] p(#COMPARE#) = [0] [0] [0] p(#EQ'#) = [0] [0] [0] p(#EQUAL#) = [0] [0] [0] p(#GREATER#) = [0] [0] [0] p(#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] [1] [0] p(APPEND#1#) = [0] [0] [0] p(INSERT#) = [0] [0] [0] p(INSERT#1#) = [0] [0] [0] p(INSERT#2#) = [0] [0] [0] p(INSERT#3#) = [0] [0] [0] p(INSERT#4#) = [0] [0] [0] p(QUICKSORT#) = [0 1 1] [0] [0 0 0] x1 + [0] [0 0 0] [1] p(QUICKSORT#1#) = [0 1 1] [0] [1 1 0] x1 + [1] [1 1 1] [0] p(QUICKSORT#2#) = [1 0 0] [0 0 0] [1] [0 0 0] x1 + [0 1 0] x2 + [1] [0 0 1] [0 0 1] [1] p(SORTALL#) = [1 0 0] [0] [0 0 0] x1 + [1] [0 0 0] [0] p(SORTALL#1#) = [1 0 0] [0] [1 0 0] x1 + [0] [1 1 1] [0] p(SORTALL#2#) = [0 1 0] [1 0 0] [0] [1 0 0] x1 + [0 0 0] x2 + [1] [0 0 0] [0 1 0] [1] p(SPLIT#) = [0] [0] [0] p(SPLIT#1#) = [0] [0] [0] p(SPLITANDSORT#) = [1 1 1] [1] [0 0 0] x1 + [0] [1 0 1] [1] p(SPLITQS#) = [0] [0] [0] p(SPLITQS#1#) = [0] [0] [0] p(SPLITQS#2#) = [0] [0] [0] p(SPLITQS#3#) = [0] [0] [0] p(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] [0] p(quicksort#1#) = [0] [0] [0] p(quicksort#2#) = [0] [0] [0] p(sortAll#) = [0] [0] [0] p(sortAll#1#) = [0] [0] [0] p(sortAll#2#) = [0] [0] [0] p(split#) = [0] [0] [0] p(split#1#) = [0] [0] [0] p(splitAndSort#) = [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) = [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 + [1] [0 0 0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [1 0 0] [0] [0 1 0] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 1] [0] p(c_17) = [1 0 0] [1 0 0] [0] [0 0 0] x1 + [0 0 0] x2 + [0] [0 0 0] [0 0 1] [0] p(c_18) = [1 0 0] [0] [0 0 0] x1 + [0] [0 0 0] [0] p(c_19) = [1 0 0] [0] [0 0 0] x1 + [0] [1 0 1] [0] p(c_20) = [0] [0] [0] p(c_21) = [1 0 0] [0] [1 0 0] x1 + [1] [0 0 0] [0] p(c_22) = [1 0 0] [0] [0 0 0] x1 + [0] [0 0 0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [1 0 0] [1] [0 0 0] x1 + [0] [0 1 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] p(c_71) = [0] [0] [0] p(c_72) = [0] [0] [0] p(c_73) = [0] [0] [0] p(c_74) = [0] [0] [0] p(c_75) = [0] [0] [0] p(c_76) = [0] [0] [0] p(c_77) = [0] [0] [0] p(c_78) = [0] [0] [0] p(c_79) = [0] [0] [0] p(c_80) = [0] [0] [0] p(c_81) = [0] [0] [0] p(c_82) = [0] [0] [0] p(c_83) = [0] [0] [0] p(c_84) = [0] [0] [0] p(c_85) = [0] [0] [0] p(c_86) = [0] [0] [0] p(c_87) = [0] [0] [0] p(c_88) = [0] [0] [0] p(c_89) = [0] [0] [0] p(c_90) = [0] [0] [0] p(c_91) = [0] [0] [0] p(c_92) = [0] [0] [0] p(c_93) = [0] [0] [0] p(c_94) = [0] [0] [0] p(c_95) = [0] [0] [0] p(c_96) = [0] [0] [0] p(c_97) = [0] [0] [0] p(c_98) = [0] [0] [0] p(c_99) = [0] [0] [0] p(c_100) = [0] [0] [0] p(c_101) = [0] [0] [0] p(c_102) = [0] [0] [0] p(c_103) = [0] [0] [0] p(c_104) = [0] [0] [0] p(c_105) = [0] [0] [0] p(c_106) = [0] [0] [0] p(c_107) = [0] [0] [0] p(c_108) = [0] [0] [0] p(c_109) = [0] [0] [0] p(c_110) = [0] [0] [0] p(c_111) = [0] [0] [0] p(c_112) = [0] [0] [0] p(c_113) = [0] [0] [0] p(c_114) = [0] [0] [0] p(c_115) = [0] [0] [0] p(c_116) = [0] [0] [0] p(c_117) = [0] [0] [0] p(c_118) = [0] [0] [0] p(c_119) = [0] [0] [0] p(c_120) = [0] [0] [0] p(c_121) = [0] [0] [0] p(c_122) = [0] [0] [0] p(c_123) = [0] [0] [0] p(c_124) = [0] [0] [0] p(c_125) = [0] [0] [0] p(c_126) = [0] [0] [0] p(c_127) = [0] [0] [0] p(c_128) = [0] [0] [0] p(c_129) = [0] [0] [0] p(c_130) = [0] [0] [0] p(c_131) = [0] [0] [0] p(c_132) = [0] [0] [0] p(c_133) = [0] [0] [0] p(c_134) = [0] [0] [0] p(c_135) = [0] [0] [0] p(c_136) = [0] [0] [0] p(c_137) = [0] [0] [0] p(c_138) = [0] [0] [0] p(c_139) = [0] [0] [0] p(c_140) = [0] [0] [0] p(c_141) = [0] [0] [0] p(c_142) = [0] [0] [0] p(c_143) = [0] [0] [0] p(c_144) = [0] [0] [0] Following rules are strictly oriented: QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 1 1] [0 0 0] [1] [0 0 0] z0 + [0 0 0] z1 + [0 1 0] z2 + [1] [0 0 0] [0 0 0] [0 0 1] [1] > [0 1 1] [0] [0 0 0] z0 + [1] [0 0 0] [1] = c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) Following rules are (at-least) weakly oriented: QUICKSORT#(z0) = [0 1 1] [0] [0 0 0] z0 + [0] [0 0 0] [1] >= [0 1 1] [0] [0 0 0] z0 + [0] [0 0 0] [0] = c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) = [0 0 0] [0 1 1] [1] [0 1 0] z0 + [1 1 1] z1 + [1] [0 1 0] [1 1 1] [1] >= [0 1 1] [1] [0 0 0] z1 + [1] [0 0 0] [0] = c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 1 1] [0 0 0] [1] [0 0 0] z0 + [0 0 0] z1 + [0 1 0] z2 + [1] [0 0 0] [0 0 0] [0 0 1] [1] >= [0 1 1] [0] [0 0 0] z1 + [0] [0 0 0] [1] = c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) = [1 0 0] [0] [0 0 0] z0 + [1] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] z0 + [0] [0 0 0] [0] = c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) = [0 1 0] [1 0 0] [0] [0 1 0] z0 + [1 0 0] z1 + [0] [0 1 0] [1 1 1] [1] >= [0 1 0] [1 0 0] [0] [0 0 0] z0 + [0 0 0] z1 + [0] [0 1 0] [1 1 0] [1] = c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 0 0] [1 0 0] [0] [0 1 1] z0 + [0 1 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 0] [0 1 0] [1] >= [0 1 1] [0] [0 1 1] z0 + [1] [0 0 0] [0] = c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1 1] [0 0 0] [1 0 0] [0] [0 1 1] z0 + [0 1 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 0] [0 1 0] [1] >= [1 0 0] [0] [0 0 0] z2 + [0] [0 0 0] [0] = c_22(SORTALL#(z2)) SPLITANDSORT#(z0) = [1 1 1] [1] [0 0 0] z0 + [0] [1 0 1] [1] >= [1 1 1] [1] [0 0 0] z0 + [0] [0 0 0] [1] = c_26(SORTALL#(split(z0))) insert(z0,z1) = [1 0 0] [1] [0 1 1] z1 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 1 1] z1 + [0] [0 0 0] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0 0] [1] [0 1 1] z2 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 1 1] z2 + [0] [0 0 0] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 1 0] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [1] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [2] [0] [1] >= [2] [0] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1 1] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z3 + [1] [0 0 0] [0 0 0] [1] >= [0 1 1] [1 0 0] [1] [0 0 0] z0 + [0 1 1] z3 + [1] [0 0 0] [0 0 0] [1] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0 1 1] [1] [0 1 1] z1 + [0 0 0] z3 + [0] [0 0 0] [0 0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 1 1] [0] [0 1 1] z0 + [0] [0 0 0] [1] >= [1 1 1] [0] [0 1 1] z0 + [0] [0 0 0] [1] = split#1(z0) split#1(::(z0,z1)) = [0 1 0] [1 1 1] [1] [0 0 0] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [1] >= [1 1 1] [1] [0 1 1] z1 + [1] [0 0 0] [1] = insert(z0,split(z1)) split#1(nil()) = [1] [0] [1] >= [1] [0] [0] = nil() splitqs(z0,z1) = [0 0 0] [0 1 1] [0] [1 0 1] z0 + [0 1 0] z1 + [1] [1 0 0] [0 0 0] [0] >= [0 0 0] [0 1 1] [0] [1 0 0] z0 + [0 1 0] z1 + [1] [1 0 0] [0 0 0] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 1 1] [0 0 0] [1] [0 1 1] z1 + [1 0 0] z2 + [1] [0 0 0] [1 0 0] [0] >= [0 1 1] [1] [0 1 1] z1 + [1] [0 0 0] [0] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0 0 0] [0] [1 0 0] z0 + [1] [1 0 0] [0] >= [0] [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 0 0] z1 + [1] [0 0 0] [0 0 0] [0] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 0 0] z1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 0 0] z1 + [1] [0 0 0] [0 0 0] [0] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 0 0] z1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [0 1 1] [1] [0 1 1] z0 + [0 0 0] z1 + [0] [0 0 0] [0 0 0] [0] = tuple#2(z0,::(z2,z1)) ***** Step 8.a:3.a:1.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ***** Step 8.a:3.a:1.b:1.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)):2 2:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))) ,QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)):3 3:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 9:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 1: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) 2: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0)) 3: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) ***** Step 8.a:3.a:1.b:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). *** Step 8.a:3.b:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 3, miDegree = 3, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(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#,#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#,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(#AND) = [0] [0] [0] p(#CKGT) = [0] [0] [0] p(#COMPARE) = [0] [0] [0] p(#EQ) = [0] [0] [0] p(#EQ') = [0] [0] [0] p(#EQUAL) = [0] [0] [0] p(#GREATER) = [0] [0] [0] p(#GT) = [0] [0] [0] p(#LT) = [0] [0] [0] p(#and) = [0] [0] [0] p(#ckgt) = [0] [0] [1] p(#compare) = [0] [0] [0] p(#eq) = [0] [0] [0] p(#equal) = [0] [0] [0] p(#false) = [0] [0] [0] p(#greater) = [0] [0] [0] p(#neg) = [0] [0] [0] p(#pos) = [0] [0] [0] p(#s) = [0] [0] [0] p(#true) = [0] [0] [0] p(::) = [0 0 0] [1 0 0] [0] [0 0 1] x1 + [0 1 0] x2 + [0] [0 0 0] [0 0 1] [1] 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] [0] p(QUICKSORT#1) = [0] [0] [0] p(QUICKSORT#2) = [0] [0] [0] p(SORTALL) = [0] [0] [0] p(SORTALL#1) = [0] [0] [0] p(SORTALL#2) = [0] [0] [0] p(SPLIT) = [0] [0] [0] p(SPLIT#1) = [0] [0] [0] p(SPLITANDSORT) = [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(append) = [0 0 0] [1 0 0] [0] [1 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] [1 1 0] x1 + [0 1 0] x2 + [0] [0 0 1] [0 0 1] [0] p(c) = [0] [0] [0] p(c1) = [0] [0] [0] p(c10) = [0] [0] [0] p(c11) = [0] [0] [0] p(c12) = [0] [0] [0] p(c13) = [0] [0] [0] p(c14) = [0] [0] [0] p(c15) = [0] [0] [0] p(c16) = [0] [0] [0] p(c17) = [0] [0] [0] p(c18) = [0] [0] [0] p(c19) = [0] [0] [0] p(c2) = [0] [0] [0] p(c20) = [0] [0] [0] p(c21) = [0] [0] [0] p(c22) = [0] [0] [0] p(c23) = [0] [0] [0] p(c24) = [0] [0] [0] p(c25) = [0] [0] [0] p(c26) = [0] [0] [0] p(c27) = [0] [0] [0] p(c28) = [0] [0] [0] p(c29) = [0] [0] [0] p(c3) = [0] [0] [0] p(c30) = [0] [0] [0] p(c31) = [0] [0] [0] p(c32) = [0] [0] [0] p(c33) = [0] [0] [0] p(c34) = [0] [0] [0] p(c35) = [0] [0] [0] p(c36) = [0] [0] [0] p(c37) = [0] [0] [0] p(c38) = [0] [0] [0] p(c39) = [0] [0] [0] p(c4) = [0] [0] [0] p(c40) = [0] [0] [0] p(c41) = [0] [0] [0] p(c42) = [0] [0] [0] p(c43) = [0] [0] [0] p(c44) = [0] [0] [0] p(c45) = [0] [0] [0] p(c46) = [0] [0] [0] p(c47) = [0] [0] [0] p(c48) = [0] [0] [0] p(c49) = [0] [0] [0] p(c5) = [0] [0] [0] p(c50) = [0] [0] [0] p(c51) = [0] [0] [0] p(c52) = [0] [0] [0] p(c53) = [0] [0] [0] p(c54) = [0] [0] [0] p(c55) = [0] [0] [0] p(c56) = [0] [0] [0] p(c57) = [0] [0] [0] p(c58) = [0] [0] [0] p(c59) = [0] [0] [0] p(c6) = [0] [0] [0] p(c60) = [0] [0] [0] p(c61) = [0] [0] [0] p(c62) = [0] [0] [0] p(c63) = [0] [0] [0] p(c64) = [0] [0] [0] p(c65) = [0] [0] [0] p(c66) = [0] [0] [0] p(c67) = [0] [0] [0] p(c68) = [0] [0] [0] p(c69) = [0] [0] [0] p(c7) = [0] [0] [0] p(c70) = [0] [0] [0] p(c71) = [0] [0] [0] p(c72) = [0] [0] [0] p(c73) = [0] [0] [0] p(c8) = [0] [0] [0] p(c9) = [0] [0] [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] [0] [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] [1 1 0] x1 + [0 0 1] x2 + [1] [0 1 0] [0 0 0] [1] p(sortAll) = [0] [0] [0] p(sortAll#1) = [0] [0] [0] p(sortAll#2) = [0] [0] [0] p(split) = [0 0 0] [1] [0 0 1] 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] [0 0 0] x1 + [0 0 1] x2 + [0] [1 1 0] [0 0 1] [0] p(splitqs#1) = [0 1 0] [0 0 0] [0] [0 0 1] x1 + [0 0 0] x2 + [0] [0 0 1] [1 1 0] [0] p(splitqs#2) = [1 0 0] [0 0 0] [0 0 1] [0] [0 1 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [1] [0 1 0] [0 1 0] [0 0 0] [1] p(splitqs#3) = [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] x2 + [0 0 1] x3 + [0 0 0] x4 + [1] [0 0 1] [0 0 0] [0 0 0] [1] p(tuple#2) = [0 1 0] [0 1 0] [0] [0 0 1] x1 + [0 0 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(#and#) = [0] [0] [0] p(#ckgt#) = [0] [0] [0] p(#compare#) = [0] [0] [0] p(#eq#) = [0] [0] [0] p(#equal#) = [0] [0] [0] p(#greater#) = [0] [0] [0] p(APPEND#) = [0 0 1] [0] [1 0 0] x1 + [0] [0 0 1] [0] p(APPEND#1#) = [0 0 1] [0 0 0] [0] [1 0 1] x1 + [0 0 0] x2 + [0] [1 0 1] [0 1 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] [0] [0 0 0] x1 + [1] [0 0 1] [0] p(QUICKSORT#1#) = [0 0 1] [0] [0 0 0] x1 + [1] [0 0 1] [0] p(QUICKSORT#2#) = [0 1 0] [0] [0 0 0] x1 + [1] [0 1 0] [0] p(SORTALL#) = [0 1 0] [0] [0 1 0] x1 + [1] [0 1 0] [1] p(SORTALL#1#) = [0 1 0] [0] [0 1 0] x1 + [1] [0 1 0] [1] p(SORTALL#2#) = [0 0 1] [0 1 0] [0] [0 0 1] x1 + [0 1 0] x2 + [1] [0 0 1] [0 1 0] [1] p(SPLIT#) = [0] [0] [0] p(SPLIT#1#) = [0] [0] [0] p(SPLITANDSORT#) = [0 0 1] [1] [0 0 1] x1 + [1] [0 0 1] [1] p(SPLITQS#) = [0] [0] [0] p(SPLITQS#1#) = [0] [0] [0] p(SPLITQS#2#) = [0] [0] [0] p(SPLITQS#3#) = [0] [0] [0] p(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] [0] p(quicksort#1#) = [0] [0] [0] p(quicksort#2#) = [0] [0] [0] p(sortAll#) = [0] [0] [0] p(sortAll#1#) = [0] [0] [0] p(sortAll#2#) = [0] [0] [0] p(split#) = [0] [0] [0] p(split#1#) = [0] [0] [0] p(splitAndSort#) = [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] [1 1 0] x1 + [0] [0 1 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] p(c_71) = [0] [0] [0] p(c_72) = [0] [0] [0] p(c_73) = [0] [0] [0] p(c_74) = [0] [0] [0] p(c_75) = [0] [0] [0] p(c_76) = [0] [0] [0] p(c_77) = [0] [0] [0] p(c_78) = [0] [0] [0] p(c_79) = [0] [0] [0] p(c_80) = [0] [0] [0] p(c_81) = [0] [0] [0] p(c_82) = [0] [0] [0] p(c_83) = [0] [0] [0] p(c_84) = [0] [0] [0] p(c_85) = [0] [0] [0] p(c_86) = [0] [0] [0] p(c_87) = [0] [0] [0] p(c_88) = [0] [0] [0] p(c_89) = [0] [0] [0] p(c_90) = [0] [0] [0] p(c_91) = [0] [0] [0] p(c_92) = [0] [0] [0] p(c_93) = [0] [0] [0] p(c_94) = [0] [0] [0] p(c_95) = [0] [0] [0] p(c_96) = [0] [0] [0] p(c_97) = [0] [0] [0] p(c_98) = [0] [0] [0] p(c_99) = [0] [0] [0] p(c_100) = [0] [0] [0] p(c_101) = [0] [0] [0] p(c_102) = [0] [0] [0] p(c_103) = [0] [0] [0] p(c_104) = [0] [0] [0] p(c_105) = [0] [0] [0] p(c_106) = [0] [0] [0] p(c_107) = [0] [0] [0] p(c_108) = [0] [0] [0] p(c_109) = [0] [0] [0] p(c_110) = [0] [0] [0] p(c_111) = [0] [0] [0] p(c_112) = [0] [0] [0] p(c_113) = [0] [0] [0] p(c_114) = [0] [0] [0] p(c_115) = [0] [0] [0] p(c_116) = [0] [0] [0] p(c_117) = [0] [0] [0] p(c_118) = [0] [0] [0] p(c_119) = [0] [0] [0] p(c_120) = [0] [0] [0] p(c_121) = [0] [0] [0] p(c_122) = [0] [0] [0] p(c_123) = [0] [0] [0] p(c_124) = [0] [0] [0] p(c_125) = [0] [0] [0] p(c_126) = [0] [0] [0] p(c_127) = [0] [0] [0] p(c_128) = [0] [0] [0] p(c_129) = [0] [0] [0] p(c_130) = [0] [0] [0] p(c_131) = [0] [0] [0] p(c_132) = [0] [0] [0] p(c_133) = [0] [0] [0] p(c_134) = [0] [0] [0] p(c_135) = [0] [0] [0] p(c_136) = [0] [0] [0] p(c_137) = [0] [0] [0] p(c_138) = [0] [0] [0] p(c_139) = [0] [0] [0] p(c_140) = [0] [0] [0] p(c_141) = [0] [0] [0] p(c_142) = [0] [0] [0] p(c_143) = [0] [0] [0] p(c_144) = [0] [0] [0] Following rules are strictly oriented: APPEND#1#(::(z0,z1),z2) = [0 0 1] [0 0 0] [1] [1 0 1] z1 + [0 0 0] z2 + [1] [1 0 1] [0 1 0] [2] > [0 0 1] [0] [1 0 1] z1 + [0] [1 0 0] [0] = c_4(APPEND#(z1,z2)) Following rules are (at-least) weakly oriented: APPEND#(z0,z1) = [0 0 1] [0] [1 0 0] z0 + [0] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [0] [0 0 0] [0] = c_3(APPEND#1#(z0,z1)) QUICKSORT#(z0) = [0 0 1] [0] [0 0 0] z0 + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [1] [0 0 1] [0] = QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) = [0 0 1] [1] [0 0 0] z1 + [1] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] z1 + [1] [0 0 1] [0] = QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [0] [0 0 0] z0 + [0 0 0] z1 + [1] [0 0 1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [1] [0 0 1] [0] = APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [0] [0 0 0] z0 + [0 0 0] z1 + [1] [0 0 1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [1] [0 0 1] [0] = QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [0] [0 0 0] z0 + [0 0 0] z1 + [1] [0 0 1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z1 + [1] [0 0 1] [0] = QUICKSORT#(z1) SORTALL#(z0) = [0 1 0] [0] [0 1 0] z0 + [1] [0 1 0] [1] >= [0 1 0] [0] [0 1 0] z0 + [1] [0 1 0] [1] = SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) = [0 0 1] [0 1 0] [0] [0 0 1] z0 + [0 1 0] z1 + [1] [0 0 1] [0 1 0] [1] >= [0 0 1] [0 1 0] [0] [0 0 1] z0 + [0 1 0] z1 + [1] [0 0 1] [0 1 0] [1] = SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 1 0] [0] [0 0 1] z0 + [0 1 0] z2 + [1] [0 0 1] [0 1 0] [1] >= [0 0 1] [0] [0 0 0] z0 + [1] [0 0 1] [0] = QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 1 0] [0] [0 0 1] z0 + [0 1 0] z2 + [1] [0 0 1] [0 1 0] [1] >= [0 1 0] [0] [0 1 0] z2 + [1] [0 1 0] [1] = SORTALL#(z2) SPLITANDSORT#(z0) = [0 0 1] [1] [0 0 1] z0 + [1] [0 0 1] [1] >= [0 0 1] [0] [0 0 1] z0 + [1] [0 0 1] [1] = SORTALL#(split(z0)) append(z0,z1) = [0 0 0] [1 0 0] [0] [1 1 0] z0 + [0 1 0] z1 + [0] [0 0 1] [0 0 1] [0] >= [0 0 0] [1 0 0] [0] [1 1 0] z0 + [0 1 0] z1 + [0] [0 0 1] [0 0 1] [0] = append#1(z0,z1) append#1(::(z0,z1),z2) = [0 0 0] [0 0 0] [1 0 0] [0] [0 0 1] z0 + [1 1 0] z1 + [0 1 0] z2 + [0] [0 0 0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [1 0 0] [0] [0 0 1] z0 + [1 1 0] z1 + [0 1 0] z2 + [0] [0 0 0] [0 0 1] [0 0 1] [1] = ::(z0,append(z1,z2)) append#1(nil(),z0) = [1 0 0] [0] [0 1 0] z0 + [1] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] z0 + [0] [0 0 1] [0] = z0 insert(z0,z1) = [1 0 0] [0] [0 1 0] z1 + [1] [1 0 1] [0] >= [1 0 0] [0] [0 1 0] z1 + [1] [1 0 1] [0] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0 0] [0] [0 1 0] z2 + [1] [1 0 1] [0] >= [1 0 0] [0] [0 1 0] z2 + [1] [1 0 1] [0] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z1 + [1] [0 0 0] [1 0 1] [1] >= [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z1 + [1] [0 0 0] [1 0 1] [1] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [1] [1] [1] >= [1] [1] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z3 + [1] [0 0 0] [1 0 1] [1] >= [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z3 + [1] [0 0 0] [1 0 1] [1] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] >= [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] >= [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [0 0 1] [0 0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) = [0 0 0] [1] [0 1 1] z0 + [0] [0 0 1] [0] >= [0 0 0] [1] [0 1 1] z0 + [0] [0 0 1] [0] = quicksort#1(z0) quicksort#1(::(z0,z1)) = [0 0 0] [0 0 0] [1] [0 0 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 1] [1] >= [0 0 0] [0 0 0] [1] [0 0 1] z0 + [0 1 1] z1 + [1] [0 0 0] [0 0 1] [1] = quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() quicksort#2(tuple#2(z0,z1),z2) = [0 0 0] [0 0 0] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [0 0 1] z2 + [1] [0 0 1] [0 0 1] [0 0 0] [1] >= [0 0 0] [0 0 0] [0 0 0] [1] [0 1 1] z0 + [0 1 1] z1 + [0 0 1] z2 + [1] [0 0 1] [0 0 1] [0 0 0] [1] = append(quicksort(z0),::(z2,quicksort(z1))) split(z0) = [0 0 0] [1] [0 0 1] z0 + [0] [0 0 1] [0] >= [0 0 0] [1] [0 0 1] z0 + [0] [0 0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 0 0] [1] [0 0 1] z1 + [1] [0 0 1] [1] >= [0 0 0] [1] [0 0 1] z1 + [1] [0 0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() splitqs(z0,z1) = [0 0 0] [0 1 0] [0] [0 0 0] z0 + [0 0 1] z1 + [0] [1 1 0] [0 0 1] [0] >= [0 0 0] [0 1 0] [0] [0 0 0] z0 + [0 0 1] z1 + [0] [1 1 0] [0 0 1] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 0 1] [0 1 0] [0 0 0] [0] [0 0 0] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 1] [1 1 0] [1] >= [0 0 1] [0 1 0] [0 0 0] [0] [0 0 0] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 0] [0 0 1] [0 1 0] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0 0 0] [0] [0 0 0] z0 + [0] [1 1 0] [0] >= [0] [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1 0] [0 1 0] [0 0 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z2 + [0 0 0] z3 + [1] [0 0 1] [0 0 1] [0 1 0] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z3 + [1] [0 0 1] [0 0 0] [0 0 0] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 0] [0 0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 0 1] [0] [0 0 1] z0 + [0 0 1] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 0] [0 0 0] [0] = tuple#2(z0,::(z2,z1)) *** Step 8.a:3.b:2: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) - Weak DPs: APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 3, miDegree = 3, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(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#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} TcT has computed the following interpretation: p(#0) = [0] [1] [1] p(#AND) = [0] [0] [0] p(#CKGT) = [0] [0] [0] p(#COMPARE) = [0] [0] [0] p(#EQ) = [0] [0] [0] p(#EQ') = [0] [0] [0] p(#EQUAL) = [0] [0] [0] p(#GREATER) = [0] [0] [0] p(#GT) = [0] [0] [0] p(#LT) = [0] [0] [0] p(#and) = [0] [0] [0] p(#ckgt) = [0 0 0] [1] [0 0 1] x1 + [0] [0 1 0] [1] p(#compare) = [0 0 0] [1 0 0] [0] [0 1 0] x1 + [0 1 1] x2 + [0] [0 1 1] [0 1 0] [0] p(#eq) = [0] [0] [0] p(#equal) = [0] [0] [0] p(#false) = [0] [0] [0] p(#greater) = [0] [0] [0] p(#neg) = [0 0 1] [0] [0 0 0] x1 + [1] [0 0 0] [1] p(#pos) = [0 0 0] [0] [0 0 0] x1 + [0] [0 0 1] [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] 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] [0] p(QUICKSORT#1) = [0] [0] [0] p(QUICKSORT#2) = [0] [0] [0] p(SORTALL) = [0] [0] [0] p(SORTALL#1) = [0] [0] [0] p(SORTALL#2) = [0] [0] [0] p(SPLIT) = [0] [0] [0] p(SPLIT#1) = [0] [0] [0] p(SPLITANDSORT) = [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(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(c) = [0] [0] [0] p(c1) = [0] [0] [0] p(c10) = [0] [0] [0] p(c11) = [0] [0] [0] p(c12) = [0] [0] [0] p(c13) = [0] [0] [0] p(c14) = [0] [0] [0] p(c15) = [0] [0] [0] p(c16) = [0] [0] [0] p(c17) = [0] [0] [0] p(c18) = [0] [0] [0] p(c19) = [0] [0] [0] p(c2) = [0] [0] [0] p(c20) = [0] [0] [0] p(c21) = [0] [0] [0] p(c22) = [0] [0] [0] p(c23) = [0] [0] [0] p(c24) = [0] [0] [0] p(c25) = [0] [0] [0] p(c26) = [0] [0] [0] p(c27) = [0] [0] [0] p(c28) = [0] [0] [0] p(c29) = [0] [0] [0] p(c3) = [0] [0] [0] p(c30) = [0] [0] [0] p(c31) = [0] [0] [0] p(c32) = [0] [0] [0] p(c33) = [0] [0] [0] p(c34) = [0] [0] [0] p(c35) = [0] [0] [0] p(c36) = [0] [0] [0] p(c37) = [0] [0] [0] p(c38) = [0] [0] [0] p(c39) = [0] [0] [0] p(c4) = [0] [0] [0] p(c40) = [0] [0] [0] p(c41) = [0] [0] [0] p(c42) = [0] [0] [0] p(c43) = [0] [0] [0] p(c44) = [0] [0] [0] p(c45) = [0] [0] [0] p(c46) = [0] [0] [0] p(c47) = [0] [0] [0] p(c48) = [0] [0] [0] p(c49) = [0] [0] [0] p(c5) = [0] [0] [0] p(c50) = [0] [0] [0] p(c51) = [0] [0] [0] p(c52) = [0] [0] [0] p(c53) = [0] [0] [0] p(c54) = [0] [0] [0] p(c55) = [0] [0] [0] p(c56) = [0] [0] [0] p(c57) = [0] [0] [0] p(c58) = [0] [0] [0] p(c59) = [0] [0] [0] p(c6) = [0] [0] [0] p(c60) = [0] [0] [0] p(c61) = [0] [0] [0] p(c62) = [0] [0] [0] p(c63) = [0] [0] [0] p(c64) = [0] [0] [0] p(c65) = [0] [0] [0] p(c66) = [0] [0] [0] p(c67) = [0] [0] [0] p(c68) = [0] [0] [0] p(c69) = [0] [0] [0] p(c7) = [0] [0] [0] p(c70) = [0] [0] [0] p(c71) = [0] [0] [0] p(c72) = [0] [0] [0] p(c73) = [0] [0] [0] p(c8) = [0] [0] [0] p(c9) = [0] [0] [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 1 0] [0] [0 0 1] x2 + [0] [0 0 1] [0] p(splitqs#1) = [0 1 0] [0] [0 0 1] x1 + [0] [0 0 1] [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(#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 + [0] [1 0 1] [0] p(APPEND#1#) = [0 0 1] [0] [0 0 1] x1 + [1] [0 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 1] [0] p(QUICKSORT#1#) = [0 0 1] [0] [0 0 0] x1 + [0] [0 0 1] [0] p(QUICKSORT#2#) = [0 0 1] [1] [0 0 0] x1 + [0] [0 0 1] [1] p(SORTALL#) = [0 1 0] [0] [0 0 0] x1 + [0] [0 1 0] [0] p(SORTALL#1#) = [0 1 0] [0] [0 0 0] x1 + [0] [0 1 0] [0] p(SORTALL#2#) = [0 1 0] [0 1 0] [0] [0 0 0] x1 + [0 0 0] x2 + [0] [0 1 0] [0 1 0] [0] p(SPLIT#) = [0] [0] [0] p(SPLIT#1#) = [0] [0] [0] p(SPLITANDSORT#) = [0 1 1] [1] [0 0 1] x1 + [1] [1 1 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(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] [0] p(quicksort#1#) = [0] [0] [0] p(quicksort#2#) = [0] [0] [0] p(sortAll#) = [0] [0] [0] p(sortAll#1#) = [0] [0] [0] p(sortAll#2#) = [0] [0] [0] p(split#) = [0] [0] [0] p(split#1#) = [0] [0] [0] p(splitAndSort#) = [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] [1 0 0] x1 + [1] [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] p(c_71) = [0] [0] [0] p(c_72) = [0] [0] [0] p(c_73) = [0] [0] [0] p(c_74) = [0] [0] [0] p(c_75) = [0] [0] [0] p(c_76) = [0] [0] [0] p(c_77) = [0] [0] [0] p(c_78) = [0] [0] [0] p(c_79) = [0] [0] [0] p(c_80) = [0] [0] [0] p(c_81) = [0] [0] [0] p(c_82) = [0] [0] [0] p(c_83) = [0] [0] [0] p(c_84) = [0] [0] [0] p(c_85) = [0] [0] [0] p(c_86) = [0] [0] [0] p(c_87) = [0] [0] [0] p(c_88) = [0] [0] [0] p(c_89) = [0] [0] [0] p(c_90) = [0] [0] [0] p(c_91) = [0] [0] [0] p(c_92) = [0] [0] [0] p(c_93) = [0] [0] [0] p(c_94) = [0] [0] [0] p(c_95) = [0] [0] [0] p(c_96) = [0] [0] [0] p(c_97) = [0] [0] [0] p(c_98) = [0] [0] [0] p(c_99) = [0] [0] [0] p(c_100) = [0] [0] [0] p(c_101) = [0] [0] [0] p(c_102) = [0] [0] [0] p(c_103) = [0] [0] [0] p(c_104) = [0] [0] [0] p(c_105) = [0] [0] [0] p(c_106) = [0] [0] [0] p(c_107) = [0] [0] [0] p(c_108) = [0] [0] [0] p(c_109) = [0] [0] [0] p(c_110) = [0] [0] [0] p(c_111) = [0] [0] [0] p(c_112) = [0] [0] [0] p(c_113) = [0] [0] [0] p(c_114) = [0] [0] [0] p(c_115) = [0] [0] [0] p(c_116) = [0] [0] [0] p(c_117) = [0] [0] [0] p(c_118) = [0] [0] [0] p(c_119) = [0] [0] [0] p(c_120) = [0] [0] [0] p(c_121) = [0] [0] [0] p(c_122) = [0] [0] [0] p(c_123) = [0] [0] [0] p(c_124) = [0] [0] [0] p(c_125) = [0] [0] [0] p(c_126) = [0] [0] [0] p(c_127) = [0] [0] [0] p(c_128) = [0] [0] [0] p(c_129) = [0] [0] [0] p(c_130) = [0] [0] [0] p(c_131) = [0] [0] [0] p(c_132) = [0] [0] [0] p(c_133) = [0] [0] [0] p(c_134) = [0] [0] [0] p(c_135) = [0] [0] [0] p(c_136) = [0] [0] [0] p(c_137) = [0] [0] [0] p(c_138) = [0] [0] [0] p(c_139) = [0] [0] [0] p(c_140) = [0] [0] [0] p(c_141) = [0] [0] [0] p(c_142) = [0] [0] [0] p(c_143) = [0] [0] [0] p(c_144) = [0] [0] [0] Following rules are strictly oriented: APPEND#(z0,z1) = [0 0 1] [1] [0 0 0] z0 + [0] [1 0 1] [0] > [0 0 1] [0] [0 0 0] z0 + [0] [0 0 0] [0] = c_3(APPEND#1#(z0,z1)) Following rules are (at-least) weakly oriented: APPEND#1#(::(z0,z1),z2) = [0 0 1] [1] [0 0 1] z1 + [2] [0 0 0] [0] >= [0 0 1] [1] [0 0 1] z1 + [2] [0 0 0] [0] = c_4(APPEND#(z1,z2)) QUICKSORT#(z0) = [0 0 1] [0] [0 0 0] z0 + [0] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [0] [0 0 1] [0] = QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) = [0 0 1] [1] [0 0 0] z1 + [0] [0 0 1] [1] >= [0 0 1] [1] [0 0 0] z1 + [0] [0 0 1] [1] = QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [1] [0 0 0] z0 + [0 0 0] z1 + [0] [0 0 1] [0 0 1] [1] >= [0 0 1] [1] [0 0 0] z0 + [0] [0 0 1] [1] = APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [1] [0 0 0] z0 + [0 0 0] z1 + [0] [0 0 1] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] z0 + [0] [0 0 1] [0] = QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 0 1] [1] [0 0 0] z0 + [0 0 0] z1 + [0] [0 0 1] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] z1 + [0] [0 0 1] [0] = QUICKSORT#(z1) SORTALL#(z0) = [0 1 0] [0] [0 0 0] z0 + [0] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] z0 + [0] [0 1 0] [0] = SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) = [0 1 0] [0 1 0] [0] [0 0 0] z0 + [0 0 0] z1 + [0] [0 1 0] [0 1 0] [0] >= [0 1 0] [0 1 0] [0] [0 0 0] z0 + [0 0 0] z1 + [0] [0 1 0] [0 1 0] [0] = SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 1 0] [0] [0 0 0] z0 + [0 0 0] z2 + [0] [0 0 1] [0 1 0] [0] >= [0 0 1] [0] [0 0 0] z0 + [0] [0 0 1] [0] = QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) = [0 0 1] [0 1 0] [0] [0 0 0] z0 + [0 0 0] z2 + [0] [0 0 1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] z2 + [0] [0 1 0] [0] = SORTALL#(z2) SPLITANDSORT#(z0) = [0 1 1] [1] [0 0 1] z0 + [1] [1 1 1] [0] >= [0 0 1] [0] [0 0 0] z0 + [0] [0 0 1] [0] = SORTALL#(split(z0)) append(z0,z1) = [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [0] [0 0 1] [0 0 1] [0] >= [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [0] [0 0 1] [0 0 1] [0] = append#1(z0,z1) append#1(::(z0,z1),z2) = [0 0 0] [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [0 1 0] z2 + [0] [0 0 0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [0 1 0] z2 + [0] [0 0 0] [0 0 1] [0 0 1] [1] = ::(z0,append(z1,z2)) append#1(nil(),z0) = [1 0 0] [0] [0 1 0] z0 + [0] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] z0 + [0] [0 0 1] [0] = z0 insert(z0,z1) = [1 0 0] [0] [0 1 0] z1 + [1] [1 0 1] [0] >= [1 0 0] [0] [0 1 0] z1 + [1] [1 0 1] [0] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0 0] [0] [0 1 0] z2 + [1] [1 0 1] [0] >= [1 0 0] [0] [0 1 0] z2 + [1] [1 0 1] [0] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [1] [0 0 0] [1 0 1] [1] >= [0 0 0] [1 0 0] [0] [0 1 0] z0 + [0 1 0] z1 + [1] [0 0 0] [1 0 1] [1] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [1] [1] [1] >= [1] [1] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z3 + [1] [0 0 0] [1 0 1] [1] >= [0 0 0] [1 0 0] [0] [0 0 1] z0 + [0 1 0] z3 + [1] [0 0 0] [1 0 1] [1] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] >= [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [1 0 1] [0 0 0] [1] >= [1 0 0] [0 0 0] [0] [0 1 0] z1 + [0 0 1] z3 + [1] [0 0 1] [0 0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) = [0 0 0] [1] [0 1 0] z0 + [0] [0 0 1] [0] >= [0 0 0] [1] [0 1 0] z0 + [0] [0 0 1] [0] = quicksort#1(z0) quicksort#1(::(z0,z1)) = [0 0 0] [0 0 0] [1] [0 1 0] z0 + [0 1 0] z1 + [0] [0 0 0] [0 0 1] [1] >= [0 0 0] [0 0 0] [1] [0 1 0] z0 + [0 1 0] z1 + [0] [0 0 0] [0 0 1] [1] = quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() quicksort#2(tuple#2(z0,z1),z2) = [0 0 0] [0 0 0] [0 0 0] [1] [0 1 0] z0 + [0 1 0] z1 + [0 1 0] z2 + [0] [0 0 1] [0 0 1] [0 0 0] [1] >= [0 0 0] [0 0 0] [0 0 0] [1] [0 1 0] z0 + [0 1 0] z1 + [0 1 0] z2 + [0] [0 0 1] [0 0 1] [0 0 0] [1] = append(quicksort(z0),::(z2,quicksort(z1))) split(z0) = [0 0 0] [1] [0 0 1] z0 + [0] [0 0 1] [0] >= [0 0 0] [1] [0 0 1] z0 + [0] [0 0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 0 0] [1] [0 0 1] z1 + [1] [0 0 1] [1] >= [0 0 0] [1] [0 0 1] z1 + [1] [0 0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() splitqs(z0,z1) = [0 1 0] [0] [0 0 1] z1 + [0] [0 0 1] [0] >= [0 1 0] [0] [0 0 1] z1 + [0] [0 0 1] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 1 0] [0 1 0] [0] [0 0 0] z0 + [0 0 1] z1 + [1] [0 0 0] [0 0 1] [1] >= [0 1 0] [0 1 0] [0] [0 0 0] z0 + [0 0 1] z1 + [1] [0 0 0] [0 0 1] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0] [0] [0] >= [0] [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z3 + [1] [0 0 1] [0 0 1] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z3 + [1] [0 0 1] [0 0 1] [0 0 0] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 1] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 1] [0 0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z2 + [1] [0 0 1] [0 0 1] [0 0 0] [1] >= [0 1 0] [0 1 0] [0 1 0] [0] [0 0 1] z0 + [0 0 0] z1 + [0 0 0] z2 + [0] [0 0 1] [0 0 1] [0 0 0] [1] = tuple#2(z0,::(z2,z1)) *** Step 8.a:3.b:3: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> APPEND#(quicksort(z0),::(z2,quicksort(z1))) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_17/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ** Step 8.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):2 2:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):3 3:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):4 4:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):5 5:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 6:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):7 7:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)):9 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)):8 8:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):19 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 9:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):19 -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 10:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):11 11:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):13 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):12 12:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 13:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 14:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):15 15:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 16:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 17:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):18 18:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 19:W:APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) -->_1 APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)):20 20:W:APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) -->_1 APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)):19 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 19: APPEND#(z0,z1) -> c_3(APPEND#1#(z0,z1)) 20: APPEND#1#(::(z0,z1),z2) -> c_4(APPEND#(z1,z2)) ** Step 8.b:2: SimplifyRHS. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/2,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):2 2:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):3 3:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):4 4:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):5 5:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 6:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):7 7:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)):9 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)):8 8:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z0)) -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 9:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(APPEND#(quicksort(z0),::(z2,quicksort(z1))),QUICKSORT#(z1)) -->_2 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 10:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):11 11:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):13 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):12 12:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 13:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 14:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):15 15:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 16:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 17:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):18 18:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) ** Step 8.b:3: UsableRules. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) append(z0,z1) -> append#1(z0,z1) append#1(::(z0,z1),z2) -> ::(z0,append(z1,z2)) append#1(nil(),z0) -> z0 insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) quicksort(z0) -> quicksort#1(z0) quicksort#1(::(z0,z1)) -> quicksort#2(splitqs(z0,z1),z0) quicksort#1(nil()) -> nil() quicksort#2(tuple#2(z0,z1),z2) -> append(quicksort(z0),::(z2,quicksort(z1))) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) ** Step 8.b:4: Decompose. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} Problem (S) - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} *** Step 8.b:4.a:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):2 2:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):3 3:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):4 4:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):5 5:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 6:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):7 7:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):9 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):8 8:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 9:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 10:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):11 11:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):13 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):12 12:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):6 13:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 14:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):15 15:W:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 16:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):10 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 17:W:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):18 18:W:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):17 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 10: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 13: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 11: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 12: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 6: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 9: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 7: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 8: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) 17: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 18: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) *** Step 8.b:4.a:2: SimplifyRHS. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):2 2:S:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):3 3:S:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):4 4:S:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):5 5:S:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 14:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):15 15:W:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 16:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):14 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) *** Step 8.b:4.a:3: UsableRules. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) *** Step 8.b:4.a:4: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) Consider the set of all dependency pairs 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 5: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 6: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 7: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 8: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {4} These cover all (indirect) predecessors of dependency pairs {4,5,8} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. **** Step 8.b:4.a:4.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_23) = {1}, uargs(c_24) = {1,2}, uargs(c_26) = {1} Following symbols are considered usable: {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER# ,#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#,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] p(#AND) = [0] [0] p(#CKGT) = [0] [0] p(#COMPARE) = [0] [0] p(#EQ) = [0] [0] p(#EQ') = [0] [0] p(#EQUAL) = [0] [0] p(#GREATER) = [0] [0] p(#GT) = [0] [0] p(#LT) = [0] [0] p(#and) = [0 0] x1 + [1] [1 1] [1] p(#ckgt) = [0] [0] p(#compare) = [0] [0] p(#eq) = [0] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0] [0] p(#neg) = [0 0] x1 + [0] [0 1] [0] p(#pos) = [1 0] x1 + [0] [0 1] [0] p(#s) = [1 0] x1 + [0] [0 0] [0] p(#true) = [2] [1] p(::) = [1 1] x2 + [0] [0 1] [1] p(APPEND) = [0] [0] p(APPEND#1) = [0] [0] p(INSERT) = [0] [0] p(INSERT#1) = [0] [0] p(INSERT#2) = [0] [0] p(INSERT#3) = [0] [0] p(INSERT#4) = [0] [0] p(QUICKSORT) = [0] [0] p(QUICKSORT#1) = [0] [0] p(QUICKSORT#2) = [0] [0] p(SORTALL) = [0] [0] p(SORTALL#1) = [0] [0] p(SORTALL#2) = [0] [0] p(SPLIT) = [0] [0] p(SPLIT#1) = [0] [0] p(SPLITANDSORT) = [0] [0] p(SPLITQS) = [0] [0] p(SPLITQS#1) = [0] [0] p(SPLITQS#2) = [2] [0] p(SPLITQS#3) = [2 1] x1 + [0 1] x3 + [0] [2 2] [0 0] [0] p(append) = [0 2] x2 + [0] [0 1] [0] p(append#1) = [0] [0] p(c) = [1] [2] p(c1) = [0] [0] p(c10) = [0] [2] p(c11) = [2] [1] p(c12) = [1] [0] p(c13) = [2] [0] p(c14) = [0] [1] p(c15) = [2] [2] p(c16) = [2] [0] p(c17) = [2] [0] p(c18) = [0 1] x1 + [2] [0 0] [0] p(c19) = [0] [2] p(c2) = [2] [2] p(c20) = [1] [0] p(c21) = [0] [0] p(c22) = [0] [2] p(c23) = [0] [1] p(c24) = [1 0] x1 + [0] [0 0] [0] p(c25) = [1] [0] p(c26) = [1] [1] p(c27) = [0] [0] p(c28) = [0] [0] p(c29) = [0] [0] p(c3) = [0] [2] p(c30) = [0] [0] p(c31) = [2] [0] p(c32) = [0] [0] p(c33) = [1] [0] p(c34) = [1] [0] p(c35) = [1] [0] p(c36) = [0] [0] p(c37) = [0] [0] p(c38) = [0] [0] p(c39) = [0] [2] p(c4) = [0] [0] p(c40) = [1 2] x2 + [0] [0 1] [0] p(c41) = [1 1] x1 + [0] [0 1] [0] p(c42) = [0 1] x1 + [0] [0 0] [0] p(c43) = [0 1] x1 + [0 2] x2 + [1] [0 0] [0 0] [1] p(c44) = [0 2] x1 + [0] [0 0] [0] p(c45) = [0] [0] p(c46) = [0] [2] p(c47) = [1] [2] p(c48) = [1] [2] p(c49) = [0 0] x1 + [0] [0 1] [0] p(c5) = [0] [0] p(c50) = [0] [0] p(c51) = [0] [0] p(c52) = [0 0] x1 + [0] [0 1] [0] p(c53) = [0] [2] p(c54) = [2] [2] p(c55) = [1 0] x1 + [0] [0 0] [0] p(c56) = [0] [0] p(c57) = [0 1] x1 + [0 1] x2 + [0] [0 1] [0 0] [1] p(c58) = [0 0] x2 + [1] [0 1] [2] p(c59) = [0] [0] p(c6) = [1] [0] p(c60) = [0 0] x1 + [2] [0 1] [2] p(c61) = [0] [0] p(c62) = [0] [2] p(c63) = [0 0] x1 + [2] [0 1] [2] p(c64) = [2] [0] p(c65) = [1 1] x1 + [1 0] x2 + [2] [0 0] [0 0] [2] p(c66) = [0] [2] p(c67) = [2] [0] p(c68) = [1 0] x1 + [0] [0 0] [0] p(c69) = [0 1] x2 + [0] [0 0] [1] p(c7) = [1] [0] p(c70) = [0] [1] p(c71) = [0 0] x2 + [1] [0 1] [0] p(c72) = [1] [2] p(c73) = [1] [0] p(c8) = [1] [0] p(c9) = [1] [0] p(insert) = [1 1] x2 + [0] [0 1] [1] p(insert#1) = [1 1] x2 + [0] [0 1] [1] p(insert#2) = [1 1] x1 + [0] [0 1] [1] p(insert#3) = [1 2] x3 + [1] [0 1] [2] p(insert#4) = [1 2] x3 + [1] [0 1] [2] p(nil) = [0] [0] p(quicksort) = [0] [0] p(quicksort#1) = [0] [2] p(quicksort#2) = [0] [2] p(sortAll) = [0 0] x1 + [0] [0 2] [1] p(sortAll#1) = [0] [1] p(sortAll#2) = [1 0] x2 + [0] [0 1] [0] p(split) = [2 0] x1 + [0] [0 2] [0] p(split#1) = [2 0] x1 + [0] [0 2] [0] p(splitAndSort) = [2] [1] p(splitqs) = [0 0] x2 + [0] [1 1] [0] p(splitqs#1) = [0] [1] p(splitqs#2) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [2] [0 1] [0 1] [2 0] [0] p(splitqs#3) = [0 0] x2 + [2 2] x3 + [0] [2 1] [2 1] [1] p(tuple#2) = [0] [0] p(#AND#) = [2] [1] p(#CKGT#) = [2] [0] p(#COMPARE#) = [2 1] x1 + [0] [1 0] [2] p(#EQ'#) = [0] [1] p(#EQUAL#) = [2] [0] p(#GREATER#) = [0 0] x1 + [2] [0 1] [2] p(#and#) = [0 0] x1 + [0 2] x2 + [2] [1 2] [0 2] [1] p(#ckgt#) = [0] [1] p(#compare#) = [1] [1] p(#eq#) = [1 2] x1 + [0 0] x2 + [1] [1 1] [2 0] [0] p(#equal#) = [2] [2] p(#greater#) = [1] [1] p(APPEND#) = [0 0] x2 + [0] [0 2] [0] p(APPEND#1#) = [0 2] x1 + [2] [0 0] [2] p(INSERT#) = [0 0] x1 + [0 1] x2 + [0] [1 0] [0 2] [2] p(INSERT#1#) = [0 0] x1 + [0 1] x2 + [0] [1 1] [0 1] [3] p(INSERT#2#) = [0 1] x1 + [0 0] x2 + [0 0] x4 + [0] [0 0] [0 2] [2 0] [1] p(INSERT#3#) = [0 0] x2 + [0 1] x3 + [0 0] x5 + [1] [2 0] [0 2] [0 2] [2] p(INSERT#4#) = [0 0] x2 + [0 1] x3 + [0 0] x4 + [0 0] x5 + [0 0] x6 + [0] [1 0] [2 0] [2 2] [0 2] [0 2] [3] p(QUICKSORT#) = [1] [0] p(QUICKSORT#1#) = [1] [0] p(QUICKSORT#2#) = [0] [2] p(SORTALL#) = [2] [0] p(SORTALL#1#) = [0 0] x1 + [0] [0 2] [0] p(SORTALL#2#) = [0] [1] p(SPLIT#) = [2 0] x1 + [0] [0 1] [1] p(SPLIT#1#) = [2 0] x1 + [0] [3 1] [1] p(SPLITANDSORT#) = [2 3] x1 + [2] [2 2] [2] p(SPLITQS#) = [0 2] x2 + [1] [2 1] [0] p(SPLITQS#1#) = [1] [2] p(SPLITQS#2#) = [0 0] x2 + [1] [1 2] [2] p(SPLITQS#3#) = [2 0] x2 + [2 0] x4 + [0] [0 0] [0 0] [0] p(append#) = [0 1] x2 + [1] [2 2] [1] p(append#1#) = [0 2] x1 + [0 0] x2 + [0] [2 1] [0 2] [1] p(insert#) = [0] [2] p(insert#1#) = [0 0] x1 + [1 0] x3 + [0] [0 2] [2 0] [0] p(insert#2#) = [0 1] x2 + [1] [2 0] [1] p(insert#3#) = [0 0] x1 + [1 0] x2 + [1 1] x4 + [0] [0 2] [0 0] [0 0] [0] p(insert#4#) = [1 2] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [0] [0 2] [2 2] [0 2] [0 1] [0] p(quicksort#) = [0] [2] p(quicksort#1#) = [0] [0] p(quicksort#2#) = [0] [2] p(sortAll#) = [0 0] x1 + [0] [0 2] [0] p(sortAll#1#) = [0] [2] p(sortAll#2#) = [0 0] x1 + [2] [0 1] [1] p(split#) = [0 2] x1 + [0] [0 1] [2] p(split#1#) = [2] [2] p(splitAndSort#) = [0] [0] p(splitqs#) = [0 0] x1 + [0 0] x2 + [0] [2 0] [0 2] [0] p(splitqs#1#) = [0 2] x1 + [0] [0 1] [2] p(splitqs#2#) = [0 0] x1 + [0 0] x2 + [2 2] x3 + [2] [2 1] [2 0] [0 0] [1] p(splitqs#3#) = [0] [0] p(c_1) = [0] [0] p(c_2) = [0 1] x1 + [0 0] x3 + [0] [0 2] [0 1] [0] p(c_3) = [0 0] x1 + [1] [0 2] [0] p(c_4) = [2 0] x1 + [0] [0 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] [3] p(c_8) = [1 0] x1 + [0] [0 0] [1] p(c_9) = [0] [0] p(c_10) = [1 0] x1 + [0] [0 0] [0] p(c_11) = [1 0] x1 + [0] [0 0] [1] p(c_12) = [0] [0] p(c_13) = [2] [0] p(c_14) = [2] [0] p(c_15) = [0] [1] p(c_16) = [2 0] x1 + [1] [1 1] [1] p(c_17) = [0] [0] p(c_18) = [0] [0] p(c_19) = [0 0] x1 + [0] [0 2] [0] p(c_20) = [0] [0] p(c_21) = [0 0] x1 + [0] [0 2] [2] p(c_22) = [0] [1] p(c_23) = [1 0] x1 + [0] [0 0] [0] p(c_24) = [1 0] x1 + [1 0] x2 + [0] [2 0] [0 0] [2] p(c_25) = [1] [1] p(c_26) = [1 2] x1 + [0] [0 2] [0] p(c_27) = [0] [1] p(c_28) = [0] [1] p(c_29) = [0] [0] p(c_30) = [2 0] x1 + [1 0] x3 + [2] [0 1] [0 2] [0] p(c_31) = [0] [2] p(c_32) = [0] [1] p(c_33) = [1] [0] p(c_34) = [2] [1] p(c_35) = [0] [2] p(c_36) = [2] [0] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [0] [1] p(c_40) = [0] [0] p(c_41) = [0] [1] p(c_42) = [1] [2] p(c_43) = [1] [2] p(c_44) = [2] [1] p(c_45) = [1] [1] p(c_46) = [2] [2] p(c_47) = [2] [2] p(c_48) = [0] [0] p(c_49) = [2] [0] p(c_50) = [0] [0] p(c_51) = [2] [0] p(c_52) = [0] [2] p(c_53) = [0] [0] p(c_54) = [1] [2] p(c_55) = [1] [2] p(c_56) = [0] [0] p(c_57) = [1] [0] p(c_58) = [0] [1] p(c_59) = [0] [0] p(c_60) = [0] [1] p(c_61) = [1 2] x1 + [0] [0 2] [2] p(c_62) = [1] [0] p(c_63) = [0] [0] p(c_64) = [0 0] x1 + [2 0] x3 + [1] [0 1] [0 1] [0] p(c_65) = [2 2] x2 + [0] [1 0] [0] p(c_66) = [0] [1] p(c_67) = [0] [0] p(c_68) = [0] [2] p(c_69) = [1] [0] p(c_70) = [0] [0] p(c_71) = [0] [2] p(c_72) = [0] [0] p(c_73) = [0 0] x2 + [1] [1 0] [1] p(c_74) = [2 2] x1 + [0 0] x3 + [2] [0 0] [0 1] [0] p(c_75) = [0] [0] p(c_76) = [0] [0] p(c_77) = [0] [1] p(c_78) = [1] [1] p(c_79) = [0] [0] p(c_80) = [2] [1] p(c_81) = [0] [1] p(c_82) = [0] [2] p(c_83) = [0] [1] p(c_84) = [0] [0] p(c_85) = [1] [0] p(c_86) = [1] [0] p(c_87) = [2 2] x1 + [0] [1 0] [0] p(c_88) = [0] [1] p(c_89) = [0] [0] p(c_90) = [0] [0] p(c_91) = [0 0] x1 + [0] [0 2] [0] p(c_92) = [0] [0] p(c_93) = [2 1] x1 + [2] [0 0] [2] p(c_94) = [0] [0] p(c_95) = [0] [0] p(c_96) = [1] [0] p(c_97) = [0] [0] p(c_98) = [0] [0] p(c_99) = [1] [2] p(c_100) = [1] [0] p(c_101) = [2] [1] p(c_102) = [2] [0] p(c_103) = [1 0] x1 + [0] [1 0] [2] p(c_104) = [2] [1] p(c_105) = [0] [1] p(c_106) = [0 2] x2 + [1 0] x3 + [0] [0 1] [2 0] [0] p(c_107) = [1] [0] p(c_108) = [2] [2] p(c_109) = [0] [1] p(c_110) = [2] [1] p(c_111) = [0] [2] p(c_112) = [0] [0] p(c_113) = [2] [2] p(c_114) = [2 2] x1 + [1 2] x2 + [2] [0 0] [0 0] [1] p(c_115) = [2] [0] p(c_116) = [2] [1] p(c_117) = [1 0] x1 + [1] [0 0] [0] p(c_118) = [0 0] x1 + [2] [0 2] [2] p(c_119) = [0] [2] p(c_120) = [0 0] x1 + [2] [2 0] [1] p(c_121) = [0] [1] p(c_122) = [0] [0] p(c_123) = [0] [0] p(c_124) = [0 1] x1 + [1 0] x2 + [0] [0 1] [0 0] [2] p(c_125) = [0 2] x1 + [2] [2 0] [0] p(c_126) = [1] [0] p(c_127) = [0] [2] p(c_128) = [0 0] x2 + [0] [0 1] [0] p(c_129) = [0] [2] p(c_130) = [0] [1] p(c_131) = [0] [0] p(c_132) = [0 0] x1 + [0] [1 0] [1] p(c_133) = [1] [0] p(c_134) = [0] [0] p(c_135) = [0 0] x1 + [0] [1 1] [1] p(c_136) = [0] [1] p(c_137) = [0] [0] p(c_138) = [0] [0] p(c_139) = [0 2] x1 + [1] [0 0] [0] p(c_140) = [0 0] x2 + [0] [1 1] [0] p(c_141) = [1] [0] p(c_142) = [1] [0] p(c_143) = [0] [2] p(c_144) = [1] [1] Following rules are strictly oriented: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) = [0 0] z2 + [0 1] z3 + [0 0] z5 + [1] [2 0] [0 2] [0 2] [2] > [0 1] z3 + [0] [0 0] [0] = c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [0 0] z0 + [0 1] z1 + [0] [1 0] [0 2] [2] >= [0 1] z1 + [0] [0 0] [2] = c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) = [0 1] z2 + [0] [0 1] [3] >= [0 1] z2 + [0] [0 0] [3] = c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) = [0 1] z1 + [0 0] z2 + [0 0] z4 + [1] [0 0] [0 2] [2 0] [1] >= [0 1] z1 + [1] [0 0] [1] = c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#4#(#false(),z0,z1,z2,z3,z4) = [0 0] z0 + [0 1] z1 + [0 0] z2 + [0 0] z3 + [0 0] z4 + [0] [1 0] [2 0] [2 2] [0 2] [0 2] [3] >= [0 1] z1 + [0] [0 0] [1] = c_11(INSERT#(z4,z1)) SPLIT#(z0) = [2 0] z0 + [0] [0 1] [1] >= [2 0] z0 + [0] [0 0] [0] = c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) = [2 2] z1 + [0] [3 4] [2] >= [2 2] z1 + [0] [0 4] [2] = c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) = [2 3] z0 + [2] [2 2] [2] >= [2 2] z0 + [2] [0 2] [2] = c_26(SPLIT#(z0)) insert(z0,z1) = [1 1] z1 + [0] [0 1] [1] >= [1 1] z1 + [0] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 1] z2 + [0] [0 1] [1] >= [1 1] z2 + [0] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [0] [1] >= [0] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [1 2] z3 + [1] [0 1] [2] >= [1 2] z3 + [1] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 1] z1 + [0] [0 1] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [2 0] z0 + [0] [0 2] [0] >= [2 0] z0 + [0] [0 2] [0] = split#1(z0) split#1(::(z0,z1)) = [2 2] z1 + [0] [0 2] [2] >= [2 2] z1 + [0] [0 2] [1] = insert(z0,split(z1)) split#1(nil()) = [0] [0] >= [0] [0] = nil() **** Step 8.b:4.a:4.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak DPs: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () **** Step 8.b:4.a:4.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) - Weak DPs: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) Consider the set of all dependency pairs 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 5: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 6: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 7: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 8: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) 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. ***** Step 8.b:4.a:4.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) - Weak DPs: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_23) = {1}, uargs(c_24) = {1,2}, uargs(c_26) = {1} Following symbols are considered usable: {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER# ,#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#,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(#AND) = [0] [0] p(#CKGT) = [0] [0] p(#COMPARE) = [0] [0] p(#EQ) = [0] [0] p(#EQ') = [0] [0] p(#EQUAL) = [0] [0] p(#GREATER) = [0] [0] p(#GT) = [0] [0] p(#LT) = [0] [0] p(#and) = [0] [0] p(#ckgt) = [0] [0] p(#compare) = [0] [0] p(#eq) = [0] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0] [0] p(#neg) = [0 0] x1 + [0] [0 1] [0] p(#pos) = [1 0] x1 + [0] [0 1] [1] p(#s) = [0 0] x1 + [0] [0 1] [1] p(#true) = [0] [0] p(::) = [1 1] x2 + [0] [0 1] [1] p(APPEND) = [0] [0] p(APPEND#1) = [0] [0] p(INSERT) = [0] [0] p(INSERT#1) = [0] [0] p(INSERT#2) = [0] [0] p(INSERT#3) = [0] [0] p(INSERT#4) = [0 0] x1 + [0 0] x3 + [2 2] x6 + [0] [0 1] [0 1] [0 1] [0] p(QUICKSORT) = [2] [2] p(QUICKSORT#1) = [2 2] x1 + [0] [0 1] [0] p(QUICKSORT#2) = [0 1] x1 + [0 1] x2 + [1] [0 0] [2 0] [1] p(SORTALL) = [0] [0] p(SORTALL#1) = [0] [0] p(SORTALL#2) = [0] [0] p(SPLIT) = [0 0] x1 + [2] [0 1] [0] p(SPLIT#1) = [1] [0] p(SPLITANDSORT) = [0 1] x1 + [0] [0 2] [0] p(SPLITQS) = [0] [1] p(SPLITQS#1) = [1] [0] p(SPLITQS#2) = [1 1] x2 + [1] [1 0] [0] p(SPLITQS#3) = [0 0] x1 + [0 0] x2 + [1] [0 1] [0 2] [0] p(append) = [0 2] x2 + [0] [0 0] [0] p(append#1) = [0] [0] p(c) = [0] [0] p(c1) = [0] [0] p(c10) = [0] [0] p(c11) = [1] [0] p(c12) = [0] [0] p(c13) = [0] [0] p(c14) = [0] [0] p(c15) = [1] [1] p(c16) = [0] [0] p(c17) = [0] [0] p(c18) = [1] [2] p(c19) = [0] [0] p(c2) = [0] [0] p(c20) = [1] [0] p(c21) = [2] [0] p(c22) = [0] [0] p(c23) = [0] [0] p(c24) = [1] [0] p(c25) = [1] [0] p(c26) = [0] [0] p(c27) = [2] [0] p(c28) = [0 1] x1 + [2] [0 0] [0] p(c29) = [0] [1] p(c3) = [1] [0] p(c30) = [2] [1] p(c31) = [1 2] x2 + [0] [0 0] [0] p(c32) = [1 1] x1 + [0] [0 1] [0] p(c33) = [0] [0] p(c34) = [1] [0] p(c35) = [0] [1] p(c36) = [0] [1] p(c37) = [0] [0] p(c38) = [2] [1] p(c39) = [0] [2] p(c4) = [1] [0] p(c40) = [0] [1] p(c41) = [0 0] x2 + [0] [0 1] [0] p(c42) = [0 2] x1 + [0] [0 0] [0] p(c43) = [0 1] x1 + [2] [0 0] [0] p(c44) = [2] [2] p(c45) = [0] [0] p(c46) = [0] [2] p(c47) = [2] [0] p(c48) = [2] [0] p(c49) = [2] [2] p(c5) = [2] [1] p(c50) = [0] [2] p(c51) = [1 0] x1 + [1] [0 0] [1] p(c52) = [0] [0] p(c53) = [0] [0] p(c54) = [0] [0] p(c55) = [0 2] x1 + [0] [0 0] [0] p(c56) = [0] [0] p(c57) = [1 2] x1 + [2] [0 0] [0] p(c58) = [0 0] x1 + [0] [0 1] [1] p(c59) = [0] [0] p(c6) = [2] [0] p(c60) = [1] [0] p(c61) = [1] [2] p(c62) = [2] [1] p(c63) = [0] [1] p(c64) = [2] [1] p(c65) = [1 0] x2 + [2] [0 1] [1] p(c66) = [2] [0] p(c67) = [2] [0] p(c68) = [1] [0] p(c69) = [0] [1] p(c7) = [0] [2] p(c70) = [2] [0] p(c71) = [1 0] x2 + [0] [0 0] [2] p(c72) = [1] [0] p(c73) = [1] [2] p(c8) = [1] [0] p(c9) = [1] [0] p(insert) = [1 1] x2 + [0] [0 1] [1] p(insert#1) = [1 1] x2 + [0] [0 1] [1] p(insert#2) = [1 1] x1 + [0] [0 1] [1] p(insert#3) = [1 2] x3 + [1] [0 1] [2] p(insert#4) = [1 2] x3 + [1] [0 1] [2] p(nil) = [0] [1] p(quicksort) = [1 0] x1 + [0] [0 0] [0] p(quicksort#1) = [0] [0] p(quicksort#2) = [0] [0] p(sortAll) = [1] [2] p(sortAll#1) = [0 0] x1 + [2] [0 1] [2] p(sortAll#2) = [0] [0] p(split) = [1 0] x1 + [0] [0 1] [0] p(split#1) = [1 0] x1 + [0] [0 1] [0] p(splitAndSort) = [1] [2] p(splitqs) = [0 0] x2 + [1] [1 0] [0] p(splitqs#1) = [2] [2] p(splitqs#2) = [0] [0] p(splitqs#3) = [0 1] x3 + [1] [2 0] [0] p(tuple#2) = [0 0] x1 + [0] [0 1] [0] p(#AND#) = [0 0] x2 + [0] [0 2] [2] p(#CKGT#) = [0 0] x1 + [2] [1 2] [1] p(#COMPARE#) = [2 0] x1 + [0] [0 1] [1] p(#EQ'#) = [0] [2] p(#EQUAL#) = [0 0] x2 + [0] [2 1] [0] p(#GREATER#) = [0 0] x2 + [0] [1 2] [0] p(#and#) = [1 1] x1 + [0] [2 1] [0] p(#ckgt#) = [0] [0] p(#compare#) = [0 1] x1 + [0 0] x2 + [0] [2 2] [0 1] [0] p(#eq#) = [0 2] x2 + [0] [1 0] [0] p(#equal#) = [0 0] x1 + [0] [2 0] [1] p(#greater#) = [0] [1] p(APPEND#) = [1] [0] p(APPEND#1#) = [2 0] x1 + [0] [2 0] [0] p(INSERT#) = [0 0] x1 + [0 2] x2 + [0] [0 1] [0 1] [2] p(INSERT#1#) = [0 2] x2 + [0] [0 0] [0] p(INSERT#2#) = [0 2] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0] [3 3] [1 0] [0 1] [2 2] [0] p(INSERT#3#) = [0 2] x3 + [0] [0 2] [0] p(INSERT#4#) = [0 2] x3 + [0 0] x6 + [0] [2 0] [0 2] [0] p(QUICKSORT#) = [0 0] x1 + [0] [0 1] [2] p(QUICKSORT#1#) = [0] [0] p(QUICKSORT#2#) = [0 0] x1 + [0 0] x2 + [0] [1 1] [0 2] [2] p(SORTALL#) = [2 2] x1 + [0] [1 2] [1] p(SORTALL#1#) = [2] [0] p(SORTALL#2#) = [0] [0] p(SPLIT#) = [2 0] x1 + [0] [2 0] [1] p(SPLIT#1#) = [2 0] x1 + [0] [3 3] [0] p(SPLITANDSORT#) = [2 1] x1 + [3] [1 0] [2] p(SPLITQS#) = [2] [2] p(SPLITQS#1#) = [2] [1] p(SPLITQS#2#) = [0] [1] p(SPLITQS#3#) = [1] [0] p(append#) = [2 2] x2 + [1] [2 1] [2] p(append#1#) = [1] [0] p(insert#) = [0 0] x1 + [0] [0 2] [0] p(insert#1#) = [0 0] x1 + [0 0] x3 + [0] [0 1] [0 2] [0] p(insert#2#) = [1 0] x4 + [0] [1 0] [0] p(insert#3#) = [2] [0] p(insert#4#) = [1 0] x1 + [0 0] x3 + [2 0] x4 + [0] [1 2] [0 1] [2 0] [0] p(quicksort#) = [0 0] x1 + [1] [2 0] [0] p(quicksort#1#) = [2] [2] p(quicksort#2#) = [0 0] x2 + [0] [1 0] [1] p(sortAll#) = [2 0] x1 + [1] [2 2] [0] p(sortAll#1#) = [0] [1] p(sortAll#2#) = [2 2] x1 + [0] [0 2] [2] p(split#) = [2 0] x1 + [0] [0 0] [0] p(split#1#) = [2] [0] p(splitAndSort#) = [0] [1] p(splitqs#) = [1] [0] p(splitqs#1#) = [0 0] x2 + [0] [0 2] [1] p(splitqs#2#) = [0 2] x2 + [2] [1 0] [0] p(splitqs#3#) = [1] [2] p(c_1) = [0 0] x1 + [0] [0 2] [2] p(c_2) = [1] [2] p(c_3) = [2] [2] p(c_4) = [1] [1] p(c_5) = [1] [2] 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] [1 2] [1] p(c_9) = [0] [0] p(c_10) = [1 0] x1 + [0] [1 0] [0] p(c_11) = [1 0] x1 + [0] [0 0] [0] p(c_12) = [0] [0] p(c_13) = [0] [0] p(c_14) = [1] [0] p(c_15) = [0] [2] p(c_16) = [0] [0] p(c_17) = [0] [0] p(c_18) = [2] [0] p(c_19) = [1] [1] p(c_20) = [0] [0] p(c_21) = [0] [0] p(c_22) = [0] [2] p(c_23) = [1 0] x1 + [0] [0 0] [0] p(c_24) = [1 0] x1 + [1 0] x2 + [0] [1 0] [0 1] [2] p(c_25) = [0] [0] p(c_26) = [1 0] x1 + [2] [0 0] [0] p(c_27) = [0 0] x1 + [0] [0 1] [2] p(c_28) = [0] [0] p(c_29) = [2] [2] p(c_30) = [0 1] x2 + [2] [0 0] [0] p(c_31) = [0] [1] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [2] [1] p(c_35) = [0] [0] p(c_36) = [0] [0] p(c_37) = [2] [1] p(c_38) = [1] [0] p(c_39) = [0] [0] p(c_40) = [0] [0] p(c_41) = [1] [1] p(c_42) = [2] [0] p(c_43) = [2] [1] p(c_44) = [0] [0] p(c_45) = [0] [0] p(c_46) = [0] [1] p(c_47) = [1] [2] p(c_48) = [2] [0] p(c_49) = [0] [0] p(c_50) = [0] [0] p(c_51) = [0] [0] p(c_52) = [0] [1] p(c_53) = [1] [1] p(c_54) = [0] [0] p(c_55) = [0] [0] p(c_56) = [0] [1] p(c_57) = [1] [0] p(c_58) = [1] [0] p(c_59) = [1] [0] p(c_60) = [0] [0] p(c_61) = [2] [0] p(c_62) = [0] [1] p(c_63) = [0] [0] p(c_64) = [0 2] x1 + [0] [0 0] [0] p(c_65) = [0 1] x3 + [0 0] x4 + [1] [0 0] [2 2] [1] p(c_66) = [1] [1] p(c_67) = [2] [1] p(c_68) = [0] [0] p(c_69) = [0] [0] p(c_70) = [1] [0] p(c_71) = [1] [0] p(c_72) = [1] [0] p(c_73) = [1 0] x1 + [0] [1 1] [0] p(c_74) = [0 0] x1 + [0 0] x2 + [2 1] x4 + [0] [0 2] [2 0] [2 2] [0] p(c_75) = [1] [2] p(c_76) = [0] [2] p(c_77) = [0] [0] p(c_78) = [0] [1] p(c_79) = [1] [0] p(c_80) = [1] [0] p(c_81) = [0] [2] p(c_82) = [0] [1] p(c_83) = [2] [2] p(c_84) = [2] [0] p(c_85) = [1] [0] p(c_86) = [0] [0] p(c_87) = [0 2] x1 + [0] [0 0] [0] p(c_88) = [0] [1] p(c_89) = [2] [0] p(c_90) = [1] [0] p(c_91) = [1] [2] p(c_92) = [0] [1] p(c_93) = [0] [0] p(c_94) = [2] [0] p(c_95) = [0] [0] p(c_96) = [0] [0] p(c_97) = [0] [0] p(c_98) = [1] [0] p(c_99) = [0] [0] p(c_100) = [0] [0] p(c_101) = [0] [0] p(c_102) = [0] [1] p(c_103) = [0] [0] p(c_104) = [0] [2] p(c_105) = [0] [2] p(c_106) = [2 0] x1 + [0 0] x2 + [2] [1 0] [0 1] [0] p(c_107) = [0] [2] p(c_108) = [0] [2] p(c_109) = [0] [0] p(c_110) = [0] [2] p(c_111) = [0] [0] p(c_112) = [2] [0] p(c_113) = [0] [0] p(c_114) = [2 0] x1 + [0 0] x2 + [2] [1 1] [0 1] [0] p(c_115) = [0] [2] p(c_116) = [2 0] x1 + [1 1] x2 + [1] [0 0] [0 0] [0] p(c_117) = [0] [0] p(c_118) = [0] [0] p(c_119) = [1] [0] p(c_120) = [0] [0] p(c_121) = [0] [1] p(c_122) = [1] [0] p(c_123) = [1] [0] p(c_124) = [0 1] x2 + [0] [2 1] [0] p(c_125) = [1] [2] p(c_126) = [2] [0] p(c_127) = [0] [0] p(c_128) = [0] [0] p(c_129) = [0] [2] p(c_130) = [0 0] x1 + [2] [0 2] [2] p(c_131) = [0] [2] p(c_132) = [1 1] x1 + [1] [2 0] [2] p(c_133) = [0] [1] p(c_134) = [0 0] x2 + [0] [0 1] [0] p(c_135) = [0] [0] p(c_136) = [0 1] x1 + [0] [2 0] [2] p(c_137) = [0] [2] p(c_138) = [1 0] x1 + [0] [1 1] [0] p(c_139) = [2] [0] p(c_140) = [0 1] x1 + [0] [1 0] [0] p(c_141) = [0] [1] p(c_142) = [0 0] x1 + [1] [1 0] [0] p(c_143) = [0] [0] p(c_144) = [0] [0] Following rules are strictly oriented: INSERT#2#(::(z0,z1),z2,z3,z4) = [0 2] z1 + [0 0] z2 + [0 0] z3 + [0 0] z4 + [2] [3 6] [1 0] [0 1] [2 2] [3] > [0 2] z1 + [0] [0 6] [1] = c_8(INSERT#3#(z0,z2,z1,z3,z4)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [0 0] z0 + [0 2] z1 + [0] [0 1] [0 1] [2] >= [0 2] z1 + [0] [0 0] [2] = c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) = [0 2] z2 + [0] [0 0] [0] >= [0 2] z2 + [0] [0 0] [0] = c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) = [0 2] z3 + [0] [0 2] [0] >= [0 2] z3 + [0] [0 2] [0] = c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) = [0 2] z1 + [0 0] z4 + [0] [2 0] [0 2] [0] >= [0 2] z1 + [0] [0 0] [0] = c_11(INSERT#(z4,z1)) SPLIT#(z0) = [2 0] z0 + [0] [2 0] [1] >= [2 0] z0 + [0] [0 0] [0] = c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) = [2 2] z1 + [0] [3 6] [3] >= [2 2] z1 + [0] [2 2] [3] = c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) = [2 1] z0 + [3] [1 0] [2] >= [2 0] z0 + [2] [0 0] [0] = c_26(SPLIT#(z0)) insert(z0,z1) = [1 1] z1 + [0] [0 1] [1] >= [1 1] z1 + [0] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 1] z2 + [0] [0 1] [1] >= [1 1] z2 + [0] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [1] [2] >= [1] [2] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [1 2] z3 + [1] [0 1] [2] >= [1 2] z3 + [1] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 1] z1 + [0] [0 1] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 0] z0 + [0] [0 1] [0] >= [1 0] z0 + [0] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [1 1] z1 + [0] [0 1] [1] >= [1 1] z1 + [0] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [0] [1] >= [0] [1] = nil() ***** Step 8.b:4.a:4.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) - Weak DPs: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ***** Step 8.b:4.a:4.b:1.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) - Weak DPs: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) Consider the set of all dependency pairs 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 5: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 6: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 7: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 8: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {2} These cover all (indirect) predecessors of dependency pairs {2,3,4,5,8} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ****** Step 8.b:4.a:4.b:1.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) - Weak DPs: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_23) = {1}, uargs(c_24) = {1,2}, uargs(c_26) = {1} Following symbols are considered usable: {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER# ,#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#,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(#AND) = [0] [0] p(#CKGT) = [0] [0] p(#COMPARE) = [0] [0] p(#EQ) = [0] [0] p(#EQ') = [0] [0] p(#EQUAL) = [0] [0] p(#GREATER) = [0] [0] p(#GT) = [0] [0] p(#LT) = [0] [0] p(#and) = [1 0] x2 + [0] [0 0] [0] p(#ckgt) = [0] [0] p(#compare) = [0] [0] p(#eq) = [2] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0] [0] p(#neg) = [1 0] x1 + [0] [0 0] [0] p(#pos) = [0] [0] p(#s) = [0 0] x1 + [0] [0 1] [0] p(#true) = [1] [0] p(::) = [1 0] x1 + [1 1] x2 + [0] [0 0] [0 1] [1] p(APPEND) = [0] [0] p(APPEND#1) = [0] [0] p(INSERT) = [0] [0] p(INSERT#1) = [0] [0] p(INSERT#2) = [2] [0] p(INSERT#3) = [2 0] x1 + [0 0] x5 + [0] [0 1] [0 1] [2] p(INSERT#4) = [0 0] x1 + [0 1] x3 + [0 0] x4 + [0 0] x6 + [0] [1 1] [2 0] [0 2] [0 1] [1] p(QUICKSORT) = [0] [1] p(QUICKSORT#1) = [2 1] x1 + [2] [0 2] [0] p(QUICKSORT#2) = [0 2] x1 + [0] [1 0] [0] p(SORTALL) = [0] [0] p(SORTALL#1) = [2 1] x1 + [0] [0 1] [0] p(SORTALL#2) = [2] [2] p(SPLIT) = [2 0] x1 + [0] [0 0] [0] p(SPLIT#1) = [0] [2] p(SPLITANDSORT) = [0] [0] p(SPLITQS) = [0] [2] p(SPLITQS#1) = [0] [0] p(SPLITQS#2) = [0 0] x1 + [1] [1 0] [1] p(SPLITQS#3) = [1 2] x1 + [0] [1 0] [0] p(append) = [2] [0] p(append#1) = [0] [0] p(c) = [0] [0] p(c1) = [1] [1] p(c10) = [0] [0] p(c11) = [0] [0] p(c12) = [1] [0] p(c13) = [0] [0] p(c14) = [1] [0] p(c15) = [0] [1] p(c16) = [0] [1] p(c17) = [2] [0] p(c18) = [0] [1] p(c19) = [0] [0] p(c2) = [0] [0] p(c20) = [0] [0] p(c21) = [0] [2] p(c22) = [0] [2] p(c23) = [0] [0] p(c24) = [0] [1] p(c25) = [0] [0] p(c26) = [0] [0] p(c27) = [0] [0] p(c28) = [0] [0] p(c29) = [0] [1] p(c3) = [0] [1] p(c30) = [0 1] x1 + [0] [0 0] [0] p(c31) = [1 1] x1 + [2] [0 0] [1] p(c32) = [0] [2] p(c33) = [1] [0] p(c34) = [1] [2] p(c35) = [0] [2] p(c36) = [0] [2] p(c37) = [0] [1] p(c38) = [0] [2] p(c39) = [1] [0] p(c4) = [0] [0] p(c40) = [2] [0] p(c41) = [1] [0] p(c42) = [2] [0] p(c43) = [0] [0] p(c44) = [2] [0] p(c45) = [1 2] x1 + [2] [0 0] [0] p(c46) = [0] [0] p(c47) = [0] [2] p(c48) = [1] [0] p(c49) = [0 1] x1 + [0] [0 0] [1] p(c5) = [1] [0] p(c50) = [1] [1] p(c51) = [0 2] x2 + [0] [0 0] [0] p(c52) = [2] [0] p(c53) = [0] [0] p(c54) = [2] [0] p(c55) = [1 0] x2 + [0] [0 0] [0] p(c56) = [0] [0] p(c57) = [0 1] x1 + [1] [0 0] [2] p(c58) = [1 2] x2 + [1] [0 0] [1] p(c59) = [1 0] x1 + [0] [0 0] [1] p(c6) = [2] [0] p(c60) = [0] [0] p(c61) = [2] [0] p(c62) = [0] [0] p(c63) = [0] [1] p(c64) = [0] [0] p(c65) = [0] [0] p(c66) = [0] [2] p(c67) = [0] [0] p(c68) = [0] [1] p(c69) = [1 0] x1 + [2] [0 0] [0] p(c7) = [2] [0] p(c70) = [0] [0] p(c71) = [0] [0] p(c72) = [0] [1] p(c73) = [1] [2] p(c8) = [1] [0] p(c9) = [0] [0] p(insert) = [1 2] x2 + [1] [0 1] [1] p(insert#1) = [1 2] x2 + [1] [0 1] [1] p(insert#2) = [1 2] x1 + [1] [0 1] [1] p(insert#3) = [1 3] x3 + [3] [0 1] [2] p(insert#4) = [1 3] x3 + [3] [0 1] [2] p(nil) = [0] [0] p(quicksort) = [0 0] x1 + [1] [1 0] [0] p(quicksort#1) = [1 0] x1 + [1] [0 1] [1] p(quicksort#2) = [1 2] x1 + [0] [0 0] [0] p(sortAll) = [0] [0] p(sortAll#1) = [0 0] x1 + [0] [0 2] [0] p(sortAll#2) = [2 0] x2 + [1] [1 0] [2] p(split) = [2 1] x1 + [0] [0 1] [0] p(split#1) = [2 1] x1 + [0] [0 1] [0] p(splitAndSort) = [1] [1] p(splitqs) = [0] [0] p(splitqs#1) = [0] [0] p(splitqs#2) = [0 0] x3 + [0] [0 1] [0] p(splitqs#3) = [2] [0] p(tuple#2) = [1] [0] p(#AND#) = [0 0] x2 + [2] [1 2] [0] p(#CKGT#) = [1] [2] p(#COMPARE#) = [0 0] x2 + [0] [2 0] [0] p(#EQ'#) = [0 0] x1 + [0 0] x2 + [1] [1 2] [2 2] [0] p(#EQUAL#) = [0 0] x2 + [0] [2 0] [0] p(#GREATER#) = [2 0] x2 + [0] [0 0] [1] p(#and#) = [2 2] x1 + [0 2] x2 + [0] [0 0] [0 0] [0] p(#ckgt#) = [0 0] x1 + [0] [0 2] [1] p(#compare#) = [0] [0] p(#eq#) = [1] [0] p(#equal#) = [1 0] x1 + [0] [0 1] [1] p(#greater#) = [0 0] x1 + [0] [2 0] [2] p(APPEND#) = [0 0] x2 + [0] [0 2] [0] p(APPEND#1#) = [0 0] x1 + [0] [1 0] [2] p(INSERT#) = [2 0] x1 + [0 1] x2 + [1] [2 2] [1 3] [2] p(INSERT#1#) = [0 1] x2 + [2 0] x3 + [1] [1 0] [0 1] [1] p(INSERT#2#) = [0 1] x1 + [2 0] x4 + [0] [2 1] [0 2] [2] p(INSERT#3#) = [0 0] x1 + [0 1] x3 + [2 0] x5 + [1] [2 0] [2 0] [0 0] [3] p(INSERT#4#) = [0 1] x3 + [2 0] x6 + [1] [1 1] [0 2] [0] p(QUICKSORT#) = [0] [0] p(QUICKSORT#1#) = [0] [1] p(QUICKSORT#2#) = [0] [0] p(SORTALL#) = [0 0] x1 + [0] [1 2] [2] p(SORTALL#1#) = [0] [1] p(SORTALL#2#) = [0 1] x1 + [1] [2 0] [0] p(SPLIT#) = [2 1] x1 + [0] [0 1] [0] p(SPLIT#1#) = [2 1] x1 + [0] [1 0] [2] p(SPLITANDSORT#) = [2 3] x1 + [1] [0 1] [1] p(SPLITQS#) = [0 0] x2 + [0] [0 2] [1] p(SPLITQS#1#) = [0 0] x2 + [0] [1 1] [1] p(SPLITQS#2#) = [0 0] x2 + [0] [2 0] [0] p(SPLITQS#3#) = [1 0] x1 + [0 0] x4 + [2] [0 0] [2 0] [0] p(append#) = [0 0] x2 + [0] [0 2] [2] p(append#1#) = [2] [2] p(insert#) = [1 2] x1 + [0] [0 0] [0] p(insert#1#) = [1 0] x3 + [2] [2 1] [2] p(insert#2#) = [0 1] x1 + [0 2] x3 + [2] [0 1] [2 0] [1] p(insert#3#) = [0 0] x3 + [0] [0 1] [0] p(insert#4#) = [0 0] x1 + [0 0] x3 + [2 0] x5 + [0 2] x6 + [0] [0 1] [1 0] [1 0] [1 2] [1] p(quicksort#) = [0] [1] p(quicksort#1#) = [0] [0] p(quicksort#2#) = [0 0] x2 + [0] [2 0] [1] p(sortAll#) = [0 0] x1 + [0] [0 2] [2] p(sortAll#1#) = [1] [0] p(sortAll#2#) = [0 2] x2 + [0] [0 0] [1] p(split#) = [0] [0] p(split#1#) = [0] [0] p(splitAndSort#) = [2 0] x1 + [0] [0 0] [0] p(splitqs#) = [0 0] x1 + [0 0] x2 + [2] [2 1] [2 0] [2] p(splitqs#1#) = [0 2] x1 + [1] [0 0] [0] p(splitqs#2#) = [0 0] x2 + [0 1] x3 + [1] [1 0] [1 1] [0] p(splitqs#3#) = [2] [1] p(c_1) = [0 0] x1 + [2] [2 0] [2] p(c_2) = [2 0] x1 + [0] [0 0] [0] p(c_3) = [0] [0] p(c_4) = [0] [2] p(c_5) = [1] [0] p(c_6) = [1 0] x1 + [0] [0 0] [2] p(c_7) = [1 0] x1 + [0] [0 0] [1] p(c_8) = [1 0] x1 + [0] [0 1] [0] p(c_9) = [2] [1] p(c_10) = [1 0] x1 + [0] [0 0] [0] p(c_11) = [1 0] x1 + [0] [0 0] [0] p(c_12) = [0] [1] p(c_13) = [0] [2] p(c_14) = [2] [1] p(c_15) = [2] [0] p(c_16) = [0 2] x1 + [0] [0 0] [2] p(c_17) = [0] [0] p(c_18) = [0 0] x1 + [0] [0 2] [0] p(c_19) = [2] [1] p(c_20) = [0] [0] p(c_21) = [0] [0] p(c_22) = [0 0] x1 + [0] [0 2] [2] p(c_23) = [1 0] x1 + [0] [0 0] [0] p(c_24) = [1 0] x1 + [1 1] x2 + [0] [0 0] [0 0] [0] p(c_25) = [1] [1] p(c_26) = [1 2] x1 + [0] [0 0] [1] p(c_27) = [0] [0] p(c_28) = [0] [1] p(c_29) = [1] [0] p(c_30) = [0] [0] p(c_31) = [0] [2] p(c_32) = [1] [0] p(c_33) = [0] [2] p(c_34) = [1] [0] p(c_35) = [0] [2] p(c_36) = [1] [2] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [0] [2] p(c_40) = [2] [0] p(c_41) = [0] [0] p(c_42) = [0] [0] p(c_43) = [0] [1] p(c_44) = [0] [0] p(c_45) = [1] [2] p(c_46) = [0] [0] p(c_47) = [1] [0] p(c_48) = [0] [0] p(c_49) = [0 0] x1 + [0] [0 2] [1] p(c_50) = [0] [1] p(c_51) = [0 0] x1 + [1] [0 2] [0] p(c_52) = [0] [0] p(c_53) = [0] [0] p(c_54) = [2] [1] p(c_55) = [0] [0] p(c_56) = [0] [2] p(c_57) = [1] [2] p(c_58) = [0] [0] p(c_59) = [0] [2] p(c_60) = [0] [0] p(c_61) = [0] [2] p(c_62) = [1] [2] p(c_63) = [2 2] x1 + [1] [1 2] [0] p(c_64) = [1 2] x3 + [2 0] x4 + [1] [1 2] [0 1] [0] p(c_65) = [0 0] x1 + [2 0] x3 + [0] [2 0] [2 2] [0] p(c_66) = [2] [0] p(c_67) = [0] [0] p(c_68) = [1] [0] p(c_69) = [0] [0] p(c_70) = [2] [0] p(c_71) = [0] [1] p(c_72) = [2] [1] p(c_73) = [2 2] x2 + [0 0] x4 + [1] [0 1] [0 1] [2] p(c_74) = [1 1] x2 + [1 2] x4 + [2] [0 1] [1 0] [0] p(c_75) = [2] [2] p(c_76) = [0] [0] p(c_77) = [0] [1] p(c_78) = [0] [1] p(c_79) = [0] [0] p(c_80) = [0] [1] p(c_81) = [0] [2] p(c_82) = [0] [0] p(c_83) = [0] [0] p(c_84) = [0] [0] p(c_85) = [0] [0] p(c_86) = [0] [1] p(c_87) = [0] [0] p(c_88) = [0] [1] p(c_89) = [0] [0] p(c_90) = [1] [0] p(c_91) = [2 1] x1 + [1] [2 0] [2] p(c_92) = [1] [0] p(c_93) = [2] [0] p(c_94) = [1] [0] p(c_95) = [2] [0] p(c_96) = [2] [2] p(c_97) = [0] [2] p(c_98) = [0] [0] p(c_99) = [0] [1] p(c_100) = [2] [0] p(c_101) = [1] [0] p(c_102) = [1] [0] p(c_103) = [0] [0] p(c_104) = [2] [2] p(c_105) = [0 2] x1 + [2] [0 1] [0] p(c_106) = [0 2] x2 + [0] [0 0] [0] p(c_107) = [2] [0] p(c_108) = [0] [0] p(c_109) = [2] [0] p(c_110) = [0] [2] p(c_111) = [0] [2] p(c_112) = [0] [0] p(c_113) = [0] [0] p(c_114) = [0 0] x3 + [1] [0 2] [2] p(c_115) = [2] [1] p(c_116) = [2] [0] p(c_117) = [0] [2] p(c_118) = [1 1] x1 + [2] [2 0] [0] p(c_119) = [0] [0] p(c_120) = [2] [0] p(c_121) = [2] [2] p(c_122) = [0] [2] p(c_123) = [0] [2] p(c_124) = [0 1] x1 + [2] [0 0] [0] p(c_125) = [0] [0] p(c_126) = [0] [0] p(c_127) = [0 0] x1 + [1] [0 2] [0] p(c_128) = [0 0] x1 + [0] [0 1] [2] p(c_129) = [2] [2] p(c_130) = [0 0] x2 + [0 0] x3 + [1] [2 0] [0 1] [1] p(c_131) = [0] [1] p(c_132) = [0] [1] p(c_133) = [0] [0] p(c_134) = [2 0] x1 + [0 2] x2 + [1] [0 1] [0 0] [1] p(c_135) = [0] [0] p(c_136) = [0 0] x1 + [0 0] x2 + [0] [0 2] [0 1] [0] p(c_137) = [2] [2] p(c_138) = [0 0] x2 + [0] [2 2] [0] p(c_139) = [2] [2] p(c_140) = [1 2] x1 + [0] [0 2] [1] p(c_141) = [0] [0] p(c_142) = [2] [1] p(c_143) = [0] [0] p(c_144) = [0] [1] Following rules are strictly oriented: INSERT#1#(tuple#2(z0,z1),z2,z3) = [0 1] z2 + [2 0] z3 + [1] [1 0] [0 1] [1] > [0 1] z2 + [2 0] z3 + [0] [0 0] [0 0] [1] = c_7(INSERT#2#(z2,z1,z0,z3)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [2 0] z0 + [0 1] z1 + [1] [2 2] [1 3] [2] >= [2 0] z0 + [0 1] z1 + [1] [0 0] [0 0] [2] = c_6(INSERT#1#(z0,z1,z0)) INSERT#2#(::(z0,z1),z2,z3,z4) = [0 0] z0 + [0 1] z1 + [2 0] z4 + [1] [2 0] [2 3] [0 2] [3] >= [0 0] z0 + [0 1] z1 + [2 0] z4 + [1] [2 0] [2 0] [0 0] [3] = c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1] z3 + [2 0] z5 + [1] [2 0] [0 0] [5] >= [0 1] z3 + [2 0] z5 + [1] [0 0] [0 0] [0] = c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) = [0 1] z1 + [2 0] z4 + [1] [1 1] [0 2] [0] >= [0 1] z1 + [2 0] z4 + [1] [0 0] [0 0] [0] = c_11(INSERT#(z4,z1)) SPLIT#(z0) = [2 1] z0 + [0] [0 1] [0] >= [2 1] z0 + [0] [0 0] [0] = c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) = [2 0] z0 + [2 3] z1 + [1] [1 0] [1 1] [2] >= [2 0] z0 + [2 3] z1 + [1] [0 0] [0 0] [0] = c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) = [2 3] z0 + [1] [0 1] [1] >= [2 3] z0 + [0] [0 0] [1] = c_26(SPLIT#(z0)) insert(z0,z1) = [1 2] z1 + [1] [0 1] [1] >= [1 2] z1 + [1] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 2] z2 + [1] [0 1] [1] >= [1 2] z2 + [1] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1 0] z0 + [1 3] z1 + [3] [0 0] [0 1] [2] >= [1 3] z1 + [3] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [1] [1] >= [1] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [1 3] z3 + [3] [0 1] [2] >= [1 3] z3 + [3] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 3] z1 + [3] [0 1] [2] >= [1 3] z1 + [3] [0 1] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 3] z1 + [3] [0 1] [2] >= [1 1] z1 + [1] [0 1] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [2 1] z0 + [0] [0 1] [0] >= [2 1] z0 + [0] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [2 0] z0 + [2 3] z1 + [1] [0 0] [0 1] [1] >= [2 3] z1 + [1] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [0] [0] >= [0] [0] = nil() ****** Step 8.b:4.a:4.b:1.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) - Weak DPs: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ****** Step 8.b:4.a:4.b:1.b:1.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) - Weak DPs: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) Consider the set of all dependency pairs 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 5: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 6: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 7: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 8: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {1} These cover all (indirect) predecessors of dependency pairs {1,2,3,4,5,8} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ******* Step 8.b:4.a:4.b:1.b:1.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) - Weak DPs: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_23) = {1}, uargs(c_24) = {1,2}, uargs(c_26) = {1} Following symbols are considered usable: {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER# ,#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#,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(#AND) = [0] [0] p(#CKGT) = [0] [0] p(#COMPARE) = [0] [0] p(#EQ) = [0] [0] p(#EQ') = [0] [0] p(#EQUAL) = [0] [0] p(#GREATER) = [0 1] x2 + [0] [2 2] [0] p(#GT) = [2] [1] p(#LT) = [0] [0] p(#and) = [0 0] x1 + [0] [0 2] [1] p(#ckgt) = [0] [1] p(#compare) = [0] [0] p(#eq) = [0] [1] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0 0] x1 + [0] [0 1] [0] p(#neg) = [0] [0] p(#pos) = [0 0] x1 + [0] [0 1] [0] p(#s) = [0] [0] p(#true) = [0] [0] p(::) = [1 0] x1 + [1 1] x2 + [0] [0 0] [0 1] [1] p(APPEND) = [0] [0] p(APPEND#1) = [0] [0] p(INSERT) = [0] [0] p(INSERT#1) = [0] [0] p(INSERT#2) = [0] [0] p(INSERT#3) = [0] [0] p(INSERT#4) = [1 0] x4 + [0] [1 0] [0] p(QUICKSORT) = [0 0] x1 + [0] [2 0] [0] p(QUICKSORT#1) = [0 0] x1 + [0] [1 0] [1] p(QUICKSORT#2) = [1 1] x1 + [1 1] x2 + [0] [2 0] [1 2] [0] p(SORTALL) = [0 0] x1 + [0] [0 1] [0] p(SORTALL#1) = [0 0] x1 + [0] [0 1] [0] p(SORTALL#2) = [0] [0] p(SPLIT) = [0 0] x1 + [0] [0 1] [0] p(SPLIT#1) = [0] [0] p(SPLITANDSORT) = [1] [0] p(SPLITQS) = [2 0] x2 + [1] [1 2] [1] p(SPLITQS#1) = [0] [0] p(SPLITQS#2) = [1 2] x1 + [0 0] x2 + [2] [0 2] [0 1] [1] p(SPLITQS#3) = [0 0] x3 + [0] [0 1] [0] p(append) = [0 0] x1 + [1 0] x2 + [1] [0 2] [2 0] [1] p(append#1) = [2 2] x1 + [0] [2 1] [0] p(c) = [0] [1] p(c1) = [0] [0] p(c10) = [0] [0] p(c11) = [0] [0] p(c12) = [0] [0] p(c13) = [2] [0] p(c14) = [1] [2] p(c15) = [0] [2] p(c16) = [1 0] x1 + [1] [0 0] [0] p(c17) = [0] [0] p(c18) = [0] [0] p(c19) = [1] [1] p(c2) = [0] [0] p(c20) = [0] [2] p(c21) = [0] [0] p(c22) = [0] [0] p(c23) = [0] [1] p(c24) = [0] [0] p(c25) = [2] [0] p(c26) = [0] [1] p(c27) = [0] [1] p(c28) = [0] [2] p(c29) = [1] [1] p(c3) = [2] [2] p(c30) = [0 2] x1 + [0] [0 1] [0] p(c31) = [0] [2] p(c32) = [0] [2] p(c33) = [2] [0] p(c34) = [0] [0] p(c35) = [0] [0] p(c36) = [0] [0] p(c37) = [0] [1] p(c38) = [1] [0] p(c39) = [2] [0] p(c4) = [1] [0] p(c40) = [2] [0] p(c41) = [1 0] x2 + [1] [0 0] [0] p(c42) = [0 2] x1 + [0] [0 0] [0] p(c43) = [2] [1] p(c44) = [0] [0] p(c45) = [0] [0] p(c46) = [0] [0] p(c47) = [2] [0] p(c48) = [2] [0] p(c49) = [0] [0] p(c5) = [2] [0] p(c50) = [1] [0] p(c51) = [0] [0] p(c52) = [2] [0] p(c53) = [2] [0] p(c54) = [0] [1] p(c55) = [1 0] x2 + [2] [0 1] [1] p(c56) = [0] [2] p(c57) = [0 2] x2 + [0] [0 0] [2] p(c58) = [1] [0] p(c59) = [2] [1] p(c6) = [0] [0] p(c60) = [0] [0] p(c61) = [2] [1] p(c62) = [0] [1] p(c63) = [0 0] x1 + [0] [0 1] [0] p(c64) = [0 1] x1 + [2] [0 0] [2] p(c65) = [0 1] x1 + [0] [0 0] [0] p(c66) = [1] [0] p(c67) = [1] [0] p(c68) = [0] [0] p(c69) = [0] [0] p(c7) = [2] [1] p(c70) = [0] [1] p(c71) = [2] [0] p(c72) = [0] [2] p(c73) = [0] [0] p(c8) = [1] [0] p(c9) = [1] [0] p(insert) = [1 1] x2 + [0] [0 1] [1] p(insert#1) = [1 1] x2 + [0] [0 1] [1] p(insert#2) = [1 1] x1 + [0] [0 1] [1] p(insert#3) = [1 2] x3 + [1] [0 1] [2] p(insert#4) = [1 2] x3 + [1] [0 1] [2] p(nil) = [0] [0] p(quicksort) = [0] [0] p(quicksort#1) = [1] [0] p(quicksort#2) = [1 1] x2 + [0] [0 2] [0] p(sortAll) = [0 0] x1 + [1] [0 2] [2] p(sortAll#1) = [0] [2] p(sortAll#2) = [0 0] x2 + [0] [0 1] [0] p(split) = [1 3] x1 + [1] [0 1] [0] p(split#1) = [1 3] x1 + [1] [0 1] [0] p(splitAndSort) = [0] [2] p(splitqs) = [0 0] x2 + [1] [0 1] [2] p(splitqs#1) = [2 1] x1 + [0] [0 2] [2] p(splitqs#2) = [0 0] x1 + [0 0] x3 + [0] [0 2] [0 1] [0] p(splitqs#3) = [2 1] x1 + [1 0] x3 + [0 2] x4 + [2] [2 0] [2 0] [0 0] [0] p(tuple#2) = [0] [0] p(#AND#) = [1 0] x1 + [0] [0 2] [0] p(#CKGT#) = [0 0] x1 + [0] [0 1] [0] p(#COMPARE#) = [0 1] x1 + [0 0] x2 + [2] [0 0] [2 0] [0] p(#EQ'#) = [2] [0] p(#EQUAL#) = [0 0] x1 + [0 2] x2 + [1] [0 1] [1 0] [0] p(#GREATER#) = [1] [0] p(#and#) = [1 0] x1 + [0] [1 0] [0] p(#ckgt#) = [0] [1] p(#compare#) = [0] [0] p(#eq#) = [0 0] x1 + [0] [0 2] [0] p(#equal#) = [1 0] x1 + [0 0] x2 + [0] [2 0] [1 0] [0] p(#greater#) = [0 0] x1 + [0] [1 1] [0] p(APPEND#) = [2] [0] p(APPEND#1#) = [0 1] x2 + [0] [2 0] [1] p(INSERT#) = [0 1] x2 + [1] [0 1] [2] p(INSERT#1#) = [0 0] x1 + [0 1] x2 + [0 0] x3 + [0] [3 3] [0 2] [3 1] [3] p(INSERT#2#) = [0 1] x1 + [0 0] x3 + [0 0] x4 + [0] [2 3] [0 1] [1 2] [1] p(INSERT#3#) = [0 1] x3 + [0 0] x4 + [1] [2 0] [2 0] [0] p(INSERT#4#) = [0 0] x2 + [0 1] x3 + [0 0] x4 + [0 0] x5 + [0 0] x6 + [1] [3 0] [2 0] [0 2] [0 2] [1 0] [3] p(QUICKSORT#) = [0] [0] p(QUICKSORT#1#) = [0] [0] p(QUICKSORT#2#) = [0 0] x1 + [0] [0 1] [0] p(SORTALL#) = [0] [2] p(SORTALL#1#) = [2 2] x1 + [1] [0 0] [0] p(SORTALL#2#) = [0] [0] p(SPLIT#) = [1 1] x1 + [2] [1 2] [0] p(SPLIT#1#) = [1 1] x1 + [2] [3 3] [2] p(SPLITANDSORT#) = [2 1] x1 + [2] [0 0] [3] p(SPLITQS#) = [0 0] x1 + [0 0] x2 + [1] [0 1] [0 1] [1] p(SPLITQS#1#) = [0] [0] p(SPLITQS#2#) = [0 1] x1 + [0 1] x3 + [0] [1 0] [2 2] [0] p(SPLITQS#3#) = [0 0] x1 + [0 0] x2 + [0 2] x3 + [0 0] x4 + [2] [0 2] [0 1] [2 0] [1 1] [0] p(append#) = [0 0] x2 + [0] [2 0] [1] p(append#1#) = [0] [1] p(insert#) = [0 0] x1 + [0] [2 0] [0] p(insert#1#) = [0] [2] p(insert#2#) = [0 0] x1 + [0 0] x2 + [0] [2 0] [1 0] [1] p(insert#3#) = [1 2] x3 + [2] [0 1] [0] p(insert#4#) = [1 1] x1 + [2 0] x3 + [0 0] x6 + [0] [2 2] [1 0] [1 0] [1] p(quicksort#) = [0] [2] p(quicksort#1#) = [0 0] x1 + [2] [0 2] [1] p(quicksort#2#) = [2] [1] p(sortAll#) = [0 0] x1 + [1] [1 1] [2] p(sortAll#1#) = [0] [1] p(sortAll#2#) = [2] [0] p(split#) = [0] [0] p(split#1#) = [0] [0] p(splitAndSort#) = [0] [0] p(splitqs#) = [0 0] x1 + [0 0] x2 + [1] [0 1] [1 0] [0] p(splitqs#1#) = [0] [2] p(splitqs#2#) = [0 0] x3 + [2] [0 2] [2] p(splitqs#3#) = [0 0] x1 + [2] [0 2] [0] p(c_1) = [1] [0] p(c_2) = [0 0] x2 + [0] [0 1] [0] p(c_3) = [1 2] x1 + [0] [0 0] [1] p(c_4) = [0] [0] p(c_5) = [0] [0] p(c_6) = [1 0] x1 + [0] [1 0] [0] p(c_7) = [1 0] x1 + [0] [0 0] [0] p(c_8) = [1 0] x1 + [0] [1 0] [1] p(c_9) = [1] [0] p(c_10) = [1 0] x1 + [0] [0 0] [0] p(c_11) = [1 0] x1 + [0] [0 0] [2] p(c_12) = [1] [0] p(c_13) = [1] [1] p(c_14) = [0] [0] p(c_15) = [0] [0] p(c_16) = [0] [0] p(c_17) = [0 0] x1 + [0] [2 2] [0] p(c_18) = [2 2] x1 + [0] [1 0] [0] p(c_19) = [0] [1] p(c_20) = [2] [2] p(c_21) = [0 0] x1 + [0] [1 0] [1] p(c_22) = [1] [0] p(c_23) = [1 0] x1 + [0] [0 0] [0] p(c_24) = [1 0] x1 + [1 0] x2 + [0] [0 2] [0 2] [0] p(c_25) = [2] [0] p(c_26) = [1 0] x1 + [0] [0 0] [3] p(c_27) = [0 0] x1 + [2] [0 1] [2] p(c_28) = [1] [1] p(c_29) = [0] [0] p(c_30) = [0 0] x1 + [0 0] x2 + [1] [0 1] [2 0] [2] p(c_31) = [0] [0] p(c_32) = [0] [0] p(c_33) = [0] [1] p(c_34) = [0] [0] p(c_35) = [0] [0] p(c_36) = [1] [1] p(c_37) = [0] [0] p(c_38) = [0] [1] p(c_39) = [2] [0] p(c_40) = [2] [0] p(c_41) = [0] [0] p(c_42) = [0] [2] p(c_43) = [0] [1] p(c_44) = [1] [0] p(c_45) = [2 0] x1 + [0] [2 2] [1] p(c_46) = [0] [2] p(c_47) = [2] [2] p(c_48) = [2] [1] p(c_49) = [0] [1] p(c_50) = [0] [0] p(c_51) = [0 1] x1 + [2] [2 2] [0] p(c_52) = [0] [0] p(c_53) = [0] [0] p(c_54) = [1] [0] p(c_55) = [0] [0] p(c_56) = [1] [0] p(c_57) = [2 0] x1 + [0] [1 0] [0] p(c_58) = [0] [1] p(c_59) = [0] [0] p(c_60) = [0] [0] p(c_61) = [2 0] x1 + [0] [2 1] [0] p(c_62) = [2] [0] p(c_63) = [1] [0] p(c_64) = [2] [0] p(c_65) = [0 0] x2 + [2 0] x3 + [0 2] x4 + [0] [0 1] [0 0] [0 0] [2] p(c_66) = [1] [2] p(c_67) = [0] [1] p(c_68) = [2] [0] p(c_69) = [1] [0] p(c_70) = [2] [0] p(c_71) = [0] [0] p(c_72) = [0] [0] p(c_73) = [1 2] x1 + [1] [0 0] [2] p(c_74) = [0 2] x3 + [1 0] x4 + [0] [0 0] [1 0] [0] p(c_75) = [0] [2] p(c_76) = [1] [0] p(c_77) = [0] [2] p(c_78) = [0] [1] p(c_79) = [0] [0] p(c_80) = [2] [0] p(c_81) = [0] [0] p(c_82) = [0] [0] p(c_83) = [0] [0] p(c_84) = [1] [0] p(c_85) = [1] [2] p(c_86) = [1] [2] p(c_87) = [0] [0] p(c_88) = [1] [0] p(c_89) = [2] [2] p(c_90) = [1] [0] p(c_91) = [2 0] x1 + [0] [2 0] [0] p(c_92) = [1] [0] p(c_93) = [0 1] x1 + [0] [0 0] [0] p(c_94) = [0] [1] p(c_95) = [0] [2] p(c_96) = [0] [1] p(c_97) = [1] [2] p(c_98) = [0] [0] p(c_99) = [2] [2] p(c_100) = [0] [0] p(c_101) = [1] [0] p(c_102) = [0] [1] p(c_103) = [0] [2] p(c_104) = [1] [0] p(c_105) = [0 0] x1 + [0] [2 1] [0] p(c_106) = [0 0] x2 + [0] [2 0] [0] p(c_107) = [0] [0] p(c_108) = [0] [0] p(c_109) = [0] [0] p(c_110) = [0] [0] p(c_111) = [0] [0] p(c_112) = [0] [0] p(c_113) = [0] [0] p(c_114) = [1 1] x1 + [2 0] x2 + [0 0] x3 + [0] [0 1] [1 0] [0 2] [0] p(c_115) = [2] [0] p(c_116) = [0 1] x1 + [0 0] x2 + [1] [0 0] [1 1] [0] p(c_117) = [0 0] x1 + [1] [1 0] [1] p(c_118) = [2] [2] p(c_119) = [0] [0] p(c_120) = [1 2] x1 + [0] [0 0] [0] p(c_121) = [0] [0] p(c_122) = [0 0] x1 + [0] [2 0] [0] p(c_123) = [0] [0] p(c_124) = [1] [0] p(c_125) = [2] [0] p(c_126) = [2] [0] p(c_127) = [1] [2] p(c_128) = [0] [0] p(c_129) = [0] [1] p(c_130) = [2 0] x3 + [2] [0 0] [1] p(c_131) = [1] [0] p(c_132) = [1 2] x1 + [0] [0 0] [1] p(c_133) = [0] [0] p(c_134) = [2 2] x1 + [0] [0 2] [1] p(c_135) = [0 1] x1 + [0] [0 0] [0] p(c_136) = [0 0] x2 + [0] [2 0] [0] p(c_137) = [0] [1] p(c_138) = [0 1] x1 + [0 0] x2 + [0] [0 1] [1 2] [0] p(c_139) = [0] [0] p(c_140) = [0 0] x2 + [0] [2 0] [0] p(c_141) = [0] [0] p(c_142) = [2 2] x1 + [0] [2 0] [1] p(c_143) = [1] [0] p(c_144) = [1] [2] Following rules are strictly oriented: INSERT#(z0,z1) = [0 1] z1 + [1] [0 1] [2] > [0 1] z1 + [0] [0 1] [0] = c_6(INSERT#1#(z0,z1,z0)) Following rules are (at-least) weakly oriented: INSERT#1#(tuple#2(z0,z1),z2,z3) = [0 1] z2 + [0 0] z3 + [0] [0 2] [3 1] [3] >= [0 1] z2 + [0] [0 0] [0] = c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) = [0 0] z0 + [0 1] z1 + [0 0] z3 + [0 0] z4 + [1] [2 0] [2 5] [0 1] [1 2] [4] >= [0 1] z1 + [1] [0 1] [2] = c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1] z3 + [0 0] z4 + [1] [2 0] [2 0] [0] >= [0 1] z3 + [1] [0 0] [0] = c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) = [0 0] z0 + [0 1] z1 + [0 0] z2 + [0 0] z3 + [0 0] z4 + [1] [3 0] [2 0] [0 2] [0 2] [1 0] [3] >= [0 1] z1 + [1] [0 0] [2] = c_11(INSERT#(z4,z1)) SPLIT#(z0) = [1 1] z0 + [2] [1 2] [0] >= [1 1] z0 + [2] [0 0] [0] = c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) = [1 0] z0 + [1 2] z1 + [3] [3 0] [3 6] [5] >= [1 2] z1 + [3] [2 6] [4] = c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) = [2 1] z0 + [2] [0 0] [3] >= [1 1] z0 + [2] [0 0] [3] = c_26(SPLIT#(z0)) insert(z0,z1) = [1 1] z1 + [0] [0 1] [1] >= [1 1] z1 + [0] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 1] z2 + [0] [0 1] [1] >= [1 1] z2 + [0] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1 0] z0 + [1 2] z1 + [1] [0 0] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [0] [1] >= [0] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [1 2] z3 + [1] [0 1] [2] >= [1 2] z3 + [1] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 2] z1 + [1] [0 1] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 2] z1 + [1] [0 1] [2] >= [1 1] z1 + [0] [0 1] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 3] z0 + [1] [0 1] [0] >= [1 3] z0 + [1] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [1 0] z0 + [1 4] z1 + [4] [0 0] [0 1] [1] >= [1 4] z1 + [1] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [1] [0] >= [0] [0] = nil() ******* Step 8.b:4.a:4.b:1.b:1.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ******* Step 8.b:4.a:4.b:1.b:1.b:1.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):2 2:W:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):3 3:W:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):4 4:W:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):5 5:W:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 6:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):7 7:W:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):6 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):1 8:W:SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):6 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 8: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) 6: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 7: SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 5: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 4: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 3: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 2: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) ******* Step 8.b:4.a:4.b:1.b:1.b:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). *** Step 8.b:4.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):2 2:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):3 3:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 9:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):10 10:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):14 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 11:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 12:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):13 13:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 14:W:INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) -->_1 INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)):15 15:W:INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) -->_1 INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)):16 16:W:INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) -->_1 INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)):17 17:W:INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) -->_1 INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)):18 18:W:INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)):14 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 14: INSERT#(z0,z1) -> c_6(INSERT#1#(z0,z1,z0)) 18: INSERT#4#(#false(),z0,z1,z2,z3,z4) -> c_11(INSERT#(z4,z1)) 17: INSERT#3#(tuple#2(z0,z1),z2,z3,z4,z5) -> c_10(INSERT#4#(#equal(z1,z2),z1,z3,z4,z0,z5)) 16: INSERT#2#(::(z0,z1),z2,z3,z4) -> c_8(INSERT#3#(z0,z2,z1,z3,z4)) 15: INSERT#1#(tuple#2(z0,z1),z2,z3) -> c_7(INSERT#2#(z2,z1,z0,z3)) *** Step 8.b:4.b:2: SimplifyRHS. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):2 2:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):3 3:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 9:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)):10 10:S:SPLIT#1#(::(z0,z1)) -> c_24(INSERT#(z0,split(z1)),SPLIT#(z1)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 11:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 12:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):13 13:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) *** Step 8.b:4.b:3: Decompose. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} Problem (S) - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} **** Step 8.b:4.b:3.a:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):2 2:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):3 3:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 9:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):10 10:W:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 11:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):9 12:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):13 13:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 9: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 10: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) **** Step 8.b:4.b:3.a:2: SimplifyRHS. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):2 2:S:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):3 3:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:S:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 11:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 12:S:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):13 13:S:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) **** Step 8.b:4.b:3.a:3: DecomposeDG. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) and a lower component SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) Further, following extension rules are added to the lower component. QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) ***** Step 8.b:4.b:3.a:3.a:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) Consider the set of all dependency pairs 1: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 2: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 3: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {2} These cover all (indirect) predecessors of dependency pairs {2,3,4,9} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ****** Step 8.b:4.b:3.a:3.a:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_19) = {1}, uargs(c_21) = {1}, uargs(c_22) = {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#,#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#,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(#AND) = [2 2] x1 + [0] [0 1] [1] p(#CKGT) = [0 0] x1 + [2] [0 2] [2] p(#COMPARE) = [0 0] x1 + [0] [1 0] [2] p(#EQ) = [2] [0] p(#EQ') = [0 0] x1 + [0] [2 0] [0] p(#EQUAL) = [0 0] x1 + [0 1] x2 + [0] [0 2] [2 0] [0] p(#GREATER) = [0 0] x1 + [0 2] x2 + [1] [2 0] [0 0] [0] p(#GT) = [0] [0] p(#LT) = [0] [1] p(#and) = [0 0] x1 + [0 1] x2 + [0] [0 1] [0 1] [0] p(#ckgt) = [0 2] x1 + [1] [1 2] [0] p(#compare) = [0 2] x1 + [0 0] x2 + [1] [3 1] [2 0] [3] p(#eq) = [0 2] x2 + [0] [0 0] [1] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0 0] x2 + [0] [0 1] [0] p(#neg) = [0] [2] p(#pos) = [1 1] x1 + [0] [0 1] [0] p(#s) = [0] [1] p(#true) = [0] [0] p(::) = [0 2] x1 + [1 0] x2 + [0] [0 0] [0 1] [1] p(APPEND) = [1 0] x1 + [0] [0 0] [0] p(APPEND#1) = [0 2] x1 + [0 0] x2 + [0] [0 0] [0 2] [2] p(INSERT) = [0 0] x2 + [0] [0 1] [0] p(INSERT#1) = [0 0] x3 + [2] [0 1] [0] p(INSERT#2) = [0 0] x2 + [0 0] x3 + [2] [0 1] [1 0] [2] p(INSERT#3) = [1 0] x3 + [0 0] x4 + [0 0] x5 + [0] [1 2] [0 1] [1 0] [0] p(INSERT#4) = [2 2] x1 + [0 0] x4 + [0 1] x6 + [0] [0 1] [2 0] [0 0] [0] p(QUICKSORT) = [2 1] x1 + [1] [0 0] [2] p(QUICKSORT#1) = [0 0] x1 + [0] [1 0] [0] p(QUICKSORT#2) = [1 1] x1 + [0] [1 0] [1] p(SORTALL) = [2] [0] p(SORTALL#1) = [0 0] x1 + [0] [1 2] [2] p(SORTALL#2) = [1 0] x1 + [2 1] x2 + [0] [0 0] [1 0] [1] p(SPLIT) = [1 0] x1 + [0] [2 0] [0] p(SPLIT#1) = [0] [1] p(SPLITANDSORT) = [0] [0] p(SPLITQS) = [0 0] x2 + [2] [2 2] [0] p(SPLITQS#1) = [0 0] x2 + [1] [2 0] [0] p(SPLITQS#2) = [0 0] x1 + [0 2] x2 + [0 0] x3 + [0] [2 0] [0 1] [0 1] [0] p(SPLITQS#3) = [0 0] x1 + [2 2] x2 + [0 0] x3 + [0 0] x4 + [0] [2 2] [1 0] [2 0] [0 1] [0] p(append) = [0] [2] p(append#1) = [0 1] x1 + [1] [2 2] [0] p(c) = [2] [1] p(c1) = [0] [0] p(c10) = [0] [0] p(c11) = [0] [1] p(c12) = [0] [0] p(c13) = [1] [1] p(c14) = [0] [0] p(c15) = [2] [0] p(c16) = [0] [1] p(c17) = [2] [0] p(c18) = [0 2] x1 + [0] [0 0] [1] p(c19) = [0] [2] p(c2) = [0] [1] p(c20) = [2] [0] p(c21) = [2] [1] p(c22) = [1] [0] p(c23) = [0] [0] p(c24) = [0 2] x1 + [0] [0 0] [1] p(c25) = [2] [2] p(c26) = [2] [0] p(c27) = [0] [0] p(c28) = [0 2] x1 + [0] [0 0] [1] p(c29) = [0] [0] p(c3) = [2] [0] p(c30) = [0] [0] p(c31) = [1 1] x1 + [1] [0 0] [1] p(c32) = [1 0] x2 + [0] [0 0] [1] p(c33) = [0] [0] p(c34) = [0] [0] p(c35) = [2] [2] p(c36) = [0] [0] p(c37) = [2] [0] p(c38) = [2] [2] p(c39) = [0] [0] p(c4) = [1] [2] p(c40) = [0 1] x1 + [0] [0 0] [0] p(c41) = [0 2] x1 + [1] [0 1] [0] p(c42) = [1 0] x1 + [2] [0 0] [0] p(c43) = [1] [0] p(c44) = [1 1] x1 + [0] [0 1] [0] p(c45) = [0] [0] p(c46) = [0] [1] p(c47) = [0 0] x1 + [1] [0 1] [1] p(c48) = [0 1] x1 + [0] [0 1] [0] p(c49) = [1 0] x1 + [2] [0 0] [2] p(c5) = [0] [1] p(c50) = [0] [0] p(c51) = [0] [1] p(c52) = [0 1] x1 + [2] [0 0] [2] p(c53) = [0] [0] p(c54) = [0 1] x1 + [1] [0 0] [1] p(c55) = [0] [1] p(c56) = [1] [0] p(c57) = [0] [2] p(c58) = [0 0] x2 + [1] [0 1] [0] p(c59) = [1] [0] p(c6) = [0] [2] p(c60) = [2] [1] p(c61) = [1] [1] p(c62) = [1] [0] p(c63) = [2] [0] p(c64) = [1] [0] p(c65) = [1 2] x1 + [1] [0 0] [0] p(c66) = [0] [1] p(c67) = [1 0] x1 + [0] [0 1] [0] p(c68) = [2] [2] p(c69) = [0 0] x2 + [1] [0 1] [0] p(c7) = [0] [0] p(c70) = [0] [0] p(c71) = [0] [0] p(c72) = [0] [0] p(c73) = [0] [0] p(c8) = [2] [0] p(c9) = [0] [2] 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 2] x1 + [1 0] x3 + [3] [0 0] [0 1] [2] p(insert#4) = [1 0] x3 + [0 2] x5 + [3] [0 1] [0 0] [2] p(nil) = [0] [0] p(quicksort) = [0] [0] p(quicksort#1) = [0 1] x1 + [0] [0 2] [2] p(quicksort#2) = [0 1] x1 + [0 2] x2 + [1] [0 0] [0 0] [2] p(sortAll) = [2] [0] p(sortAll#1) = [1] [0] p(sortAll#2) = [0 0] x2 + [0] [1 1] [0] p(split) = [0 3] x1 + [2] [0 1] [0] p(split#1) = [0 3] x1 + [2] [0 1] [0] p(splitAndSort) = [0] [2] p(splitqs) = [0 0] x1 + [0 1] x2 + [0] [0 1] [0 1] [0] p(splitqs#1) = [0 1] x1 + [0 0] x2 + [0] [0 1] [0 1] [0] p(splitqs#2) = [1 0] x1 + [0 0] x2 + [1] [1 0] [0 1] [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] x2 + [1] [0 0] [0] p(#CKGT#) = [0] [1] p(#COMPARE#) = [0 0] x1 + [0 0] x2 + [0] [0 1] [2 0] [1] p(#EQ'#) = [2 0] x2 + [1] [0 1] [2] p(#EQUAL#) = [2 0] x1 + [2] [0 0] [2] p(#GREATER#) = [0 0] x1 + [1 1] x2 + [0] [1 0] [1 0] [0] p(#and#) = [2] [0] p(#ckgt#) = [0] [1] p(#compare#) = [0 1] x2 + [0] [0 0] [0] p(#eq#) = [1] [0] p(#equal#) = [0] [2] p(#greater#) = [1] [0] p(APPEND#) = [2 0] x1 + [0 2] x2 + [0] [1 0] [2 1] [1] p(APPEND#1#) = [0] [0] p(INSERT#) = [0 0] x1 + [1] [1 0] [0] p(INSERT#1#) = [0 2] x1 + [1 0] x3 + [0] [2 0] [0 0] [0] p(INSERT#2#) = [2 2] x1 + [1 0] x2 + [2] [0 1] [2 2] [0] p(INSERT#3#) = [0 0] x1 + [0 2] x2 + [0 2] x3 + [2] [2 1] [2 1] [0 1] [0] p(INSERT#4#) = [1 0] x1 + [2] [0 2] [0] p(QUICKSORT#) = [0 2] x1 + [0] [0 0] [0] p(QUICKSORT#1#) = [0 2] x1 + [0] [0 3] [1] p(QUICKSORT#2#) = [2 0] x1 + [0 0] x2 + [0] [0 0] [3 0] [1] p(SORTALL#) = [1 0] x1 + [0] [2 0] [2] p(SORTALL#1#) = [1 0] x1 + [0] [0 0] [2] p(SORTALL#2#) = [0 2] x1 + [1 0] x2 + [0] [0 2] [1 0] [0] p(SPLIT#) = [0] [1] p(SPLIT#1#) = [2] [0] p(SPLITANDSORT#) = [0 3] x1 + [2] [1 1] [2] p(SPLITQS#) = [0 0] x1 + [2] [1 0] [0] p(SPLITQS#1#) = [0] [0] p(SPLITQS#2#) = [0 2] x1 + [1 1] x3 + [0] [0 0] [0 0] [1] p(SPLITQS#3#) = [0 0] x1 + [0 2] x2 + [0 2] x3 + [1] [1 0] [0 0] [2 0] [0] p(append#) = [0 2] x2 + [0] [0 0] [2] p(append#1#) = [1 0] x1 + [2] [1 2] [1] p(insert#) = [0 0] x1 + [0] [1 0] [0] p(insert#1#) = [0 0] x3 + [1] [0 2] [2] p(insert#2#) = [2 0] x1 + [2 1] x2 + [0 0] x4 + [0] [2 0] [1 2] [0 2] [0] p(insert#3#) = [0 0] x1 + [1 0] x3 + [2 0] x4 + [1] [1 0] [0 0] [0 0] [0] p(insert#4#) = [1 0] x2 + [1 0] x4 + [0 1] x6 + [0] [1 0] [2 2] [0 0] [0] p(quicksort#) = [2 0] x1 + [0] [0 1] [0] p(quicksort#1#) = [0] [0] p(quicksort#2#) = [2 1] x1 + [0] [2 2] [0] p(sortAll#) = [0 2] x1 + [0] [1 2] [0] p(sortAll#1#) = [2 1] x1 + [0] [0 0] [2] p(sortAll#2#) = [2 0] x1 + [2] [0 0] [0] p(split#) = [0] [1] p(split#1#) = [0 0] x1 + [0] [2 1] [1] p(splitAndSort#) = [0 0] x1 + [0] [2 0] [0] p(splitqs#) = [0] [0] p(splitqs#1#) = [0 2] x2 + [1] [0 1] [0] p(splitqs#2#) = [0 1] x2 + [0] [0 0] [2] p(splitqs#3#) = [0 2] x1 + [1 0] x2 + [0 0] x3 + [2 1] x4 + [0] [0 2] [0 0] [2 2] [0 0] [1] p(c_1) = [1 1] x1 + [0] [1 0] [2] p(c_2) = [0 0] x2 + [2 0] x3 + [1] [2 0] [0 0] [0] p(c_3) = [0 2] x1 + [1] [0 1] [2] p(c_4) = [0] [0] p(c_5) = [2] [1] p(c_6) = [1] [1] p(c_7) = [0] [0] p(c_8) = [2 2] x1 + [1] [0 2] [1] p(c_9) = [0] [0] p(c_10) = [1 0] x1 + [0] [0 2] [0] p(c_11) = [1 1] x1 + [0] [0 0] [0] p(c_12) = [2] [0] p(c_13) = [1 0] x1 + [0] [0 0] [0] p(c_14) = [1 0] x1 + [0 0] x2 + [1] [0 0] [2 0] [0] p(c_15) = [0] [2] p(c_16) = [1 0] x1 + [0] [0 0] [1] p(c_17) = [1 0] x1 + [0] [0 0] [1] p(c_18) = [1 0] x1 + [0] [0 0] [0] p(c_19) = [1 0] x1 + [0] [0 0] [2] p(c_20) = [0] [1] p(c_21) = [1 0] x1 + [0] [1 0] [0] p(c_22) = [1 0] x1 + [0] [0 0] [0] p(c_23) = [2 0] x1 + [2] [0 0] [0] p(c_24) = [0 0] x1 + [0] [2 1] [0] p(c_25) = [2] [2] p(c_26) = [1 0] x1 + [0] [0 0] [0] p(c_27) = [2 2] x1 + [0] [2 2] [0] p(c_28) = [0] [1] p(c_29) = [2] [2] p(c_30) = [1 0] x3 + [0] [2 0] [0] p(c_31) = [2] [0] p(c_32) = [2] [0] p(c_33) = [1] [0] p(c_34) = [2] [0] p(c_35) = [1] [2] p(c_36) = [2] [0] p(c_37) = [0] [1] p(c_38) = [1] [0] p(c_39) = [0] [0] p(c_40) = [0] [2] p(c_41) = [1] [0] p(c_42) = [1] [2] p(c_43) = [0] [0] p(c_44) = [1] [0] p(c_45) = [0] [0] p(c_46) = [2] [0] p(c_47) = [1] [0] p(c_48) = [0] [1] p(c_49) = [0] [1] p(c_50) = [1] [2] p(c_51) = [0 0] x1 + [0] [1 1] [0] p(c_52) = [0] [1] p(c_53) = [1] [2] p(c_54) = [2] [1] p(c_55) = [0] [2] p(c_56) = [0] [1] p(c_57) = [0] [0] p(c_58) = [0] [2] p(c_59) = [2] [0] p(c_60) = [2] [0] p(c_61) = [1] [0] p(c_62) = [0] [0] p(c_63) = [0 2] x1 + [2] [0 0] [0] p(c_64) = [1 0] x1 + [0 2] x3 + [0 0] x4 + [0] [1 0] [2 0] [0 1] [0] p(c_65) = [0 1] x1 + [0] [2 2] [0] p(c_66) = [0] [0] p(c_67) = [2] [0] p(c_68) = [0] [1] p(c_69) = [2] [1] p(c_70) = [0] [1] p(c_71) = [2] [0] p(c_72) = [0] [0] p(c_73) = [0 0] x1 + [0 1] x3 + [1 0] x4 + [0] [1 0] [1 0] [2 0] [0] p(c_74) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [0] [0 1] [2 0] [0 2] [1] p(c_75) = [0] [0] p(c_76) = [1] [0] p(c_77) = [2] [0] p(c_78) = [2] [0] p(c_79) = [0] [0] p(c_80) = [0] [0] p(c_81) = [1] [1] p(c_82) = [0] [0] p(c_83) = [0] [0] p(c_84) = [1] [0] p(c_85) = [0] [1] p(c_86) = [0] [1] p(c_87) = [0 0] x1 + [0] [0 2] [2] p(c_88) = [0] [1] p(c_89) = [0] [0] p(c_90) = [0] [2] p(c_91) = [0 1] x1 + [0] [2 2] [2] p(c_92) = [0] [1] p(c_93) = [0] [2] p(c_94) = [2] [0] p(c_95) = [2] [0] p(c_96) = [0] [0] p(c_97) = [0] [0] p(c_98) = [1] [2] p(c_99) = [0] [1] p(c_100) = [2] [0] p(c_101) = [0] [0] p(c_102) = [2] [1] p(c_103) = [0 1] x1 + [2] [0 1] [1] p(c_104) = [2] [0] p(c_105) = [0] [2] p(c_106) = [0 0] x1 + [0] [0 2] [0] p(c_107) = [0] [1] p(c_108) = [0] [0] p(c_109) = [2] [0] p(c_110) = [0] [1] p(c_111) = [1] [0] p(c_112) = [1] [0] p(c_113) = [0] [0] p(c_114) = [0] [2] p(c_115) = [0 0] x1 + [0] [1 0] [0] p(c_116) = [0 0] x2 + [0] [0 2] [1] p(c_117) = [0 0] x1 + [0] [1 1] [0] p(c_118) = [0] [0] p(c_119) = [0] [2] p(c_120) = [1] [0] p(c_121) = [1] [2] p(c_122) = [0] [0] p(c_123) = [0] [0] p(c_124) = [0] [0] p(c_125) = [1] [0] p(c_126) = [0] [0] p(c_127) = [2 1] x1 + [0] [0 1] [0] p(c_128) = [0 0] x1 + [1 0] x2 + [0] [2 0] [0 0] [0] p(c_129) = [0] [2] p(c_130) = [1] [0] p(c_131) = [0] [2] p(c_132) = [0 0] x1 + [2] [0 1] [0] p(c_133) = [2] [2] p(c_134) = [0 0] x1 + [2 0] x2 + [2] [0 1] [2 1] [2] p(c_135) = [0 2] x1 + [2] [1 1] [2] p(c_136) = [0 1] x1 + [0 0] x2 + [0] [2 1] [1 0] [1] p(c_137) = [0] [0] p(c_138) = [1 0] x1 + [0] [2 2] [0] p(c_139) = [1 0] x1 + [1] [0 1] [2] p(c_140) = [0 2] x1 + [0] [1 2] [2] p(c_141) = [1] [0] p(c_142) = [2] [2] p(c_143) = [0] [0] p(c_144) = [1] [0] Following rules are strictly oriented: QUICKSORT#1#(::(z0,z1)) = [0 2] z1 + [2] [0 3] [4] > [0 2] z1 + [1] [0 0] [4] = c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) Following rules are (at-least) weakly oriented: QUICKSORT#(z0) = [0 2] z0 + [0] [0 0] [0] >= [0 2] z0 + [0] [0 0] [0] = c_13(QUICKSORT#1#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0 0] z2 + [0] [0 0] [0 0] [3 0] [1] >= [0 2] z0 + [0] [0 0] [1] = c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0 0] z2 + [0] [0 0] [0 0] [3 0] [1] >= [0 2] z1 + [0] [0 0] [1] = c_17(QUICKSORT#(z1)) SORTALL#(z0) = [1 0] z0 + [0] [2 0] [2] >= [1 0] z0 + [0] [0 0] [0] = c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) = [0 2] z0 + [1 0] z1 + [0] [0 0] [0 0] [2] >= [0 2] z0 + [1 0] z1 + [0] [0 0] [0 0] [2] = c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [1 0] z2 + [0] [0 2] [1 0] [0] >= [0 2] z0 + [0] [0 2] [0] = c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [1 0] z2 + [0] [0 2] [1 0] [0] >= [1 0] z2 + [0] [0 0] [0] = c_22(SORTALL#(z2)) SPLITANDSORT#(z0) = [0 3] z0 + [2] [1 1] [2] >= [0 3] z0 + [2] [0 0] [0] = c_26(SORTALL#(split(z0))) insert(z0,z1) = [1 0] z1 + [3] [0 1] [1] >= [1 0] z1 + [3] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0] z2 + [3] [0 1] [1] >= [1 0] z2 + [3] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 2] z0 + [1 0] z1 + [3] [0 0] [0 1] [2] >= [0 2] z0 + [1 0] z1 + [3] [0 0] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [3] [1] >= [2] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 2] z0 + [1 0] z3 + [3] [0 0] [0 1] [2] >= [0 2] z0 + [1 0] z3 + [3] [0 0] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 2] z3 + [3] [0 1] [0 0] [2] >= [1 0] z1 + [0 2] z3 + [3] [0 1] [0 0] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 2] z3 + [3] [0 1] [0 0] [2] >= [1 0] z1 + [0 2] z3 + [2] [0 1] [0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [0 3] z0 + [2] [0 1] [0] >= [0 3] z0 + [2] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 3] z1 + [5] [0 1] [1] >= [0 3] z1 + [5] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [2] [0] >= [0] [0] = nil() splitqs(z0,z1) = [0 0] z0 + [0 1] z1 + [0] [0 1] [0 1] [0] >= [0 0] z0 + [0 1] z1 + [0] [0 1] [0 1] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 1] z1 + [0 0] z2 + [1] [0 1] [0 1] [1] >= [0 1] z1 + [0 0] z2 + [1] [0 1] [0 1] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0 0] z0 + [0] [0 1] [0] >= [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1] z0 + [0 1] z1 + [0 0] z2 + [1] [0 1] [0 1] [0 1] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [0] = tuple#2(z0,::(z2,z1)) ****** Step 8.b:4.b:3.a:3.a:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) - Weak DPs: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ****** Step 8.b:4.b:3.a:3.a:1.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) - Weak DPs: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 1: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) Consider the set of all dependency pairs 1: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 2: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 3: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {1} These cover all (indirect) predecessors of dependency pairs {1,2,3,4,9} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ******* Step 8.b:4.b:3.a:3.a:1.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) - Weak DPs: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_19) = {1}, uargs(c_21) = {1}, uargs(c_22) = {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#,#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#,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(#AND) = [0] [2] p(#CKGT) = [1 2] x1 + [1] [1 1] [0] p(#COMPARE) = [1 0] x1 + [0] [0 0] [2] p(#EQ) = [1] [0] p(#EQ') = [0 0] x2 + [0] [0 2] [2] p(#EQUAL) = [0] [0] p(#GREATER) = [2 1] x2 + [0] [2 0] [0] p(#GT) = [0] [0] p(#LT) = [1] [0] p(#and) = [1] [3] p(#ckgt) = [2 3] x1 + [1] [2 2] [3] p(#compare) = [1 3] x1 + [0 0] x2 + [0] [1 0] [0 2] [2] p(#eq) = [0] [1] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0] [0] p(#neg) = [3] [0] p(#pos) = [0 3] x1 + [1] [0 0] [1] p(#s) = [1 1] x1 + [1] [0 0] [1] p(#true) = [0] [0] p(::) = [0 1] x1 + [1 0] x2 + [1] [0 0] [0 1] [1] p(APPEND) = [1] [0] p(APPEND#1) = [0 0] x1 + [0] [0 2] [0] p(INSERT) = [0 0] x1 + [2] [1 0] [0] p(INSERT#1) = [0 1] x2 + [0 0] x3 + [0] [0 0] [0 1] [0] p(INSERT#2) = [1] [1] p(INSERT#3) = [0 0] x2 + [2 1] x3 + [2] [1 1] [2 0] [0] p(INSERT#4) = [0 0] x3 + [0 0] x4 + [1] [0 1] [0 1] [0] p(QUICKSORT) = [0 0] x1 + [0] [0 1] [2] p(QUICKSORT#1) = [1] [2] p(QUICKSORT#2) = [0 0] x1 + [0 0] x2 + [0] [2 0] [1 1] [0] p(SORTALL) = [1] [1] p(SORTALL#1) = [0] [0] p(SORTALL#2) = [2] [0] p(SPLIT) = [0 1] x1 + [2] [0 0] [0] p(SPLIT#1) = [0 1] x1 + [1] [1 0] [2] p(SPLITANDSORT) = [1] [0] p(SPLITQS) = [2] [1] p(SPLITQS#1) = [1 0] x1 + [0 0] x2 + [2] [0 0] [1 2] [2] p(SPLITQS#2) = [2] [0] p(SPLITQS#3) = [0 2] x4 + [0] [2 2] [2] p(append) = [0] [0] p(append#1) = [0 0] x1 + [2] [0 1] [2] p(c) = [1] [2] p(c1) = [0] [2] p(c10) = [2] [0] p(c11) = [1] [0] p(c12) = [0] [0] p(c13) = [0] [1] p(c14) = [0] [2] p(c15) = [0] [0] p(c16) = [1 0] x1 + [2] [0 0] [2] p(c17) = [0] [2] p(c18) = [1 0] x1 + [2] [0 0] [0] p(c19) = [0] [0] p(c2) = [1] [1] p(c20) = [0] [0] p(c21) = [0] [1] p(c22) = [2] [0] p(c23) = [2] [2] p(c24) = [0 0] x1 + [0] [0 1] [2] p(c25) = [1] [0] p(c26) = [2] [0] p(c27) = [2] [0] p(c28) = [1] [1] p(c29) = [0] [2] p(c3) = [1] [0] p(c30) = [1 1] x1 + [0] [0 0] [0] p(c31) = [1 0] x2 + [1] [0 0] [0] p(c32) = [0 0] x1 + [1] [0 1] [0] p(c33) = [0] [2] p(c34) = [1] [1] p(c35) = [1] [0] p(c36) = [2] [1] p(c37) = [1] [0] p(c38) = [0] [0] p(c39) = [1] [1] p(c4) = [1] [1] p(c40) = [0 0] x2 + [2] [0 1] [2] p(c41) = [0] [0] p(c42) = [1] [0] p(c43) = [2] [2] p(c44) = [0] [0] p(c45) = [0] [2] p(c46) = [0] [2] p(c47) = [0 0] x1 + [0] [0 1] [2] p(c48) = [0] [2] p(c49) = [2] [0] p(c5) = [0] [1] p(c50) = [0] [0] p(c51) = [1 0] x1 + [0 0] x2 + [2] [0 0] [0 1] [1] p(c52) = [0] [2] p(c53) = [0] [1] p(c54) = [0 2] x1 + [2] [0 1] [1] p(c55) = [0 0] x1 + [0] [0 1] [0] p(c56) = [0] [0] p(c57) = [0] [1] p(c58) = [0 0] x2 + [1] [0 1] [0] p(c59) = [0] [0] p(c6) = [0] [0] p(c60) = [1 2] x1 + [0] [0 0] [0] p(c61) = [2] [2] p(c62) = [0 2] x1 + [0] [0 0] [2] p(c63) = [1] [0] p(c64) = [0 1] x1 + [1] [0 1] [0] p(c65) = [1] [0] p(c66) = [0] [0] p(c67) = [0 0] x1 + [0] [0 1] [1] p(c68) = [0 1] x1 + [0] [0 1] [1] p(c69) = [1 0] x1 + [2] [0 0] [2] p(c7) = [2] [1] p(c70) = [0] [0] p(c71) = [1] [0] p(c72) = [0] [0] p(c73) = [2] [0] p(c8) = [1] [1] p(c9) = [0] [0] p(insert) = [0 1] x1 + [1 0] x2 + [2] [0 0] [0 1] [1] p(insert#1) = [1 0] x2 + [0 1] x3 + [2] [0 1] [0 0] [1] p(insert#2) = [1 0] x1 + [0 1] x4 + [2] [0 1] [0 0] [1] p(insert#3) = [0 1] x1 + [1 0] x3 + [0 1] x5 + [3] [0 0] [0 1] [0 0] [2] p(insert#4) = [1 0] x3 + [0 1] x5 + [0 1] x6 + [3] [0 1] [0 0] [0 0] [2] p(nil) = [0] [0] p(quicksort) = [1] [0] p(quicksort#1) = [0 0] x1 + [1] [0 1] [0] p(quicksort#2) = [1] [1] p(sortAll) = [0] [0] p(sortAll#1) = [1] [0] p(sortAll#2) = [1 0] x1 + [0] [0 1] [0] p(split) = [1 1] x1 + [0] [0 1] [0] p(split#1) = [1 1] x1 + [0] [0 1] [0] p(splitAndSort) = [1 0] x1 + [0] [0 1] [0] p(splitqs) = [0 0] x1 + [0 1] x2 + [2] [1 0] [2 0] [0] p(splitqs#1) = [0 1] x1 + [0 0] x2 + [2] [2 0] [1 0] [0] p(splitqs#2) = [1 0] x1 + [0 0] x3 + [1] [0 1] [0 2] [1] p(splitqs#3) = [0 1] x2 + [0 1] x3 + [0 0] x4 + [3] [0 1] [0 0] [0 2] [1] p(tuple#2) = [0 1] x1 + [0 1] x2 + [2] [0 1] [0 0] [0] p(#AND#) = [0 0] x1 + [1 0] x2 + [1] [1 0] [2 0] [2] p(#CKGT#) = [2] [1] p(#COMPARE#) = [2 1] x1 + [0] [0 0] [0] p(#EQ'#) = [0 0] x1 + [0] [1 0] [0] p(#EQUAL#) = [1 0] x1 + [0] [0 2] [0] p(#GREATER#) = [0 1] x1 + [0 0] x2 + [2] [2 0] [0 2] [2] p(#and#) = [1] [0] p(#ckgt#) = [0 1] x1 + [0] [0 2] [2] p(#compare#) = [0] [0] p(#eq#) = [1 1] x2 + [0] [2 0] [1] p(#equal#) = [1 0] x1 + [1] [0 2] [1] p(#greater#) = [0 0] x1 + [2] [0 2] [0] p(APPEND#) = [1 0] x1 + [0 0] x2 + [0] [0 1] [2 0] [0] p(APPEND#1#) = [2 0] x2 + [0] [2 0] [2] p(INSERT#) = [2 0] x1 + [2] [0 1] [0] p(INSERT#1#) = [0 1] x1 + [0] [0 2] [0] p(INSERT#2#) = [0 0] x1 + [0 0] x3 + [0] [2 0] [0 1] [1] p(INSERT#3#) = [0 1] x2 + [0 0] x5 + [2] [2 1] [1 0] [2] p(INSERT#4#) = [0 0] x1 + [2 0] x2 + [0 0] x3 + [2 1] x4 + [2 0] x6 + [0] [2 1] [0 0] [1 2] [0 2] [0 0] [2] p(QUICKSORT#) = [0 2] x1 + [3] [0 0] [1] p(QUICKSORT#1#) = [0 2] x1 + [2] [1 2] [0] p(QUICKSORT#2#) = [2 0] x1 + [0 0] x2 + [0] [0 0] [1 0] [2] p(SORTALL#) = [2 0] x1 + [3] [3 1] [0] p(SORTALL#1#) = [2 0] x1 + [1] [0 0] [1] p(SORTALL#2#) = [0 2] x1 + [2 0] x2 + [3] [2 2] [2 0] [1] p(SPLIT#) = [0 0] x1 + [0] [1 1] [2] p(SPLIT#1#) = [0 0] x1 + [0] [2 1] [0] p(SPLITANDSORT#) = [2 2] x1 + [3] [0 0] [0] p(SPLITQS#) = [0 0] x1 + [0 1] x2 + [2] [0 1] [0 1] [0] p(SPLITQS#1#) = [2 2] x1 + [0 0] x2 + [0] [2 0] [0 1] [0] p(SPLITQS#2#) = [0 0] x1 + [0 0] x2 + [1 1] x3 + [1] [0 2] [2 0] [0 1] [0] p(SPLITQS#3#) = [0 0] x4 + [2] [0 2] [1] p(append#) = [0] [2] p(append#1#) = [2 0] x1 + [0] [0 0] [0] p(insert#) = [0] [0] p(insert#1#) = [2 1] x2 + [1 0] x3 + [0] [0 0] [0 0] [0] p(insert#2#) = [0 0] x1 + [0] [2 0] [0] p(insert#3#) = [2 0] x1 + [0 0] x4 + [0 1] x5 + [2] [0 2] [0 2] [0 1] [0] p(insert#4#) = [0 0] x1 + [2 0] x2 + [0 0] x4 + [1 0] x5 + [2] [2 2] [2 2] [1 2] [0 0] [0] p(quicksort#) = [1] [1] p(quicksort#1#) = [2] [1] p(quicksort#2#) = [0 0] x2 + [2] [0 1] [0] p(sortAll#) = [1] [0] p(sortAll#1#) = [1] [1] p(sortAll#2#) = [0] [1] p(split#) = [0] [2] p(split#1#) = [2 2] x1 + [0] [0 2] [2] p(splitAndSort#) = [0] [0] p(splitqs#) = [0 1] x1 + [0] [0 1] [0] p(splitqs#1#) = [0 1] x1 + [1 0] x2 + [1] [0 0] [0 1] [0] p(splitqs#2#) = [0 1] x1 + [0 1] x2 + [0] [0 2] [0 0] [1] p(splitqs#3#) = [0 0] x1 + [0 0] x3 + [1] [1 2] [0 1] [0] p(c_1) = [1] [0] p(c_2) = [2 1] x1 + [2 0] x2 + [1 2] x3 + [1] [0 0] [0 1] [0 1] [0] p(c_3) = [1] [0] p(c_4) = [0] [0] p(c_5) = [1] [0] p(c_6) = [0 0] x1 + [1] [2 1] [0] p(c_7) = [0 0] x1 + [0] [1 1] [1] p(c_8) = [1] [2] p(c_9) = [2] [0] p(c_10) = [0] [2] p(c_11) = [0] [1] 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 1] x1 + [0] [0 1] [1] p(c_17) = [1 0] x1 + [1] [0 0] [2] p(c_18) = [1 2] x1 + [0] [0 0] [0] p(c_19) = [1 0] x1 + [0] [0 0] [0] p(c_20) = [1] [2] p(c_21) = [1 0] x1 + [0] [0 1] [0] p(c_22) = [1 0] x1 + [0] [1 0] [2] p(c_23) = [0] [0] p(c_24) = [0 2] x1 + [0] [0 0] [0] p(c_25) = [0] [0] p(c_26) = [1 0] x1 + [0] [0 0] [0] p(c_27) = [0] [0] p(c_28) = [0] [0] p(c_29) = [0] [1] p(c_30) = [0 0] x1 + [2 0] x3 + [0] [0 1] [1 1] [1] p(c_31) = [0] [2] p(c_32) = [0] [1] p(c_33) = [0] [1] p(c_34) = [2] [0] p(c_35) = [2] [0] p(c_36) = [2] [1] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [2] [0] p(c_40) = [1] [0] p(c_41) = [2] [0] p(c_42) = [2] [0] p(c_43) = [0] [0] p(c_44) = [0] [0] p(c_45) = [0 0] x1 + [0] [0 2] [0] p(c_46) = [0] [0] p(c_47) = [1] [0] p(c_48) = [1] [0] p(c_49) = [0 0] x1 + [1] [0 2] [2] p(c_50) = [1] [2] p(c_51) = [0 0] x1 + [2] [0 2] [0] p(c_52) = [2] [2] p(c_53) = [0] [1] p(c_54) = [1] [0] p(c_55) = [1] [2] p(c_56) = [0] [0] p(c_57) = [2 1] x1 + [1] [1 1] [0] p(c_58) = [2] [0] p(c_59) = [2] [1] p(c_60) = [0] [0] p(c_61) = [0] [0] p(c_62) = [2] [2] p(c_63) = [1] [2] p(c_64) = [2 0] x1 + [0 2] x2 + [0] [0 0] [2 0] [0] p(c_65) = [0 0] x3 + [0] [0 1] [0] p(c_66) = [1] [2] p(c_67) = [0] [0] p(c_68) = [2] [0] p(c_69) = [0] [0] p(c_70) = [1] [0] p(c_71) = [1] [0] p(c_72) = [2] [0] p(c_73) = [1 1] x3 + [2 0] x4 + [0] [2 0] [1 1] [0] p(c_74) = [1 2] x2 + [0 1] x4 + [0] [0 0] [1 0] [0] p(c_75) = [2] [0] p(c_76) = [2] [0] p(c_77) = [1] [0] p(c_78) = [0] [2] p(c_79) = [2] [2] p(c_80) = [0] [1] p(c_81) = [0] [0] p(c_82) = [2] [1] p(c_83) = [0] [0] p(c_84) = [0] [1] p(c_85) = [0] [1] p(c_86) = [0] [0] p(c_87) = [2] [1] p(c_88) = [2] [1] p(c_89) = [0] [2] p(c_90) = [0] [2] p(c_91) = [1 0] x1 + [0] [1 0] [0] p(c_92) = [0] [0] p(c_93) = [0 0] x1 + [0] [2 1] [0] p(c_94) = [0] [2] p(c_95) = [2] [0] p(c_96) = [0] [1] p(c_97) = [0] [1] p(c_98) = [0] [0] p(c_99) = [0 0] x1 + [0] [0 2] [0] p(c_100) = [0] [0] p(c_101) = [2] [2] p(c_102) = [0] [0] p(c_103) = [0 0] x1 + [0] [1 0] [0] p(c_104) = [0] [2] p(c_105) = [0 0] x1 + [0] [0 1] [2] p(c_106) = [2 2] x1 + [0 2] x2 + [0] [0 2] [0 1] [0] p(c_107) = [0] [0] p(c_108) = [0] [0] p(c_109) = [0] [0] p(c_110) = [0] [1] p(c_111) = [0] [0] p(c_112) = [2] [0] p(c_113) = [2] [2] p(c_114) = [0 0] x3 + [1] [2 0] [2] p(c_115) = [2 1] x1 + [0] [0 0] [0] p(c_116) = [1 0] x1 + [0 0] x2 + [2] [1 0] [0 2] [0] p(c_117) = [1] [0] p(c_118) = [2 1] x1 + [0] [2 0] [2] p(c_119) = [2] [0] p(c_120) = [0 0] x1 + [0] [0 1] [0] p(c_121) = [2 0] x1 + [0] [2 1] [0] p(c_122) = [2] [1] p(c_123) = [0] [1] p(c_124) = [0 0] x1 + [0] [2 2] [2] p(c_125) = [0 0] x1 + [0] [1 0] [2] p(c_126) = [1] [0] p(c_127) = [0 0] x1 + [2] [2 1] [0] p(c_128) = [0 0] x1 + [1 2] x2 + [0] [1 2] [0 0] [0] p(c_129) = [0] [1] p(c_130) = [2 1] x2 + [1 1] x3 + [0] [2 2] [2 2] [0] p(c_131) = [0 0] x1 + [0] [0 2] [0] p(c_132) = [0 0] x1 + [0] [0 2] [1] p(c_133) = [0] [2] p(c_134) = [0 0] x1 + [1 0] x2 + [0] [0 2] [0 1] [0] p(c_135) = [2 0] x1 + [0] [0 0] [0] p(c_136) = [0 0] x1 + [0] [0 1] [1] p(c_137) = [0] [2] p(c_138) = [0 0] x1 + [1] [0 2] [0] p(c_139) = [0] [0] p(c_140) = [0 1] x1 + [0] [0 1] [0] p(c_141) = [0] [0] p(c_142) = [0 0] x1 + [0 1] x2 + [0] [1 1] [0 0] [2] p(c_143) = [0] [2] p(c_144) = [2] [0] Following rules are strictly oriented: QUICKSORT#(z0) = [0 2] z0 + [3] [0 0] [1] > [0 2] z0 + [2] [0 0] [0] = c_13(QUICKSORT#1#(z0)) Following rules are (at-least) weakly oriented: QUICKSORT#1#(::(z0,z1)) = [0 0] z0 + [0 2] z1 + [4] [0 1] [1 2] [3] >= [0 0] z0 + [0 2] z1 + [4] [0 1] [0 2] [3] = c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0 0] z2 + [4] [0 0] [0 0] [1 0] [2] >= [0 2] z0 + [4] [0 0] [2] = c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0 0] z2 + [4] [0 0] [0 0] [1 0] [2] >= [0 2] z1 + [4] [0 0] [2] = c_17(QUICKSORT#(z1)) SORTALL#(z0) = [2 0] z0 + [3] [3 1] [0] >= [2 0] z0 + [3] [0 0] [0] = c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) = [0 2] z0 + [2 0] z1 + [3] [0 0] [0 0] [1] >= [0 2] z0 + [2 0] z1 + [3] [0 0] [0 0] [0] = c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 0] z1 + [2 0] z2 + [3] [0 4] [0 2] [2 0] [5] >= [0 2] z0 + [3] [0 0] [1] = c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 0] z1 + [2 0] z2 + [3] [0 4] [0 2] [2 0] [5] >= [2 0] z2 + [3] [2 0] [5] = c_22(SORTALL#(z2)) SPLITANDSORT#(z0) = [2 2] z0 + [3] [0 0] [0] >= [2 2] z0 + [3] [0 0] [0] = c_26(SORTALL#(split(z0))) insert(z0,z1) = [0 1] z0 + [1 0] z1 + [2] [0 0] [0 1] [1] >= [0 1] z0 + [1 0] z1 + [2] [0 0] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0] z2 + [0 1] z3 + [2] [0 1] [0 0] [1] >= [1 0] z2 + [0 1] z3 + [2] [0 1] [0 0] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 1] z0 + [1 0] z1 + [0 1] z4 + [3] [0 0] [0 1] [0 0] [2] >= [0 1] z0 + [1 0] z1 + [0 1] z4 + [3] [0 0] [0 1] [0 0] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [0 1] z2 + [2] [0 0] [1] >= [2] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1] z0 + [1 0] z3 + [0 1] z5 + [3] [0 0] [0 1] [0 0] [2] >= [0 1] z0 + [1 0] z3 + [0 1] z5 + [3] [0 0] [0 1] [0 0] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 1] z3 + [0 1] z4 + [3] [0 1] [0 0] [0 0] [2] >= [1 0] z1 + [0 1] z3 + [0 1] z4 + [3] [0 1] [0 0] [0 0] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 1] z3 + [0 1] z4 + [3] [0 1] [0 0] [0 0] [2] >= [1 0] z1 + [0 1] z3 + [2] [0 1] [0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 1] z0 + [0] [0 1] [0] >= [1 1] z0 + [0] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 1] z0 + [1 1] z1 + [2] [0 0] [0 1] [1] >= [0 1] z0 + [1 1] z1 + [2] [0 0] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [0] [0] >= [0] [0] = nil() splitqs(z0,z1) = [0 0] z0 + [0 1] z1 + [2] [1 0] [2 0] [0] >= [0 0] z0 + [0 1] z1 + [2] [1 0] [2 0] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 0] z0 + [0 1] z1 + [0 0] z2 + [3] [0 2] [2 0] [1 0] [2] >= [0 0] z0 + [0 1] z1 + [0 0] z2 + [3] [0 2] [2 0] [1 0] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0 0] z0 + [2] [1 0] [0] >= [2] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1] z0 + [0 1] z1 + [0 0] z3 + [3] [0 1] [0 0] [0 2] [1] >= [0 1] z0 + [0 1] z1 + [0 0] z3 + [3] [0 1] [0 0] [0 2] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [0 0] z2 + [3] [0 1] [0 0] [0 2] [1] >= [0 1] z0 + [0 1] z1 + [3] [0 1] [0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [0 0] z2 + [3] [0 1] [0 0] [0 2] [1] >= [0 1] z0 + [0 1] z1 + [3] [0 1] [0 0] [0] = tuple#2(z0,::(z2,z1)) ******* Step 8.b:4.b:3.a:3.a:1.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ******* Step 8.b:4.b:3.a:3.a:1.b:1.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):2 2:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):4 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):3 3:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 4:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 5:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):6 6:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):8 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):7 7:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):1 8:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 9:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):5 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 9: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) 5: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 6: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 7: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 1: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 2: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 3: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) ******* Step 8.b:4.b:3.a:3.a:1.b:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ***** Step 8.b:4.b:3.a:3.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) Consider the set of all dependency pairs 1: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 2: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) 3: QUICKSORT#(z0) -> QUICKSORT#1#(z0) 4: QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) 5: QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) 6: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 7: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) 8: SORTALL#(z0) -> SORTALL#1#(z0) 9: SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) 10: SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 11: SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) 12: SPLITANDSORT#(z0) -> SORTALL#(split(z0)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {2} These cover all (indirect) predecessors of dependency pairs {2,12} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ****** Step 8.b:4.b:3.a:3.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_27) = {1}, uargs(c_28) = {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#,#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#,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(#AND) = [0 0] x1 + [1] [0 2] [0] p(#CKGT) = [2 1] x1 + [0] [0 0] [0] p(#COMPARE) = [0 1] x2 + [2] [2 1] [0] p(#EQ) = [0] [0] p(#EQ') = [1 0] x2 + [0] [0 0] [2] p(#EQUAL) = [2 1] x1 + [0 0] x2 + [0] [1 0] [0 1] [0] p(#GREATER) = [0] [0] p(#GT) = [0] [0] p(#LT) = [0] [2] p(#and) = [2 0] x1 + [2 0] x2 + [2] [3 0] [2 0] [2] p(#ckgt) = [1 1] x1 + [0] [2 1] [1] p(#compare) = [3 3] x1 + [0] [0 1] [0] p(#eq) = [1] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0 0] x2 + [0] [1 0] [0] p(#neg) = [0] [0] p(#pos) = [1 2] x1 + [0] [0 0] [0] p(#s) = [1 0] x1 + [0] [0 1] [0] p(#true) = [0] [0] p(::) = [0 2] x1 + [1 0] x2 + [0] [0 0] [0 1] [1] p(APPEND) = [2 2] x1 + [2 1] x2 + [0] [1 1] [0 2] [2] p(APPEND#1) = [1 1] x2 + [0] [0 0] [0] p(INSERT) = [1] [0] p(INSERT#1) = [0 1] x1 + [1 2] x2 + [1] [0 1] [0 2] [0] p(INSERT#2) = [0 0] x1 + [2 2] x2 + [0 1] x4 + [0] [1 2] [0 0] [0 2] [0] p(INSERT#3) = [0 0] x1 + [1 2] x4 + [0 0] x5 + [1] [2 0] [0 2] [0 1] [0] p(INSERT#4) = [2 0] x2 + [0 2] x3 + [2 1] x6 + [2] [0 2] [1 2] [0 2] [1] p(QUICKSORT) = [1 0] x1 + [1] [0 2] [2] p(QUICKSORT#1) = [0] [0] p(QUICKSORT#2) = [2 0] x1 + [2] [2 1] [0] p(SORTALL) = [0 0] x1 + [0] [1 0] [2] p(SORTALL#1) = [2 1] x1 + [0] [0 0] [0] p(SORTALL#2) = [0 0] x1 + [0] [0 2] [1] p(SPLIT) = [1 2] x1 + [1] [0 0] [0] p(SPLIT#1) = [2] [0] p(SPLITANDSORT) = [0] [0] p(SPLITQS) = [1 0] x1 + [1 1] x2 + [2] [0 1] [1 2] [0] p(SPLITQS#1) = [0 0] x1 + [0 1] x2 + [0] [0 2] [2 0] [1] p(SPLITQS#2) = [2 0] x1 + [2 1] x2 + [0 0] x3 + [0] [1 0] [0 0] [1 1] [2] p(SPLITQS#3) = [2 0] x1 + [1 0] x2 + [2 0] x3 + [0 1] x4 + [1] [0 0] [2 0] [0 1] [0 2] [0] p(append) = [1 1] x1 + [2] [0 0] [0] p(append#1) = [0 0] x1 + [2 0] x2 + [0] [0 1] [1 2] [0] p(c) = [0] [0] p(c1) = [0] [0] p(c10) = [0] [0] p(c11) = [0] [0] p(c12) = [0 1] x1 + [1] [0 1] [2] p(c13) = [0] [0] p(c14) = [0] [1] p(c15) = [2] [0] p(c16) = [2] [2] p(c17) = [0] [1] p(c18) = [2] [0] p(c19) = [1] [2] p(c2) = [0] [1] p(c20) = [2] [0] p(c21) = [2] [1] p(c22) = [0] [1] p(c23) = [2] [0] p(c24) = [0 2] x1 + [2] [0 0] [2] p(c25) = [0] [0] p(c26) = [0] [0] p(c27) = [2] [0] p(c28) = [0 2] x1 + [1] [0 1] [1] p(c29) = [0] [0] p(c3) = [0] [1] p(c30) = [0 2] x1 + [0] [0 0] [1] p(c31) = [2] [2] p(c32) = [0] [0] p(c33) = [0] [1] p(c34) = [0] [0] p(c35) = [2] [0] p(c36) = [0] [2] p(c37) = [0] [2] p(c38) = [0] [2] p(c39) = [1] [0] p(c4) = [1] [0] p(c40) = [0] [0] p(c41) = [1 1] x1 + [0 2] x2 + [1] [0 0] [0 1] [2] p(c42) = [1] [0] p(c43) = [0 0] x2 + [2] [0 1] [2] p(c44) = [0] [0] p(c45) = [0] [0] p(c46) = [0] [0] p(c47) = [0 2] x1 + [0] [0 0] [0] p(c48) = [1 0] x1 + [2] [0 0] [1] p(c49) = [1] [0] p(c5) = [0] [0] p(c50) = [2] [1] p(c51) = [1 0] x1 + [0] [0 0] [0] p(c52) = [0 1] x1 + [2] [0 0] [0] p(c53) = [0] [0] p(c54) = [0] [1] p(c55) = [0 0] x2 + [0] [0 1] [0] p(c56) = [1] [0] p(c57) = [0 0] x2 + [2] [0 1] [0] p(c58) = [1 2] x1 + [0] [0 1] [0] p(c59) = [0] [1] p(c6) = [0] [0] p(c60) = [1 0] x1 + [1] [0 0] [2] p(c61) = [0] [1] p(c62) = [0] [0] p(c63) = [0 1] x1 + [2] [0 0] [1] p(c64) = [1 1] x1 + [0] [0 0] [0] p(c65) = [1 0] x1 + [0 1] x2 + [0] [0 0] [0 0] [0] p(c66) = [1] [1] p(c67) = [0 1] x1 + [0 1] x2 + [0] [0 0] [0 0] [0] p(c68) = [1] [2] p(c69) = [0] [0] p(c7) = [0] [0] p(c70) = [0] [0] p(c71) = [0 0] x1 + [1] [0 1] [2] p(c72) = [1] [0] p(c73) = [2] [2] p(c8) = [2] [0] p(c9) = [0] [1] p(insert) = [1 0] x2 + [2] [0 1] [1] p(insert#1) = [1 0] x2 + [2] [0 1] [1] p(insert#2) = [1 0] x1 + [2] [0 1] [1] p(insert#3) = [0 2] x1 + [1 0] x3 + [2] [0 0] [0 1] [2] p(insert#4) = [1 0] x3 + [0 2] x5 + [2] [0 1] [0 0] [2] p(nil) = [2] [0] p(quicksort) = [0] [0] p(quicksort#1) = [0] [0] p(quicksort#2) = [0] [0] p(sortAll) = [1 1] x1 + [0] [0 0] [0] p(sortAll#1) = [0] [0] p(sortAll#2) = [0] [0] p(split) = [1 2] x1 + [0] [0 1] [0] p(split#1) = [1 2] x1 + [0] [0 1] [0] p(splitAndSort) = [0] [0] p(splitqs) = [0 2] x2 + [0] [0 2] [0] p(splitqs#1) = [0 2] x1 + [0] [0 2] [0] p(splitqs#2) = [1 0] x1 + [2] [0 1] [1] p(splitqs#3) = [0 2] x2 + [0 2] x3 + [2] [0 1] [0 0] [1] p(tuple#2) = [0 2] x1 + [0 2] x2 + [0] [0 1] [0 0] [0] p(#AND#) = [1 0] x2 + [0] [1 2] [0] p(#CKGT#) = [0] [0] p(#COMPARE#) = [0] [0] p(#EQ'#) = [0] [0] p(#EQUAL#) = [0 1] x2 + [0] [1 1] [0] p(#GREATER#) = [0 0] x1 + [0 0] x2 + [0] [0 2] [1 0] [0] p(#and#) = [1 0] x1 + [0] [0 0] [0] p(#ckgt#) = [0] [0] p(#compare#) = [0 0] x1 + [0 0] x2 + [0] [1 0] [2 2] [0] p(#eq#) = [0] [0] p(#equal#) = [0 0] x2 + [0] [1 0] [0] p(#greater#) = [1 0] x1 + [0 0] x2 + [0] [0 1] [1 0] [0] p(APPEND#) = [0 0] x1 + [2 1] x2 + [0] [1 2] [0 2] [0] p(APPEND#1#) = [0 2] x1 + [0 1] x2 + [0] [2 1] [0 0] [0] p(INSERT#) = [0 0] x2 + [0] [0 2] [0] p(INSERT#1#) = [2 0] x3 + [0] [1 0] [0] p(INSERT#2#) = [0 0] x2 + [0] [2 2] [0] p(INSERT#3#) = [1 2] x3 + [0 0] x5 + [0] [0 0] [1 2] [0] p(INSERT#4#) = [0 1] x5 + [0] [1 0] [0] p(QUICKSORT#) = [0 2] x1 + [0] [0 0] [0] p(QUICKSORT#1#) = [0 2] x1 + [0] [0 0] [0] p(QUICKSORT#2#) = [1 0] x1 + [0] [0 0] [0] p(SORTALL#) = [1 0] x1 + [0] [0 0] [0] p(SORTALL#1#) = [1 0] x1 + [0] [0 0] [0] p(SORTALL#2#) = [0 2] x1 + [1 0] x2 + [0] [0 0] [0 0] [0] p(SPLIT#) = [0 0] x1 + [0] [0 1] [0] p(SPLIT#1#) = [0 2] x1 + [0] [2 0] [0] p(SPLITANDSORT#) = [2 2] x1 + [2] [1 2] [1] p(SPLITQS#) = [0 2] x2 + [0] [0 0] [0] p(SPLITQS#1#) = [0 2] x1 + [0] [1 1] [2] p(SPLITQS#2#) = [0 1] x2 + [0 2] x3 + [0] [2 2] [1 0] [0] p(SPLITQS#3#) = [0 1] x1 + [0 0] x2 + [0 0] x3 + [0] [2 0] [2 0] [1 1] [0] p(append#) = [2 1] x1 + [0] [0 0] [0] p(append#1#) = [2 2] x1 + [0] [0 2] [0] p(insert#) = [0 2] x2 + [0] [0 1] [0] p(insert#1#) = [1 0] x3 + [0] [0 1] [0] p(insert#2#) = [0 2] x2 + [0] [1 1] [0] p(insert#3#) = [1 0] x1 + [0 0] x3 + [0 1] x4 + [0 0] x5 + [0] [2 1] [0 2] [0 0] [0 2] [0] p(insert#4#) = [0 2] x1 + [0 0] x2 + [2 2] x3 + [0 1] x4 + [0] [0 1] [0 1] [2 1] [2 0] [0] p(quicksort#) = [0] [0] p(quicksort#1#) = [1 0] x1 + [0] [0 2] [0] p(quicksort#2#) = [1 0] x1 + [0] [0 0] [0] p(sortAll#) = [0 0] x1 + [0] [0 2] [0] p(sortAll#1#) = [2 0] x1 + [0] [1 0] [0] p(sortAll#2#) = [0 0] x1 + [1 0] x2 + [0] [1 0] [2 0] [0] p(split#) = [2 0] x1 + [0] [0 1] [0] p(split#1#) = [0] [0] p(splitAndSort#) = [2 0] x1 + [0] [0 0] [0] p(splitqs#) = [0] [0] p(splitqs#1#) = [0] [0] p(splitqs#2#) = [0 0] x1 + [0] [0 1] [0] p(splitqs#3#) = [0 2] x1 + [1 0] x2 + [2 2] x3 + [0] [0 0] [1 0] [1 1] [0] p(c_1) = [2 0] x1 + [0] [1 1] [0] p(c_2) = [2 0] x3 + [0] [1 2] [0] p(c_3) = [0] [0] p(c_4) = [1 1] x1 + [0] [1 2] [0] p(c_5) = [0] [0] p(c_6) = [0] [0] p(c_7) = [0] [0] p(c_8) = [0] [0] p(c_9) = [0] [0] p(c_10) = [0] [0] p(c_11) = [0] [0] p(c_12) = [0] [0] p(c_13) = [0] [0] p(c_14) = [0 0] x1 + [1 0] x2 + [0] [0 2] [2 1] [0] p(c_15) = [0] [0] p(c_16) = [0 1] x1 + [0] [0 2] [0] p(c_17) = [0 0] x1 + [0] [1 0] [0] p(c_18) = [0] [0] p(c_19) = [2 0] x1 + [0] [1 0] [0] p(c_20) = [0] [0] p(c_21) = [0 0] x1 + [0] [2 0] [0] p(c_22) = [0] [0] p(c_23) = [2 2] x1 + [0] [2 0] [0] p(c_24) = [0 0] x1 + [0] [0 1] [0] p(c_25) = [0] [0] p(c_26) = [1] [0] p(c_27) = [1 0] x1 + [0] [0 0] [0] p(c_28) = [1 0] x1 + [0] [0 0] [0] p(c_29) = [0] [0] p(c_30) = [0 2] x1 + [0 0] x3 + [0] [2 1] [0 2] [0] p(c_31) = [0] [0] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [0] [0] p(c_35) = [0] [0] p(c_36) = [0] [0] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [0] [0] p(c_40) = [0] [0] p(c_41) = [0] [0] p(c_42) = [0] [0] p(c_43) = [0] [0] p(c_44) = [0] [0] p(c_45) = [0] [0] p(c_46) = [0] [0] 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] [0] p(c_54) = [0] [0] p(c_55) = [0] [0] p(c_56) = [0] [0] p(c_57) = [0] [0] p(c_58) = [0] [0] p(c_59) = [0] [0] p(c_60) = [0] [0] p(c_61) = [0] [0] p(c_62) = [0] [0] p(c_63) = [0] [0] p(c_64) = [0 0] x1 + [2 1] x2 + [0 0] x4 + [0] [0 1] [0 1] [1 0] [0] p(c_65) = [0 0] x1 + [0 1] x2 + [2 0] x3 + [0] [2 2] [2 2] [1 1] [0] p(c_66) = [0] [0] p(c_67) = [2] [0] p(c_68) = [0] [0] p(c_69) = [0] [0] p(c_70) = [0] [0] p(c_71) = [0] [0] p(c_72) = [0] [0] p(c_73) = [0 0] x1 + [0 0] x3 + [0 0] x4 + [0] [1 0] [0 2] [2 2] [0] p(c_74) = [0 0] x2 + [0 1] x3 + [0 0] x4 + [0] [2 0] [1 0] [1 1] [0] p(c_75) = [0] [0] p(c_76) = [0] [0] p(c_77) = [0] [0] p(c_78) = [0] [0] p(c_79) = [0] [0] p(c_80) = [0] [0] p(c_81) = [0] [0] p(c_82) = [0] [0] p(c_83) = [0] [0] p(c_84) = [0] [0] p(c_85) = [0] [0] p(c_86) = [0] [0] p(c_87) = [1 0] x1 + [0] [0 0] [0] p(c_88) = [0] [0] p(c_89) = [0] [0] p(c_90) = [0] [0] p(c_91) = [1 0] x1 + [0] [2 1] [0] p(c_92) = [0] [0] p(c_93) = [0 1] x1 + [0] [1 0] [0] p(c_94) = [0] [0] p(c_95) = [0] [0] p(c_96) = [0] [0] p(c_97) = [0] [0] p(c_98) = [0] [0] p(c_99) = [0 2] x1 + [0] [0 0] [0] p(c_100) = [0] [0] p(c_101) = [0] [0] p(c_102) = [0] [0] p(c_103) = [2 2] x1 + [0] [1 0] [0] p(c_104) = [0] [0] p(c_105) = [0] [0] p(c_106) = [2 0] x1 + [0] [1 1] [0] p(c_107) = [0] [0] p(c_108) = [0] [0] p(c_109) = [0] [0] p(c_110) = [0] [0] p(c_111) = [0] [0] p(c_112) = [0] [0] p(c_113) = [0] [0] p(c_114) = [1 0] x3 + [0] [0 0] [0] p(c_115) = [0] [0] p(c_116) = [1 2] x1 + [2 1] x2 + [0] [2 0] [1 0] [0] p(c_117) = [0 0] x1 + [0] [1 1] [0] p(c_118) = [0] [0] p(c_119) = [0] [0] p(c_120) = [0 2] x1 + [0] [0 2] [0] p(c_121) = [1 1] x1 + [0] [0 0] [0] p(c_122) = [2 2] x1 + [0] [0 0] [0] p(c_123) = [0] [0] p(c_124) = [2 2] x1 + [0] [1 2] [0] p(c_125) = [0] [0] p(c_126) = [0] [0] p(c_127) = [0] [0] p(c_128) = [0 1] x1 + [0 0] x2 + [0] [2 0] [2 0] [0] p(c_129) = [0] [0] p(c_130) = [2 0] x2 + [0 0] x3 + [0] [2 0] [0 1] [0] p(c_131) = [0 0] x1 + [0] [1 1] [0] p(c_132) = [0 1] x1 + [0] [0 0] [0] p(c_133) = [0] [0] p(c_134) = [2 0] x1 + [2 1] x2 + [0] [0 0] [0 2] [0] p(c_135) = [0 2] x1 + [0] [0 2] [0] p(c_136) = [0] [0] p(c_137) = [0] [0] p(c_138) = [2 0] x1 + [0] [1 1] [0] p(c_139) = [1 2] x1 + [0] [0 0] [0] p(c_140) = [0 0] x2 + [0] [0 2] [0] p(c_141) = [0] [0] p(c_142) = [0 0] x1 + [1 1] x2 + [0] [0 1] [0 0] [0] p(c_143) = [0] [0] p(c_144) = [0] [0] Following rules are strictly oriented: SPLITQS#1#(::(z0,z1),z2) = [0 0] z0 + [0 2] z1 + [2] [0 2] [1 1] [3] > [0 2] z1 + [0] [0 0] [0] = c_28(SPLITQS#(z2,z1)) Following rules are (at-least) weakly oriented: QUICKSORT#(z0) = [0 2] z0 + [0] [0 0] [0] >= [0 2] z0 + [0] [0 0] [0] = QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) = [0 2] z1 + [2] [0 0] [0] >= [0 2] z1 + [0] [0 0] [0] = QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) = [0 2] z1 + [2] [0 0] [0] >= [0 2] z1 + [0] [0 0] [0] = SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0] [0 0] [0 0] [0] >= [0 2] z0 + [0] [0 0] [0] = QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [0 2] z1 + [0] [0 0] [0 0] [0] >= [0 2] z1 + [0] [0 0] [0] = QUICKSORT#(z1) SORTALL#(z0) = [1 0] z0 + [0] [0 0] [0] >= [1 0] z0 + [0] [0 0] [0] = SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) = [0 2] z0 + [1 0] z1 + [0] [0 0] [0 0] [0] >= [0 2] z0 + [1 0] z1 + [0] [0 0] [0 0] [0] = SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [1 0] z2 + [0] [0 0] [0 0] [0] >= [0 2] z0 + [0] [0 0] [0] = QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) = [0 2] z0 + [1 0] z2 + [0] [0 0] [0 0] [0] >= [1 0] z2 + [0] [0 0] [0] = SORTALL#(z2) SPLITANDSORT#(z0) = [2 2] z0 + [2] [1 2] [1] >= [1 2] z0 + [0] [0 0] [0] = SORTALL#(split(z0)) SPLITQS#(z0,z1) = [0 2] z1 + [0] [0 0] [0] >= [0 2] z1 + [0] [0 0] [0] = c_27(SPLITQS#1#(z1,z0)) insert(z0,z1) = [1 0] z1 + [2] [0 1] [1] >= [1 0] z1 + [2] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 0] z2 + [2] [0 1] [1] >= [1 0] z2 + [2] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 2] z0 + [1 0] z1 + [2] [0 0] [0 1] [2] >= [0 2] z0 + [1 0] z1 + [2] [0 0] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [4] [1] >= [4] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 2] z0 + [1 0] z3 + [2] [0 0] [0 1] [2] >= [0 2] z0 + [1 0] z3 + [2] [0 0] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 2] z3 + [2] [0 1] [0 0] [2] >= [1 0] z1 + [0 2] z3 + [2] [0 1] [0 0] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 0] z1 + [0 2] z3 + [2] [0 1] [0 0] [2] >= [1 0] z1 + [0 2] z3 + [2] [0 1] [0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 2] z0 + [0] [0 1] [0] >= [1 2] z0 + [0] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 2] z0 + [1 2] z1 + [2] [0 0] [0 1] [1] >= [1 2] z1 + [2] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [2] [0] >= [2] [0] = nil() splitqs(z0,z1) = [0 2] z1 + [0] [0 2] [0] >= [0 2] z1 + [0] [0 2] [0] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 2] z1 + [2] [0 2] [2] >= [0 2] z1 + [2] [0 2] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0] [0] >= [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [1] >= [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [1] >= [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [1] >= [0 2] z0 + [0 2] z1 + [2] [0 1] [0 0] [0] = tuple#2(z0,::(z2,z1)) ****** Step 8.b:4.b:3.a:3.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ****** Step 8.b:4.b:3.a:3.b:1.b:1: PredecessorEstimationCP. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 1: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) Consider the set of all dependency pairs 1: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 2: QUICKSORT#(z0) -> QUICKSORT#1#(z0) 3: QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) 4: QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) 5: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 6: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) 7: SORTALL#(z0) -> SORTALL#1#(z0) 8: SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) 9: SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 10: SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) 11: SPLITANDSORT#(z0) -> SORTALL#(split(z0)) 12: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {1} These cover all (indirect) predecessors of dependency pairs {1,11,12} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ******* Step 8.b:4.b:3.a:3.b:1.b:1.a:1: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_27) = {1}, uargs(c_28) = {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#,#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#,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(#AND) = [0] [0] p(#CKGT) = [0] [0] p(#COMPARE) = [0] [0] p(#EQ) = [0] [0] p(#EQ') = [0] [0] p(#EQUAL) = [0] [0] p(#GREATER) = [0] [0] p(#GT) = [0] [0] p(#LT) = [0] [0] p(#and) = [0] [0] p(#ckgt) = [1 1] x1 + [0] [1 2] [0] p(#compare) = [2 2] x1 + [2] [1 2] [2] p(#eq) = [0] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#greater) = [0] [0] p(#neg) = [2] [0] p(#pos) = [1 0] x1 + [2] [0 0] [0] p(#s) = [1 0] x1 + [0] [0 1] [0] p(#true) = [0] [0] p(::) = [0 1] x1 + [1 1] x2 + [0] [0 0] [0 1] [1] p(APPEND) = [0] [0] p(APPEND#1) = [0] [0] p(INSERT) = [0] [0] p(INSERT#1) = [0] [0] p(INSERT#2) = [1 0] x1 + [0] [0 0] [0] p(INSERT#3) = [0 0] x3 + [0] [1 0] [0] p(INSERT#4) = [0] [0] p(QUICKSORT) = [0] [0] p(QUICKSORT#1) = [0] [0] p(QUICKSORT#2) = [0] [0] p(SORTALL) = [0] [0] p(SORTALL#1) = [0] [0] p(SORTALL#2) = [0] [0] p(SPLIT) = [0] [0] p(SPLIT#1) = [0] [0] p(SPLITANDSORT) = [0] [0] p(SPLITQS) = [0] [0] p(SPLITQS#1) = [0] [0] p(SPLITQS#2) = [0] [0] p(SPLITQS#3) = [0] [0] p(append) = [0] [0] p(append#1) = [0] [2] p(c) = [0] [0] p(c1) = [0] [2] p(c10) = [0] [2] p(c11) = [0] [0] p(c12) = [0] [0] p(c13) = [0] [0] p(c14) = [2] [1] p(c15) = [0] [0] p(c16) = [0] [1] p(c17) = [2] [1] p(c18) = [1] [1] p(c19) = [0] [0] p(c2) = [1] [0] p(c20) = [1] [2] p(c21) = [1] [0] p(c22) = [0] [1] p(c23) = [1] [1] p(c24) = [0] [0] p(c25) = [1] [1] p(c26) = [1] [0] p(c27) = [1] [0] p(c28) = [0] [1] p(c29) = [2] [0] p(c3) = [0] [0] p(c30) = [0] [2] p(c31) = [2] [0] p(c32) = [2] [1] p(c33) = [0] [0] p(c34) = [0] [0] p(c35) = [0] [2] p(c36) = [2] [1] p(c37) = [0] [1] p(c38) = [1] [1] p(c39) = [0] [0] p(c4) = [1] [0] p(c40) = [0] [2] p(c41) = [2] [0] p(c42) = [0] [0] p(c43) = [0] [0] p(c44) = [1] [0] p(c45) = [0] [0] p(c46) = [0] [1] p(c47) = [0] [0] p(c48) = [1] [0] p(c49) = [0] [0] p(c5) = [0] [0] p(c50) = [0] [1] p(c51) = [0] [0] p(c52) = [0 0] x1 + [2] [0 1] [0] p(c53) = [0] [0] p(c54) = [1] [0] p(c55) = [0] [2] p(c56) = [0] [2] p(c57) = [0] [1] p(c58) = [2] [0] p(c59) = [2] [0] p(c6) = [0] [0] p(c60) = [0] [0] p(c61) = [0] [0] p(c62) = [0] [2] p(c63) = [0 1] x1 + [0] [0 1] [2] p(c64) = [2] [0] p(c65) = [0] [2] p(c66) = [0] [0] p(c67) = [0 2] x2 + [2] [0 0] [1] p(c68) = [0] [1] p(c69) = [0 2] x1 + [0] [0 0] [0] p(c7) = [2] [1] p(c70) = [0] [0] p(c71) = [0 1] x1 + [0] [0 0] [1] p(c72) = [0] [1] p(c73) = [0] [0] p(c8) = [0] [0] p(c9) = [2] [0] p(insert) = [1 1] x2 + [1] [0 1] [1] p(insert#1) = [1 1] x2 + [1] [0 1] [1] p(insert#2) = [1 1] x1 + [1] [0 1] [1] p(insert#3) = [0 1] x1 + [1 2] x3 + [2] [0 0] [0 1] [2] p(insert#4) = [1 2] x3 + [0 1] x5 + [2] [0 1] [0 0] [2] p(nil) = [0] [0] p(quicksort) = [1] [0] p(quicksort#1) = [0] [0] p(quicksort#2) = [0] [0] p(sortAll) = [1] [0] p(sortAll#1) = [0 0] x1 + [0] [1 0] [0] p(sortAll#2) = [1] [2] p(split) = [1 1] x1 + [0] [0 1] [0] p(split#1) = [1 1] x1 + [0] [0 1] [0] p(splitAndSort) = [0] [0] p(splitqs) = [0 0] x1 + [0 1] x2 + [0] [1 2] [1 0] [1] p(splitqs#1) = [0 1] x1 + [0 0] x2 + [0] [1 0] [1 2] [1] p(splitqs#2) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [1] [1 0] [1 2] [0 1] [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] [2] p(#CKGT#) = [0] [0] p(#COMPARE#) = [0 1] x2 + [0] [0 0] [1] p(#EQ'#) = [2] [0] p(#EQUAL#) = [1] [0] p(#GREATER#) = [0] [0] p(#and#) = [1] [2] p(#ckgt#) = [1] [0] p(#compare#) = [0 0] x2 + [0] [0 1] [1] p(#eq#) = [0] [2] p(#equal#) = [0] [0] p(#greater#) = [0] [1] p(APPEND#) = [0 0] x1 + [2] [1 2] [2] p(APPEND#1#) = [0] [1] p(INSERT#) = [0] [0] p(INSERT#1#) = [0] [0] p(INSERT#2#) = [0 0] x4 + [0] [0 1] [0] p(INSERT#3#) = [0 0] x2 + [0 0] x5 + [0] [2 0] [0 2] [0] p(INSERT#4#) = [0 0] x1 + [0] [0 2] [2] p(QUICKSORT#) = [0 1] x1 + [1] [0 1] [0] p(QUICKSORT#1#) = [0 1] x1 + [1] [0 1] [0] p(QUICKSORT#2#) = [1 0] x1 + [2] [1 0] [1] p(SORTALL#) = [1 1] x1 + [0] [1 1] [0] p(SORTALL#1#) = [1 1] x1 + [0] [1 0] [0] p(SORTALL#2#) = [0 1] x1 + [1 2] x2 + [1] [0 1] [1 1] [0] p(SPLIT#) = [0] [2] p(SPLIT#1#) = [2] [2] p(SPLITANDSORT#) = [1 2] x1 + [1] [2 2] [2] p(SPLITQS#) = [0 1] x2 + [1] [0 1] [0] p(SPLITQS#1#) = [0 1] x1 + [0] [2 2] [1] p(SPLITQS#2#) = [0 0] x1 + [0] [0 1] [1] p(SPLITQS#3#) = [0] [0] p(append#) = [1 2] x1 + [0 0] x2 + [2] [0 0] [0 1] [0] p(append#1#) = [1] [0] p(insert#) = [0 2] x2 + [2] [2 0] [0] p(insert#1#) = [2 1] x1 + [1 1] x3 + [1] [0 0] [0 0] [2] p(insert#2#) = [2 0] x2 + [2 0] x4 + [0] [1 0] [2 0] [1] p(insert#3#) = [0 2] x1 + [2 1] x5 + [2] [0 2] [1 0] [0] p(insert#4#) = [2 2] x1 + [2 1] x2 + [0 0] x4 + [0 0] x5 + [2] [1 0] [2 2] [1 0] [1 0] [1] p(quicksort#) = [2 0] x1 + [0] [0 0] [0] p(quicksort#1#) = [0 0] x1 + [0] [1 1] [1] p(quicksort#2#) = [1 0] x1 + [0 0] x2 + [0] [2 2] [0 1] [0] p(sortAll#) = [0] [0] p(sortAll#1#) = [2] [1] p(sortAll#2#) = [2 1] x1 + [1] [2 1] [0] p(split#) = [0 0] x1 + [1] [0 1] [0] p(split#1#) = [0 0] x1 + [0] [0 2] [1] p(splitAndSort#) = [0 0] x1 + [0] [0 2] [2] p(splitqs#) = [2 2] x1 + [2] [0 1] [0] p(splitqs#1#) = [0 0] x2 + [0] [2 0] [0] p(splitqs#2#) = [2 0] x1 + [0 2] x3 + [0] [1 2] [0 0] [0] p(splitqs#3#) = [0 1] x1 + [0 2] x2 + [0] [0 1] [0 0] [1] p(c_1) = [2] [0] p(c_2) = [0 1] x2 + [0] [0 1] [0] p(c_3) = [1] [2] p(c_4) = [0 1] x1 + [1] [0 0] [2] p(c_5) = [2] [0] p(c_6) = [2 2] x1 + [2] [0 0] [0] p(c_7) = [2] [0] p(c_8) = [0 0] x1 + [0] [0 2] [2] p(c_9) = [2] [1] p(c_10) = [2 1] x1 + [0] [2 0] [0] p(c_11) = [2] [0] p(c_12) = [2] [0] p(c_13) = [0 0] x1 + [1] [2 0] [0] p(c_14) = [0 0] x1 + [2 0] x2 + [2] [2 2] [2 0] [0] p(c_15) = [0] [2] p(c_16) = [1] [0] p(c_17) = [0 0] x1 + [0] [0 2] [2] p(c_18) = [0] [0] p(c_19) = [0 1] x1 + [0] [0 0] [2] p(c_20) = [0] [1] p(c_21) = [1] [1] p(c_22) = [1 0] x1 + [1] [0 1] [1] p(c_23) = [0] [0] p(c_24) = [2 0] x1 + [0] [0 0] [1] p(c_25) = [1] [0] p(c_26) = [0 0] x1 + [0] [2 0] [1] p(c_27) = [1 0] x1 + [0] [0 0] [0] p(c_28) = [1 0] x1 + [0] [3 1] [0] p(c_29) = [1] [1] p(c_30) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [0] [0 1] [0 1] [1 0] [0] p(c_31) = [1] [0] p(c_32) = [0] [2] p(c_33) = [0] [1] p(c_34) = [1] [0] p(c_35) = [0] [0] p(c_36) = [0] [0] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [2] [1] p(c_40) = [0] [0] p(c_41) = [1] [1] p(c_42) = [0] [0] p(c_43) = [0] [0] p(c_44) = [0] [0] p(c_45) = [0 0] x1 + [0] [1 1] [1] p(c_46) = [0] [1] p(c_47) = [1] [0] p(c_48) = [0] [1] p(c_49) = [0 0] x1 + [2] [1 0] [0] p(c_50) = [0] [0] p(c_51) = [2] [2] p(c_52) = [2] [2] p(c_53) = [0] [0] p(c_54) = [0] [0] p(c_55) = [2] [0] p(c_56) = [1] [0] p(c_57) = [0 1] x1 + [0] [1 0] [1] p(c_58) = [0] [0] p(c_59) = [0] [2] p(c_60) = [0] [0] p(c_61) = [0] [0] p(c_62) = [0] [0] p(c_63) = [0] [0] p(c_64) = [1 1] x3 + [0] [0 0] [0] p(c_65) = [0 0] x2 + [1 0] x4 + [0] [2 0] [0 2] [2] p(c_66) = [0] [2] p(c_67) = [0] [1] p(c_68) = [0] [0] p(c_69) = [0] [0] p(c_70) = [1] [2] p(c_71) = [0] [0] p(c_72) = [0] [1] p(c_73) = [0 0] x1 + [0 0] x2 + [0 0] x4 + [0] [1 0] [0 2] [1 0] [0] p(c_74) = [2 2] x1 + [0 0] x4 + [0] [2 2] [0 2] [2] p(c_75) = [0] [0] p(c_76) = [0] [0] p(c_77) = [2] [0] p(c_78) = [2] [1] p(c_79) = [0] [0] p(c_80) = [0] [0] p(c_81) = [0] [0] p(c_82) = [0] [2] p(c_83) = [0] [0] p(c_84) = [0] [0] p(c_85) = [0] [0] p(c_86) = [1] [2] p(c_87) = [1 1] x1 + [0] [0 0] [0] p(c_88) = [0] [0] p(c_89) = [2] [0] p(c_90) = [0] [0] p(c_91) = [1 0] x1 + [0] [0 1] [0] p(c_92) = [1] [2] p(c_93) = [0] [2] p(c_94) = [0] [0] p(c_95) = [0] [0] p(c_96) = [0] [0] p(c_97) = [2] [0] p(c_98) = [0] [2] p(c_99) = [0 0] x1 + [2] [0 1] [0] p(c_100) = [0] [1] p(c_101) = [1] [2] p(c_102) = [0] [0] p(c_103) = [0 1] x1 + [0] [2 0] [2] p(c_104) = [2] [1] p(c_105) = [0 2] x1 + [1] [0 0] [2] p(c_106) = [0 1] x1 + [2 2] x2 + [0 1] x3 + [0] [0 2] [0 0] [0 0] [0] p(c_107) = [0] [0] p(c_108) = [1] [1] p(c_109) = [0] [0] p(c_110) = [1] [1] p(c_111) = [0] [2] p(c_112) = [0] [0] p(c_113) = [2] [1] p(c_114) = [2 0] x1 + [0] [0 0] [1] p(c_115) = [2] [1] p(c_116) = [0 0] x1 + [0] [1 1] [1] p(c_117) = [1 0] x1 + [0] [0 0] [0] p(c_118) = [0 0] x1 + [0] [1 0] [0] p(c_119) = [2] [0] p(c_120) = [0 0] x1 + [0] [2 2] [2] p(c_121) = [1 2] x1 + [0] [2 1] [1] p(c_122) = [0 0] x1 + [2] [1 0] [2] p(c_123) = [2] [0] p(c_124) = [0] [0] p(c_125) = [2 2] x1 + [2] [0 1] [2] p(c_126) = [1] [0] p(c_127) = [0 2] x1 + [2] [2 2] [2] p(c_128) = [2] [0] p(c_129) = [0] [0] p(c_130) = [2 1] x2 + [2] [0 0] [1] p(c_131) = [0] [2] p(c_132) = [1 0] x1 + [0] [1 0] [0] p(c_133) = [0] [0] p(c_134) = [0] [1] p(c_135) = [0 1] x1 + [0] [0 0] [0] p(c_136) = [1 2] x1 + [1] [0 0] [0] p(c_137) = [0] [0] p(c_138) = [0] [0] p(c_139) = [0] [0] p(c_140) = [0 0] x2 + [1] [2 2] [2] p(c_141) = [0] [0] p(c_142) = [0 0] x1 + [0 2] x2 + [0] [0 1] [0 0] [0] p(c_143) = [2] [1] p(c_144) = [0] [0] Following rules are strictly oriented: SPLITQS#(z0,z1) = [0 1] z1 + [1] [0 1] [0] > [0 1] z1 + [0] [0 0] [0] = c_27(SPLITQS#1#(z1,z0)) Following rules are (at-least) weakly oriented: QUICKSORT#(z0) = [0 1] z0 + [1] [0 1] [0] >= [0 1] z0 + [1] [0 1] [0] = QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) = [0 1] z1 + [2] [0 1] [1] >= [0 1] z1 + [2] [0 1] [1] = QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) = [0 1] z1 + [2] [0 1] [1] >= [0 1] z1 + [1] [0 1] [0] = SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1] z0 + [0 1] z1 + [2] [0 1] [0 1] [1] >= [0 1] z0 + [1] [0 1] [0] = QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) = [0 1] z0 + [0 1] z1 + [2] [0 1] [0 1] [1] >= [0 1] z1 + [1] [0 1] [0] = QUICKSORT#(z1) SORTALL#(z0) = [1 1] z0 + [0] [1 1] [0] >= [1 1] z0 + [0] [1 0] [0] = SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) = [0 1] z0 + [1 2] z1 + [1] [0 1] [1 1] [0] >= [0 1] z0 + [1 2] z1 + [1] [0 1] [1 1] [0] = SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1] z0 + [1 2] z2 + [1] [0 1] [1 1] [0] >= [0 1] z0 + [1] [0 1] [0] = QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) = [0 1] z0 + [1 2] z2 + [1] [0 1] [1 1] [0] >= [1 1] z2 + [0] [1 1] [0] = SORTALL#(z2) SPLITANDSORT#(z0) = [1 2] z0 + [1] [2 2] [2] >= [1 2] z0 + [0] [1 2] [0] = SORTALL#(split(z0)) SPLITQS#1#(::(z0,z1),z2) = [0 0] z0 + [0 1] z1 + [1] [0 2] [2 4] [3] >= [0 1] z1 + [1] [0 4] [3] = c_28(SPLITQS#(z2,z1)) insert(z0,z1) = [1 1] z1 + [1] [0 1] [1] >= [1 1] z1 + [1] [0 1] [1] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1 1] z2 + [1] [0 1] [1] >= [1 1] z2 + [1] [0 1] [1] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [0 1] z0 + [1 2] z1 + [2] [0 0] [0 1] [2] >= [0 1] z0 + [1 2] z1 + [2] [0 0] [0 1] [2] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [1] [1] >= [1] [1] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [0 1] z0 + [1 2] z3 + [2] [0 0] [0 1] [2] >= [0 1] z0 + [1 2] z3 + [2] [0 0] [0 1] [2] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1 2] z1 + [0 1] z3 + [2] [0 1] [0 0] [2] >= [1 2] z1 + [0 1] z3 + [2] [0 1] [0 0] [2] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1 2] z1 + [0 1] z3 + [2] [0 1] [0 0] [2] >= [1 1] z1 + [0 1] z3 + [1] [0 1] [0 0] [1] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [1 1] z0 + [0] [0 1] [0] >= [1 1] z0 + [0] [0 1] [0] = split#1(z0) split#1(::(z0,z1)) = [0 1] z0 + [1 2] z1 + [1] [0 0] [0 1] [1] >= [1 2] z1 + [1] [0 1] [1] = insert(z0,split(z1)) split#1(nil()) = [0] [0] >= [0] [0] = nil() splitqs(z0,z1) = [0 0] z0 + [0 1] z1 + [0] [1 2] [1 0] [1] >= [0 0] z0 + [0 1] z1 + [0] [1 2] [1 0] [1] = splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) = [0 0] z0 + [0 1] z1 + [0 0] z2 + [1] [0 1] [1 1] [1 2] [1] >= [0 0] z0 + [0 1] z1 + [0 0] z2 + [1] [0 1] [0 1] [1 2] [1] = splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) = [0 0] z0 + [0] [1 2] [1] >= [0] [0] = tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) = [0 1] z0 + [0 1] z1 + [0 0] z2 + [0 0] z3 + [1] [0 1] [0 1] [1 2] [0 1] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] = splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] = tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) = [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [1] >= [0 1] z0 + [0 1] z1 + [1] [0 1] [0 0] [0] = tuple#2(z0,::(z2,z1)) ******* Step 8.b:4.b:3.a:3.b:1.b:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ******* Step 8.b:4.b:3.a:3.b:1.b:1.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: QUICKSORT#(z0) -> QUICKSORT#1#(z0) QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) SORTALL#(z0) -> SORTALL#1#(z0) SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) SPLITANDSORT#(z0) -> SORTALL#(split(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:QUICKSORT#(z0) -> QUICKSORT#1#(z0) -->_1 QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1):3 -->_1 QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0):2 2:W:QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1):5 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0):4 3:W:QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):11 4:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) -->_1 QUICKSORT#(z0) -> QUICKSORT#1#(z0):1 5:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) -->_1 QUICKSORT#(z0) -> QUICKSORT#1#(z0):1 6:W:SORTALL#(z0) -> SORTALL#1#(z0) -->_1 SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1):7 7:W:SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2):9 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0):8 8:W:SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) -->_1 QUICKSORT#(z0) -> QUICKSORT#1#(z0):1 9:W:SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) -->_1 SORTALL#(z0) -> SORTALL#1#(z0):6 10:W:SPLITANDSORT#(z0) -> SORTALL#(split(z0)) -->_1 SORTALL#(z0) -> SORTALL#1#(z0):6 11:W:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):12 12:W:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):11 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 10: SPLITANDSORT#(z0) -> SORTALL#(split(z0)) 6: SORTALL#(z0) -> SORTALL#1#(z0) 9: SORTALL#2#(tuple#2(z0,z1),z2) -> SORTALL#(z2) 7: SORTALL#1#(::(z0,z1)) -> SORTALL#2#(z0,z1) 8: SORTALL#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 1: QUICKSORT#(z0) -> QUICKSORT#1#(z0) 5: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z1) 2: QUICKSORT#1#(::(z0,z1)) -> QUICKSORT#2#(splitqs(z0,z1),z0) 4: QUICKSORT#2#(tuple#2(z0,z1),z2) -> QUICKSORT#(z0) 3: QUICKSORT#1#(::(z0,z1)) -> SPLITQS#(z0,z1) 11: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 12: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) ******* Step 8.b:4.b:3.a:3.b:1.b:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). **** Step 8.b:4.b:3.b:1: PredecessorEstimation. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {3} by application of Pre({3}) = {2}. Here rules are labelled as follows: 1: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 2: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 3: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 4: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 5: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 6: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) 7: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) 8: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 9: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 10: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) 11: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 12: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 13: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) **** Step 8.b:4.b:3.b:2: RemoveWeakSuffixes. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak DPs: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):2 2:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)):11 -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):3 3:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 4:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):5 5:S:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):4 6:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):4 -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 7:W:QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) -->_1 QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)):8 8:W:QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) -->_2 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)):10 -->_1 QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)):9 9:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):7 10:W:QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):7 11:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) -->_1 QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)):7 12:W:SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) -->_1 SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)):13 13:W:SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) -->_1 SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)):12 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 11: SORTALL#2#(tuple#2(z0,z1),z2) -> c_21(QUICKSORT#(z0)) 7: QUICKSORT#(z0) -> c_13(QUICKSORT#1#(z0)) 10: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_17(QUICKSORT#(z1)) 8: QUICKSORT#1#(::(z0,z1)) -> c_14(QUICKSORT#2#(splitqs(z0,z1),z0),SPLITQS#(z0,z1)) 9: QUICKSORT#2#(tuple#2(z0,z1),z2) -> c_16(QUICKSORT#(z0)) 12: SPLITQS#(z0,z1) -> c_27(SPLITQS#1#(z1,z0)) 13: SPLITQS#1#(::(z0,z1),z2) -> c_28(SPLITQS#(z2,z1)) **** Step 8.b:4.b:3.b:3: Decompose. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} Problem (S) - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} ***** Step 8.b:4.b:3.b:3.a:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):2 2:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):3 3:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 4:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):5 5:W:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):4 6:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 5: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) ***** Step 8.b:4.b:3.b:3.a:2: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):2 2:S:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):3 3:S:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 6:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) ***** Step 8.b:4.b:3.b:3.a:3: UsableRules. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) ***** Step 8.b:4.b:3.b:3.a:4: PredecessorEstimationCP. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) Consider the set of all dependency pairs 1: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 2: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) 3: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 4: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1)) BEST_CASE TIME (?,?) SPACE(?,?)on application of the dependency pairs {2} These cover all (indirect) predecessors of dependency pairs {1,2,3,4} their number of applications is equally bounded. The dependency pairs are shifted into the weak component. ****** Step 8.b:4.b:3.b:3.a:4.a:1: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_18) = {1}, uargs(c_19) = {1}, uargs(c_22) = {1}, uargs(c_26) = {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#,#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#,append#,append#1#,insert#,insert#1# ,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split# ,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} TcT has computed the following interpretation: p(#0) = [2] p(#AND) = [1] x1 + [2] x2 + [1] p(#CKGT) = [2] p(#COMPARE) = [1] x1 + [0] p(#EQ) = [0] p(#EQ') = [1] x1 + [1] x2 + [0] p(#EQUAL) = [1] p(#GREATER) = [1] x1 + [0] p(#GT) = [0] p(#LT) = [1] p(#and) = [2] p(#ckgt) = [0] p(#compare) = [0] p(#eq) = [2] p(#equal) = [2] p(#false) = [2] 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) = [0] p(INSERT#1) = [0] p(INSERT#2) = [1] x4 + [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) = [0] p(SPLIT#1) = [0] p(SPLITANDSORT) = [0] p(SPLITQS) = [0] p(SPLITQS#1) = [0] p(SPLITQS#2) = [0] p(SPLITQS#3) = [0] p(append) = [0] p(append#1) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [0] p(c14) = [0] p(c15) = [0] p(c16) = [1] x1 + [0] p(c17) = [0] p(c18) = [1] x1 + [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [0] p(c29) = [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [0] p(c35) = [0] p(c36) = [0] p(c37) = [0] p(c38) = [0] p(c39) = [0] p(c4) = [0] p(c40) = [1] x1 + [1] x2 + [0] p(c41) = [1] x1 + [1] x2 + [0] p(c42) = [1] x1 + [0] p(c43) = [1] x1 + [1] x2 + [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [0] p(c46) = [0] p(c47) = [1] x1 + [0] p(c48) = [1] x1 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [0] p(c51) = [1] x1 + [1] x2 + [0] p(c52) = [1] x1 + [0] p(c53) = [0] p(c54) = [1] x1 + [0] p(c55) = [1] x1 + [1] x2 + [0] p(c56) = [0] p(c57) = [1] x1 + [1] x2 + [0] p(c58) = [1] x1 + [1] x2 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c60) = [1] x1 + [0] p(c61) = [0] p(c62) = [1] x1 + [0] p(c63) = [1] x1 + [0] p(c64) = [1] x1 + [0] p(c65) = [1] x1 + [1] x2 + [0] p(c66) = [0] p(c67) = [1] x1 + [1] x2 + [0] p(c68) = [1] x1 + [0] p(c69) = [1] x1 + [1] x2 + [0] p(c7) = [0] p(c70) = [0] p(c71) = [1] x1 + [1] x2 + [0] p(c72) = [0] p(c73) = [0] p(c8) = [0] p(c9) = [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) = [2] x1 + [1] x3 + [0] 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) = [4] x1 + [2] p(split#1) = [4] x1 + [0] p(splitAndSort) = [0] p(splitqs) = [0] p(splitqs#1) = [0] p(splitqs#2) = [0] p(splitqs#3) = [0] p(tuple#2) = [1] x1 + [0] p(#AND#) = [0] p(#CKGT#) = [0] p(#COMPARE#) = [0] p(#EQ'#) = [0] p(#EQUAL#) = [0] p(#GREATER#) = [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#) = [0] p(QUICKSORT#1#) = [0] p(QUICKSORT#2#) = [0] p(SORTALL#) = [1] x1 + [2] p(SORTALL#1#) = [1] x1 + [2] p(SORTALL#2#) = [1] x2 + [2] p(SPLIT#) = [0] p(SPLIT#1#) = [0] p(SPLITANDSORT#) = [4] x1 + [7] p(SPLITQS#) = [0] p(SPLITQS#1#) = [0] p(SPLITQS#2#) = [0] p(SPLITQS#3#) = [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#) = [0] p(split#1#) = [0] p(splitAndSort#) = [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) = [1] x1 + [1] p(c_8) = [1] p(c_9) = [4] p(c_10) = [1] p(c_11) = [1] p(c_12) = [0] p(c_13) = [1] p(c_14) = [0] p(c_15) = [1] p(c_16) = [0] p(c_17) = [1] p(c_18) = [1] x1 + [0] p(c_19) = [1] x1 + [0] p(c_20) = [4] p(c_21) = [2] x1 + [1] p(c_22) = [1] x1 + [0] p(c_23) = [2] x1 + [1] p(c_24) = [2] p(c_25) = [0] p(c_26) = [1] x1 + [0] p(c_27) = [4] x1 + [0] p(c_28) = [1] p(c_29) = [0] p(c_30) = [1] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [1] p(c_36) = [0] p(c_37) = [1] p(c_38) = [1] p(c_39) = [1] p(c_40) = [1] p(c_41) = [0] p(c_42) = [4] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [2] p(c_47) = [2] p(c_48) = [1] p(c_49) = [1] x1 + [0] p(c_50) = [1] p(c_51) = [1] x1 + [0] p(c_52) = [4] p(c_53) = [4] p(c_54) = [4] p(c_55) = [0] p(c_56) = [0] p(c_57) = [1] p(c_58) = [1] p(c_59) = [4] p(c_60) = [0] p(c_61) = [2] x1 + [2] p(c_62) = [1] p(c_63) = [0] p(c_64) = [1] x1 + [2] p(c_65) = [0] p(c_66) = [2] p(c_67) = [4] p(c_68) = [1] p(c_69) = [0] p(c_70) = [0] p(c_71) = [0] p(c_72) = [1] p(c_73) = [1] x1 + [1] x3 + [1] p(c_74) = [1] x2 + [4] x4 + [1] p(c_75) = [4] p(c_76) = [0] p(c_77) = [2] p(c_78) = [1] p(c_79) = [1] p(c_80) = [1] p(c_81) = [0] p(c_82) = [2] p(c_83) = [1] p(c_84) = [1] p(c_85) = [2] p(c_86) = [0] p(c_87) = [1] x1 + [0] p(c_88) = [4] p(c_89) = [2] p(c_90) = [1] p(c_91) = [1] p(c_92) = [0] p(c_93) = [4] x1 + [0] p(c_94) = [0] p(c_95) = [4] p(c_96) = [0] p(c_97) = [1] p(c_98) = [0] p(c_99) = [1] x1 + [1] p(c_100) = [0] p(c_101) = [2] p(c_102) = [0] p(c_103) = [1] x1 + [0] p(c_104) = [1] p(c_105) = [1] p(c_106) = [2] x1 + [1] x2 + [4] x3 + [0] p(c_107) = [1] p(c_108) = [1] p(c_109) = [2] p(c_110) = [0] p(c_111) = [1] p(c_112) = [1] p(c_113) = [1] p(c_114) = [1] p(c_115) = [0] p(c_116) = [1] p(c_117) = [4] x1 + [2] p(c_118) = [1] p(c_119) = [0] p(c_120) = [1] x1 + [1] p(c_121) = [1] x1 + [1] p(c_122) = [1] p(c_123) = [2] p(c_124) = [2] x2 + [2] p(c_125) = [4] p(c_126) = [0] p(c_127) = [0] p(c_128) = [1] x1 + [0] p(c_129) = [0] p(c_130) = [2] x1 + [1] p(c_131) = [2] x1 + [1] p(c_132) = [4] x1 + [0] p(c_133) = [4] p(c_134) = [1] x2 + [0] p(c_135) = [1] x1 + [1] p(c_136) = [1] x1 + [0] p(c_137) = [1] p(c_138) = [4] x1 + [1] p(c_139) = [1] x1 + [0] p(c_140) = [1] x1 + [1] p(c_141) = [0] p(c_142) = [4] x2 + [1] p(c_143) = [2] p(c_144) = [2] Following rules are strictly oriented: SORTALL#1#(::(z0,z1)) = [1] z1 + [4] > [1] z1 + [2] = c_19(SORTALL#2#(z0,z1)) Following rules are (at-least) weakly oriented: SORTALL#(z0) = [1] z0 + [2] >= [1] z0 + [2] = c_18(SORTALL#1#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) = [1] z2 + [2] >= [1] z2 + [2] = c_22(SORTALL#(z2)) SPLITANDSORT#(z0) = [4] z0 + [7] >= [4] z0 + [4] = c_26(SORTALL#(split(z0))) #and(#false(),#false()) = [2] >= [2] = #false() #and(#false(),#true()) = [2] >= [2] = #false() #and(#true(),#false()) = [2] >= [2] = #false() #and(#true(),#true()) = [2] >= [1] = #true() #eq(#0(),#0()) = [2] >= [1] = #true() #eq(#0(),#neg(z0)) = [2] >= [2] = #false() #eq(#0(),#pos(z0)) = [2] >= [2] = #false() #eq(#0(),#s(z0)) = [2] >= [2] = #false() #eq(#neg(z0),#0()) = [2] >= [2] = #false() #eq(#neg(z0),#neg(z1)) = [2] >= [2] = #eq(z0,z1) #eq(#neg(z0),#pos(z1)) = [2] >= [2] = #false() #eq(#pos(z0),#0()) = [2] >= [2] = #false() #eq(#pos(z0),#neg(z1)) = [2] >= [2] = #false() #eq(#pos(z0),#pos(z1)) = [2] >= [2] = #eq(z0,z1) #eq(#s(z0),#0()) = [2] >= [2] = #false() #eq(#s(z0),#s(z1)) = [2] >= [2] = #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) = [2] >= [2] = #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) = [2] >= [2] = #false() #eq(::(z0,z1),tuple#2(z2,z3)) = [2] >= [2] = #false() #eq(nil(),::(z0,z1)) = [2] >= [2] = #false() #eq(nil(),nil()) = [2] >= [1] = #true() #eq(nil(),tuple#2(z0,z1)) = [2] >= [2] = #false() #eq(tuple#2(z0,z1),::(z2,z3)) = [2] >= [2] = #false() #eq(tuple#2(z0,z1),nil()) = [2] >= [2] = #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) = [2] >= [2] = #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) = [2] >= [2] = #eq(z0,z1) insert(z0,z1) = [1] z1 + [2] >= [1] z1 + [2] = insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) = [1] z2 + [2] >= [1] z2 + [2] = insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) = [1] z1 + [4] >= [1] z1 + [4] = insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) = [2] >= [2] = ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) = [1] z3 + [4] >= [1] z3 + [4] = insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) = [1] z1 + [4] >= [1] z1 + [4] = ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) = [1] z1 + [2] >= [1] z1 + [2] = ::(tuple#2(::(z2,z3),z0),z1) split(z0) = [4] z0 + [2] >= [4] z0 + [0] = split#1(z0) split#1(::(z0,z1)) = [4] z1 + [8] >= [4] z1 + [4] = insert(z0,split(z1)) split#1(nil()) = [0] >= [0] = nil() ****** Step 8.b:4.b:3.b:3.a:4.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak DPs: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ****** Step 8.b:4.b:3.b:3.a:4.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):2 2:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):3 3:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 4:W:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):1 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0))) 1: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 3: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 2: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) ****** Step 8.b:4.b:3.b:3.a:4.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ***** Step 8.b:4.b:3.b:3.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak DPs: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):2 2:S:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 3:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):4 -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 4:W:SORTALL#(z0) -> c_18(SORTALL#1#(z0)) -->_1 SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)):5 5:W:SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) -->_1 SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)):6 6:W:SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) -->_1 SORTALL#(z0) -> c_18(SORTALL#1#(z0)):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: SORTALL#(z0) -> c_18(SORTALL#1#(z0)) 6: SORTALL#2#(tuple#2(z0,z1),z2) -> c_22(SORTALL#(z2)) 5: SORTALL#1#(::(z0,z1)) -> c_19(SORTALL#2#(z0,z1)) ***** Step 8.b:4.b:3.b:3.b:2: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):2 2:S:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 3:S:SPLITANDSORT#(z0) -> c_26(SORTALL#(split(z0)),SPLIT#(z0)) -->_2 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) ***** Step 8.b:4.b:3.b:3.b:3: UsableRules. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #ckgt(#EQ()) -> #false() #ckgt(#GT()) -> #true() #ckgt(#LT()) -> #false() #compare(#0(),#0()) -> #EQ() #compare(#0(),#neg(z0)) -> #GT() #compare(#0(),#pos(z0)) -> #LT() #compare(#0(),#s(z0)) -> #LT() #compare(#neg(z0),#0()) -> #LT() #compare(#neg(z0),#neg(z1)) -> #compare(z1,z0) #compare(#neg(z0),#pos(z1)) -> #LT() #compare(#pos(z0),#0()) -> #GT() #compare(#pos(z0),#neg(z1)) -> #GT() #compare(#pos(z0),#pos(z1)) -> #compare(z0,z1) #compare(#s(z0),#0()) -> #GT() #compare(#s(z0),#s(z1)) -> #compare(z0,z1) #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),tuple#2(z2,z3)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),tuple#2(z0,z1)) -> #false() #eq(tuple#2(z0,z1),::(z2,z3)) -> #false() #eq(tuple#2(z0,z1),nil()) -> #false() #eq(tuple#2(z0,z1),tuple#2(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #equal(z0,z1) -> #eq(z0,z1) #greater(z0,z1) -> #ckgt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z0,z1,z0) insert#1(tuple#2(z0,z1),z2,z3) -> insert#2(z2,z1,z0,z3) insert#2(::(z0,z1),z2,z3,z4) -> insert#3(z0,z2,z1,z3,z4) insert#2(nil(),z0,z1,z2) -> ::(tuple#2(::(z1,nil()),z0),nil()) insert#3(tuple#2(z0,z1),z2,z3,z4,z5) -> insert#4(#equal(z1,z2),z1,z3,z4,z0,z5) insert#4(#false(),z0,z1,z2,z3,z4) -> ::(tuple#2(z3,z0),insert(z4,z1)) insert#4(#true(),z0,z1,z2,z3,z4) -> ::(tuple#2(::(z2,z3),z0),z1) split(z0) -> split#1(z0) split#1(::(z0,z1)) -> insert(z0,split(z1)) split#1(nil()) -> nil() splitqs(z0,z1) -> splitqs#1(z1,z0) splitqs#1(::(z0,z1),z2) -> splitqs#2(splitqs(z2,z1),z2,z0) splitqs#1(nil(),z0) -> tuple#2(nil(),nil()) splitqs#2(tuple#2(z0,z1),z2,z3) -> splitqs#3(#greater(z3,z2),z0,z1,z3) splitqs#3(#false(),z0,z1,z2) -> tuple#2(::(z2,z0),z1) splitqs#3(#true(),z0,z1,z2) -> tuple#2(z0,::(z2,z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) ***** Step 8.b:4.b:3.b:3.b:4: Decompose. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} Problem (S) - Strict DPs: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2 ,INSERT#/2,INSERT#1#/3,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2 ,SORTALL#/1,SORTALL#1#/1,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2 ,SPLITQS#2#/3,SPLITQS#3#/4,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6 ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,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,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0 ,c20/0,c21/0,c22/0,c23/0,c24/1,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0 ,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2 ,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2 ,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1 ,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1,c_29/0,c_30/3,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/0,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1 ,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0 ,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0 ,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0 ,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0 ,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1 ,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1 ,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3# ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1# ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg ,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29 ,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53 ,c54,c55,c56,c57,c58,c59,c6,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} ****** Step 8.b:4.b:3.b:3.b:4.a:1: PredecessorEstimationCP. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 2: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) Consider the set of all dependency pairs 1: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 2: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) 3: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1)) BEST_CASE TIME (?,?) 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. ******* Step 8.b:4.b:3.b:3.b:4.a:1.a:1: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) - Weak DPs: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_23) = {1}, uargs(c_24) = {1}, uargs(c_26) = {1} Following symbols are considered usable: {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,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] p(#AND) = [0] p(#CKGT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#EQ') = [0] p(#EQUAL) = [0] p(#GREATER) = [0] p(#GT) = [1] p(#LT) = [0] p(#and) = [0] p(#ckgt) = [0] p(#compare) = [2] x2 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#greater) = [0] p(#neg) = [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [8] p(APPEND) = [0] p(APPEND#1) = [0] p(INSERT) = [0] p(INSERT#1) = [2] x2 + [1] x3 + [0] p(INSERT#2) = [0] p(INSERT#3) = [0] p(INSERT#4) = [1] x4 + [0] p(QUICKSORT) = [0] p(QUICKSORT#1) = [0] p(QUICKSORT#2) = [0] p(SORTALL) = [1] p(SORTALL#1) = [2] p(SORTALL#2) = [1] x2 + [1] p(SPLIT) = [2] p(SPLIT#1) = [0] p(SPLITANDSORT) = [2] x1 + [0] p(SPLITQS) = [1] x1 + [0] p(SPLITQS#1) = [1] x1 + [1] x2 + [1] p(SPLITQS#2) = [0] p(SPLITQS#3) = [0] p(append) = [0] p(append#1) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [1] p(c14) = [0] p(c15) = [0] p(c16) = [4] p(c17) = [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [0] p(c33) = [0] p(c34) = [0] p(c35) = [0] p(c36) = [0] p(c37) = [0] p(c38) = [0] p(c39) = [0] p(c4) = [0] p(c40) = [1] x2 + [0] p(c41) = [1] x1 + [1] x2 + [0] p(c42) = [0] p(c43) = [1] x2 + [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [0] p(c46) = [0] p(c47) = [1] x1 + [0] p(c48) = [1] x1 + [0] p(c49) = [0] p(c5) = [0] p(c50) = [0] p(c51) = [1] x1 + [0] p(c52) = [1] x1 + [0] p(c53) = [0] p(c54) = [0] p(c55) = [0] p(c56) = [0] p(c57) = [1] x1 + [1] x2 + [0] p(c58) = [1] x2 + [0] p(c59) = [0] p(c6) = [0] p(c60) = [1] x1 + [0] p(c61) = [0] p(c62) = [0] p(c63) = [0] p(c64) = [1] x1 + [0] p(c65) = [1] x1 + [0] p(c66) = [0] p(c67) = [0] p(c68) = [1] x1 + [0] p(c69) = [1] x1 + [1] x2 + [0] p(c7) = [0] p(c70) = [0] p(c71) = [0] p(c72) = [0] p(c73) = [0] p(c8) = [0] p(c9) = [0] p(insert) = [0] p(insert#1) = [0] p(insert#2) = [1] x3 + [1] x4 + [0] p(insert#3) = [1] x1 + [1] x2 + [1] p(insert#4) = [0] 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) = [0] p(split#1) = [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#) = [1] x1 + [2] x2 + [2] p(#CKGT#) = [1] x1 + [2] p(#COMPARE#) = [2] x1 + [4] x2 + [1] p(#EQ'#) = [1] p(#EQUAL#) = [1] x1 + [1] x2 + [4] p(#GREATER#) = [1] p(#and#) = [4] x1 + [8] x2 + [1] p(#ckgt#) = [1] x1 + [0] p(#compare#) = [8] x1 + [1] p(#eq#) = [2] x1 + [1] x2 + [0] p(#equal#) = [2] x2 + [1] p(#greater#) = [1] p(APPEND#) = [8] 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#) = [2] x1 + [0] p(SPLIT#1#) = [2] x1 + [0] p(SPLITANDSORT#) = [2] x1 + [9] p(SPLITQS#) = [0] p(SPLITQS#1#) = [0] p(SPLITQS#2#) = [0] p(SPLITQS#3#) = [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#) = [0] p(split#1#) = [0] p(splitAndSort#) = [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) = [0] p(c_22) = [0] p(c_23) = [1] x1 + [0] p(c_24) = [1] x1 + [14] p(c_25) = [0] p(c_26) = [1] x1 + [1] p(c_27) = [1] x1 + [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [1] x1 + [2] x2 + [1] x3 + [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) = [1] x1 + [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) = [2] x1 + [0] p(c_52) = [0] p(c_53) = [0] p(c_54) = [0] p(c_55) = [0] p(c_56) = [0] p(c_57) = [1] x1 + [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [0] p(c_61) = [2] x1 + [0] p(c_62) = [0] p(c_63) = [0] p(c_64) = [1] x1 + [1] x2 + [8] x4 + [0] p(c_65) = [1] x1 + [1] x2 + [0] p(c_66) = [0] p(c_67) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [0] p(c_74) = [0] p(c_75) = [0] p(c_76) = [0] p(c_77) = [0] p(c_78) = [0] p(c_79) = [0] p(c_80) = [2] p(c_81) = [0] p(c_82) = [0] p(c_83) = [0] p(c_84) = [0] p(c_85) = [0] p(c_86) = [0] p(c_87) = [0] p(c_88) = [0] p(c_89) = [0] p(c_90) = [0] p(c_91) = [0] p(c_92) = [0] p(c_93) = [0] p(c_94) = [0] p(c_95) = [0] p(c_96) = [0] p(c_97) = [0] p(c_98) = [0] p(c_99) = [0] p(c_100) = [0] p(c_101) = [0] p(c_102) = [0] p(c_103) = [0] p(c_104) = [0] p(c_105) = [0] p(c_106) = [0] p(c_107) = [0] p(c_108) = [0] p(c_109) = [0] p(c_110) = [0] p(c_111) = [0] p(c_112) = [0] p(c_113) = [0] p(c_114) = [0] p(c_115) = [0] p(c_116) = [0] p(c_117) = [0] p(c_118) = [0] p(c_119) = [0] p(c_120) = [0] p(c_121) = [0] p(c_122) = [0] p(c_123) = [0] p(c_124) = [0] p(c_125) = [0] p(c_126) = [0] p(c_127) = [0] p(c_128) = [0] p(c_129) = [0] p(c_130) = [0] p(c_131) = [0] p(c_132) = [0] p(c_133) = [0] p(c_134) = [0] p(c_135) = [0] p(c_136) = [0] p(c_137) = [0] p(c_138) = [0] p(c_139) = [0] p(c_140) = [0] p(c_141) = [0] p(c_142) = [0] p(c_143) = [0] p(c_144) = [2] Following rules are strictly oriented: SPLIT#1#(::(z0,z1)) = [2] z0 + [2] z1 + [16] > [2] z1 + [14] = c_24(SPLIT#(z1)) Following rules are (at-least) weakly oriented: SPLIT#(z0) = [2] z0 + [0] >= [2] z0 + [0] = c_23(SPLIT#1#(z0)) SPLITANDSORT#(z0) = [2] z0 + [9] >= [2] z0 + [1] = c_26(SPLIT#(z0)) ******* Step 8.b:4.b:3.b:3.b:4.a:1.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) - Weak DPs: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () ******* Step 8.b:4.b:3.b:3.b:4.a:1.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):2 2:W:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 3:W:SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 3: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) 1: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 2: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) ******* Step 8.b:4.b:3.b:3.b:4.a:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ****** Step 8.b:4.b:3.b:3.b:4.b:1: PredecessorEstimation. WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1} by application of Pre({1}) = {}. Here rules are labelled as follows: 1: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) 2: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 3: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) ****** Step 8.b:4.b:3.b:3.b:4.b:2: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:SPLIT#(z0) -> c_23(SPLIT#1#(z0)) -->_1 SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)):2 2:W:SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 3:W:SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) -->_1 SPLIT#(z0) -> c_23(SPLIT#1#(z0)):1 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 3: SPLITANDSORT#(z0) -> c_26(SPLIT#(z0)) 1: SPLIT#(z0) -> c_23(SPLIT#1#(z0)) 2: SPLIT#1#(::(z0,z1)) -> c_24(SPLIT#(z1)) ****** Step 8.b:4.b:3.b:3.b:4.b:3: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Signature: {#AND/2,#CKGT/1,#COMPARE/2,#EQ'/2,#EQUAL/2,#GREATER/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2 ,APPEND/2,APPEND#1/2,INSERT/2,INSERT#1/3,INSERT#2/4,INSERT#3/5,INSERT#4/6,QUICKSORT/1,QUICKSORT#1/1 ,QUICKSORT#2/2,SORTALL/1,SORTALL#1/1,SORTALL#2/2,SPLIT/1,SPLIT#1/1,SPLITANDSORT/1,SPLITQS/2,SPLITQS#1/2 ,SPLITQS#2/3,SPLITQS#3/4,append/2,append#1/2,insert/2,insert#1/3,insert#2/4,insert#3/5,insert#4/6 ,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,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 ,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,APPEND#/2,APPEND#1#/2,INSERT#/2,INSERT#1#/3 ,INSERT#2#/4,INSERT#3#/5,INSERT#4#/6,QUICKSORT#/1,QUICKSORT#1#/1,QUICKSORT#2#/2,SORTALL#/1,SORTALL#1#/1 ,SORTALL#2#/2,SPLIT#/1,SPLIT#1#/1,SPLITANDSORT#/1,SPLITQS#/2,SPLITQS#1#/2,SPLITQS#2#/3,SPLITQS#3#/4 ,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6,quicksort#/1,quicksort#1#/1 ,quicksort#2#/2,sortAll#/1,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 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/0,c15/0,c16/1,c17/0,c18/1,c19/0,c2/0,c20/0,c21/0,c22/0,c23/0,c24/1 ,c25/0,c26/0,c27/0,c28/1,c29/0,c3/0,c30/1,c31/2,c32/2,c33/0,c34/0,c35/0,c36/0,c37/0,c38/0,c39/0,c4/0,c40/2 ,c41/2,c42/1,c43/2,c44/1,c45/1,c46/0,c47/1,c48/1,c49/1,c5/0,c50/0,c51/2,c52/1,c53/0,c54/1,c55/2,c56/0,c57/2 ,c58/2,c59/1,c6/0,c60/1,c61/0,c62/1,c63/1,c64/1,c65/2,c66/0,c67/2,c68/1,c69/2,c7/0,c70/0,c71/2,c72/0,c73/0 ,c8/0,c9/0,nil/0,tuple#2/2,c_1/1,c_2/3,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/1,c_17/1,c_18/1,c_19/1,c_20/0,c_21/1,c_22/1,c_23/1,c_24/1,c_25/0,c_26/1,c_27/1,c_28/1 ,c_29/0,c_30/3,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/0 ,c_44/0,c_45/1,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/1,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/1,c_64/4,c_65/4,c_66/0,c_67/0,c_68/0,c_69/0,c_70/0,c_71/0,c_72/0,c_73/4 ,c_74/4,c_75/0,c_76/0,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/1,c_88/0 ,c_89/0,c_90/0,c_91/1,c_92/0,c_93/1,c_94/0,c_95/0,c_96/0,c_97/0,c_98/0,c_99/1,c_100/0,c_101/0,c_102/0 ,c_103/1,c_104/0,c_105/1,c_106/3,c_107/0,c_108/0,c_109/0,c_110/0,c_111/0,c_112/0,c_113/0,c_114/3,c_115/1 ,c_116/2,c_117/1,c_118/1,c_119/0,c_120/1,c_121/1,c_122/1,c_123/0,c_124/2,c_125/1,c_126/0,c_127/1,c_128/2 ,c_129/0,c_130/3,c_131/1,c_132/1,c_133/0,c_134/2,c_135/1,c_136/2,c_137/0,c_138/2,c_139/1,c_140/2,c_141/0 ,c_142/2,c_143/0,c_144/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#CKGT#,#COMPARE#,#EQ'#,#EQUAL#,#GREATER#,#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#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4# ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs# ,splitqs#1#,splitqs#2#,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,c,c1,c10 ,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35 ,c36,c37,c38,c39,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6 ,c60,c61,c62,c63,c64,c65,c66,c67,c68,c69,c7,c70,c71,c72,c73,c8,c9,nil,tuple#2} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^4))