WORST_CASE(?,O(n^2)) * Step 1: Sum. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) - Weak TRS: #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1 ,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1 ,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0,c6/0,c7/0,c8/1,c9/0,nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS,#CKLT,#COMPARE,#LESS,#abs,#cklt,#compare,#less ,INSERT,INSERT#1,INSERT#2,INSERTD,INSERTD#1,INSERTD#2,INSERTIONSORT,INSERTIONSORT#1,INSERTIONSORTD ,INSERTIONSORTD#1,TESTINSERTIONSORT,TESTINSERTIONSORTD,TESTLIST,insert,insert#1,insert#2,insertD,insertD#1 ,insertD#2,insertionsort,insertionsort#1,insertionsortD,insertionsortD#1,testInsertionsort ,testInsertionsortD,testList} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DependencyPairs. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) - Weak TRS: #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2 ,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1 ,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1 ,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0,c6/0,c7/0,c8/1,c9/0,nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS,#CKLT,#COMPARE,#LESS,#abs,#cklt,#compare,#less ,INSERT,INSERT#1,INSERT#2,INSERTD,INSERTD#1,INSERTD#2,INSERTIONSORT,INSERTIONSORT#1,INSERTIONSORTD ,INSERTIONSORTD#1,TESTINSERTIONSORT,TESTINSERTIONSORTD,TESTLIST,insert,insert#1,insert#2,insertD,insertD#1 ,insertD#2,insertionsort,insertionsort#1,insertionsortD,insertionsortD#1,testInsertionsort ,testInsertionsortD,testList} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs #ABS#(#0()) -> c_1() #ABS#(#neg(z0)) -> c_2() #ABS#(#pos(z0)) -> c_3() #ABS#(#s(z0)) -> c_4() #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERT#1#(nil(),z0) -> c_8() INSERT#2#(#false(),z0,z1,z2) -> c_9() INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERTD#1#(nil(),z0) -> c_13() INSERTD#2#(#false(),z0,z1,z2) -> c_14() INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) INSERTIONSORT#1#(nil()) -> c_18() INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) INSERTIONSORTD#1#(nil()) -> c_21() TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTLIST#(z0) -> c_24(#ABS#(#0())) TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) Weak DPs #CKLT#(#EQ()) -> c_34() #CKLT#(#GT()) -> c_35() #CKLT#(#LT()) -> c_36() #COMPARE#(#0(),#0()) -> c_37() #COMPARE#(#0(),#neg(z0)) -> c_38() #COMPARE#(#0(),#pos(z0)) -> c_39() #COMPARE#(#0(),#s(z0)) -> c_40() #COMPARE#(#neg(z0),#0()) -> c_41() #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_43() #COMPARE#(#pos(z0),#0()) -> c_44() #COMPARE#(#pos(z0),#neg(z1)) -> c_45() #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_47() #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) #abs#(#0()) -> c_49() #abs#(#neg(z0)) -> c_50() #abs#(#pos(z0)) -> c_51() #abs#(#s(z0)) -> c_52() #cklt#(#EQ()) -> c_53() #cklt#(#GT()) -> c_54() #cklt#(#LT()) -> c_55() #compare#(#0(),#0()) -> c_56() #compare#(#0(),#neg(z0)) -> c_57() #compare#(#0(),#pos(z0)) -> c_58() #compare#(#0(),#s(z0)) -> c_59() #compare#(#neg(z0),#0()) -> c_60() #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_62() #compare#(#pos(z0),#0()) -> c_63() #compare#(#pos(z0),#neg(z1)) -> c_64() #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_66() #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) insert#(z0,z1) -> c_69(insert#1#(z1,z0)) insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insert#1#(nil(),z0) -> c_71() insert#2#(#false(),z0,z1,z2) -> c_72() insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insertD#1#(nil(),z0) -> c_76() insertD#2#(#false(),z0,z1,z2) -> c_77() insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) insertionsort#(z0) -> c_79(insertionsort#1#(z0)) insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) insertionsort#1#(nil()) -> c_81() insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) insertionsortD#1#(nil()) -> c_84() testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) and mark the set of starting terms. * Step 3: PredecessorEstimation. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: #ABS#(#0()) -> c_1() #ABS#(#neg(z0)) -> c_2() #ABS#(#pos(z0)) -> c_3() #ABS#(#s(z0)) -> c_4() #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERT#1#(nil(),z0) -> c_8() INSERT#2#(#false(),z0,z1,z2) -> c_9() INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERTD#1#(nil(),z0) -> c_13() INSERTD#2#(#false(),z0,z1,z2) -> c_14() INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) INSERTIONSORT#1#(nil()) -> c_18() INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) INSERTIONSORTD#1#(nil()) -> c_21() TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTLIST#(z0) -> c_24(#ABS#(#0())) TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) - Weak DPs: #CKLT#(#EQ()) -> c_34() #CKLT#(#GT()) -> c_35() #CKLT#(#LT()) -> c_36() #COMPARE#(#0(),#0()) -> c_37() #COMPARE#(#0(),#neg(z0)) -> c_38() #COMPARE#(#0(),#pos(z0)) -> c_39() #COMPARE#(#0(),#s(z0)) -> c_40() #COMPARE#(#neg(z0),#0()) -> c_41() #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_43() #COMPARE#(#pos(z0),#0()) -> c_44() #COMPARE#(#pos(z0),#neg(z1)) -> c_45() #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_47() #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) #abs#(#0()) -> c_49() #abs#(#neg(z0)) -> c_50() #abs#(#pos(z0)) -> c_51() #abs#(#s(z0)) -> c_52() #cklt#(#EQ()) -> c_53() #cklt#(#GT()) -> c_54() #cklt#(#LT()) -> c_55() #compare#(#0(),#0()) -> c_56() #compare#(#0(),#neg(z0)) -> c_57() #compare#(#0(),#pos(z0)) -> c_58() #compare#(#0(),#s(z0)) -> c_59() #compare#(#neg(z0),#0()) -> c_60() #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_62() #compare#(#pos(z0),#0()) -> c_63() #compare#(#pos(z0),#neg(z1)) -> c_64() #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_66() #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) insert#(z0,z1) -> c_69(insert#1#(z1,z0)) insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insert#1#(nil(),z0) -> c_71() insert#2#(#false(),z0,z1,z2) -> c_72() insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insertD#1#(nil(),z0) -> c_76() insertD#2#(#false(),z0,z1,z2) -> c_77() insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) insertionsort#(z0) -> c_79(insertionsort#1#(z0)) insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) insertionsort#1#(nil()) -> c_81() insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) insertionsortD#1#(nil()) -> c_84() testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) - Weak TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/3,c_8/0,c_9/0,c_10/1,c_11/1,c_12/3,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/3,c_18/0,c_19/1,c_20/3,c_21/0,c_22/3,c_23/3,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,3,4,5,8,9,13,14,18,21} by application of Pre({1,2,3,4,5,8,9,13,14,18,21}) = {6,7,11,12,16,19,24,25,26,27,28,29,30,31,32,33}. Here rules are labelled as follows: 1: #ABS#(#0()) -> c_1() 2: #ABS#(#neg(z0)) -> c_2() 3: #ABS#(#pos(z0)) -> c_3() 4: #ABS#(#s(z0)) -> c_4() 5: #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 6: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) 7: INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) 8: INSERT#1#(nil(),z0) -> c_8() 9: INSERT#2#(#false(),z0,z1,z2) -> c_9() 10: INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) 11: INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) 12: INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) 13: INSERTD#1#(nil(),z0) -> c_13() 14: INSERTD#2#(#false(),z0,z1,z2) -> c_14() 15: INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) 16: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) 17: INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) 18: INSERTIONSORT#1#(nil()) -> c_18() 19: INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) 20: INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) 21: INSERTIONSORTD#1#(nil()) -> c_21() 22: TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) 23: TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())) ,testList#(#unit()) ,TESTLIST#(#unit())) 24: TESTLIST#(z0) -> c_24(#ABS#(#0())) 25: TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) 26: TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) 27: TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) 28: TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) 29: TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) 30: TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) 31: TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) 32: TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) 33: TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) 34: #CKLT#(#EQ()) -> c_34() 35: #CKLT#(#GT()) -> c_35() 36: #CKLT#(#LT()) -> c_36() 37: #COMPARE#(#0(),#0()) -> c_37() 38: #COMPARE#(#0(),#neg(z0)) -> c_38() 39: #COMPARE#(#0(),#pos(z0)) -> c_39() 40: #COMPARE#(#0(),#s(z0)) -> c_40() 41: #COMPARE#(#neg(z0),#0()) -> c_41() 42: #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) 43: #COMPARE#(#neg(z0),#pos(z1)) -> c_43() 44: #COMPARE#(#pos(z0),#0()) -> c_44() 45: #COMPARE#(#pos(z0),#neg(z1)) -> c_45() 46: #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) 47: #COMPARE#(#s(z0),#0()) -> c_47() 48: #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) 49: #abs#(#0()) -> c_49() 50: #abs#(#neg(z0)) -> c_50() 51: #abs#(#pos(z0)) -> c_51() 52: #abs#(#s(z0)) -> c_52() 53: #cklt#(#EQ()) -> c_53() 54: #cklt#(#GT()) -> c_54() 55: #cklt#(#LT()) -> c_55() 56: #compare#(#0(),#0()) -> c_56() 57: #compare#(#0(),#neg(z0)) -> c_57() 58: #compare#(#0(),#pos(z0)) -> c_58() 59: #compare#(#0(),#s(z0)) -> c_59() 60: #compare#(#neg(z0),#0()) -> c_60() 61: #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) 62: #compare#(#neg(z0),#pos(z1)) -> c_62() 63: #compare#(#pos(z0),#0()) -> c_63() 64: #compare#(#pos(z0),#neg(z1)) -> c_64() 65: #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) 66: #compare#(#s(z0),#0()) -> c_66() 67: #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) 68: #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) 69: insert#(z0,z1) -> c_69(insert#1#(z1,z0)) 70: insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 71: insert#1#(nil(),z0) -> c_71() 72: insert#2#(#false(),z0,z1,z2) -> c_72() 73: insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) 74: insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) 75: insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 76: insertD#1#(nil(),z0) -> c_76() 77: insertD#2#(#false(),z0,z1,z2) -> c_77() 78: insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) 79: insertionsort#(z0) -> c_79(insertionsort#1#(z0)) 80: insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) 81: insertionsort#1#(nil()) -> c_81() 82: insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) 83: insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) 84: insertionsortD#1#(nil()) -> c_84() 85: testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) 86: testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) 87: testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) * Step 4: PredecessorEstimation. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTLIST#(z0) -> c_24(#ABS#(#0())) TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) - Weak DPs: #ABS#(#0()) -> c_1() #ABS#(#neg(z0)) -> c_2() #ABS#(#pos(z0)) -> c_3() #ABS#(#s(z0)) -> c_4() #CKLT#(#EQ()) -> c_34() #CKLT#(#GT()) -> c_35() #CKLT#(#LT()) -> c_36() #COMPARE#(#0(),#0()) -> c_37() #COMPARE#(#0(),#neg(z0)) -> c_38() #COMPARE#(#0(),#pos(z0)) -> c_39() #COMPARE#(#0(),#s(z0)) -> c_40() #COMPARE#(#neg(z0),#0()) -> c_41() #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_43() #COMPARE#(#pos(z0),#0()) -> c_44() #COMPARE#(#pos(z0),#neg(z1)) -> c_45() #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_47() #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) #abs#(#0()) -> c_49() #abs#(#neg(z0)) -> c_50() #abs#(#pos(z0)) -> c_51() #abs#(#s(z0)) -> c_52() #cklt#(#EQ()) -> c_53() #cklt#(#GT()) -> c_54() #cklt#(#LT()) -> c_55() #compare#(#0(),#0()) -> c_56() #compare#(#0(),#neg(z0)) -> c_57() #compare#(#0(),#pos(z0)) -> c_58() #compare#(#0(),#s(z0)) -> c_59() #compare#(#neg(z0),#0()) -> c_60() #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_62() #compare#(#pos(z0),#0()) -> c_63() #compare#(#pos(z0),#neg(z1)) -> c_64() #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_66() #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) INSERT#1#(nil(),z0) -> c_8() INSERT#2#(#false(),z0,z1,z2) -> c_9() INSERTD#1#(nil(),z0) -> c_13() INSERTD#2#(#false(),z0,z1,z2) -> c_14() INSERTIONSORT#1#(nil()) -> c_18() INSERTIONSORTD#1#(nil()) -> c_21() insert#(z0,z1) -> c_69(insert#1#(z1,z0)) insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insert#1#(nil(),z0) -> c_71() insert#2#(#false(),z0,z1,z2) -> c_72() insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insertD#1#(nil(),z0) -> c_76() insertD#2#(#false(),z0,z1,z2) -> c_77() insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) insertionsort#(z0) -> c_79(insertionsort#1#(z0)) insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) insertionsort#1#(nil()) -> c_81() insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) insertionsortD#1#(nil()) -> c_84() testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) - Weak TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/3,c_8/0,c_9/0,c_10/1,c_11/1,c_12/3,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/3,c_18/0,c_19/1,c_20/3,c_21/0,c_22/3,c_23/3,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {13,14,15,16,17,18,19,20,21,22} by application of Pre({13,14,15,16,17,18,19,20,21,22}) = {11,12}. Here rules are labelled as follows: 1: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) 2: INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) 3: INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) 4: INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) 5: INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) 6: INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) 7: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) 8: INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) 9: INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) 10: INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) 11: TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) 12: TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())) ,testList#(#unit()) ,TESTLIST#(#unit())) 13: TESTLIST#(z0) -> c_24(#ABS#(#0())) 14: TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) 15: TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) 16: TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) 17: TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) 18: TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) 19: TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) 20: TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) 21: TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) 22: TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) 23: #ABS#(#0()) -> c_1() 24: #ABS#(#neg(z0)) -> c_2() 25: #ABS#(#pos(z0)) -> c_3() 26: #ABS#(#s(z0)) -> c_4() 27: #CKLT#(#EQ()) -> c_34() 28: #CKLT#(#GT()) -> c_35() 29: #CKLT#(#LT()) -> c_36() 30: #COMPARE#(#0(),#0()) -> c_37() 31: #COMPARE#(#0(),#neg(z0)) -> c_38() 32: #COMPARE#(#0(),#pos(z0)) -> c_39() 33: #COMPARE#(#0(),#s(z0)) -> c_40() 34: #COMPARE#(#neg(z0),#0()) -> c_41() 35: #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) 36: #COMPARE#(#neg(z0),#pos(z1)) -> c_43() 37: #COMPARE#(#pos(z0),#0()) -> c_44() 38: #COMPARE#(#pos(z0),#neg(z1)) -> c_45() 39: #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) 40: #COMPARE#(#s(z0),#0()) -> c_47() 41: #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) 42: #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 43: #abs#(#0()) -> c_49() 44: #abs#(#neg(z0)) -> c_50() 45: #abs#(#pos(z0)) -> c_51() 46: #abs#(#s(z0)) -> c_52() 47: #cklt#(#EQ()) -> c_53() 48: #cklt#(#GT()) -> c_54() 49: #cklt#(#LT()) -> c_55() 50: #compare#(#0(),#0()) -> c_56() 51: #compare#(#0(),#neg(z0)) -> c_57() 52: #compare#(#0(),#pos(z0)) -> c_58() 53: #compare#(#0(),#s(z0)) -> c_59() 54: #compare#(#neg(z0),#0()) -> c_60() 55: #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) 56: #compare#(#neg(z0),#pos(z1)) -> c_62() 57: #compare#(#pos(z0),#0()) -> c_63() 58: #compare#(#pos(z0),#neg(z1)) -> c_64() 59: #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) 60: #compare#(#s(z0),#0()) -> c_66() 61: #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) 62: #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) 63: INSERT#1#(nil(),z0) -> c_8() 64: INSERT#2#(#false(),z0,z1,z2) -> c_9() 65: INSERTD#1#(nil(),z0) -> c_13() 66: INSERTD#2#(#false(),z0,z1,z2) -> c_14() 67: INSERTIONSORT#1#(nil()) -> c_18() 68: INSERTIONSORTD#1#(nil()) -> c_21() 69: insert#(z0,z1) -> c_69(insert#1#(z1,z0)) 70: insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 71: insert#1#(nil(),z0) -> c_71() 72: insert#2#(#false(),z0,z1,z2) -> c_72() 73: insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) 74: insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) 75: insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 76: insertD#1#(nil(),z0) -> c_76() 77: insertD#2#(#false(),z0,z1,z2) -> c_77() 78: insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) 79: insertionsort#(z0) -> c_79(insertionsort#1#(z0)) 80: insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) 81: insertionsort#1#(nil()) -> c_81() 82: insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) 83: insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) 84: insertionsortD#1#(nil()) -> c_84() 85: testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) 86: testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) 87: testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) * Step 5: RemoveWeakSuffixes. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) - Weak DPs: #ABS#(#0()) -> c_1() #ABS#(#neg(z0)) -> c_2() #ABS#(#pos(z0)) -> c_3() #ABS#(#s(z0)) -> c_4() #CKLT#(#EQ()) -> c_34() #CKLT#(#GT()) -> c_35() #CKLT#(#LT()) -> c_36() #COMPARE#(#0(),#0()) -> c_37() #COMPARE#(#0(),#neg(z0)) -> c_38() #COMPARE#(#0(),#pos(z0)) -> c_39() #COMPARE#(#0(),#s(z0)) -> c_40() #COMPARE#(#neg(z0),#0()) -> c_41() #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) #COMPARE#(#neg(z0),#pos(z1)) -> c_43() #COMPARE#(#pos(z0),#0()) -> c_44() #COMPARE#(#pos(z0),#neg(z1)) -> c_45() #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) #COMPARE#(#s(z0),#0()) -> c_47() #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) #abs#(#0()) -> c_49() #abs#(#neg(z0)) -> c_50() #abs#(#pos(z0)) -> c_51() #abs#(#s(z0)) -> c_52() #cklt#(#EQ()) -> c_53() #cklt#(#GT()) -> c_54() #cklt#(#LT()) -> c_55() #compare#(#0(),#0()) -> c_56() #compare#(#0(),#neg(z0)) -> c_57() #compare#(#0(),#pos(z0)) -> c_58() #compare#(#0(),#s(z0)) -> c_59() #compare#(#neg(z0),#0()) -> c_60() #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) #compare#(#neg(z0),#pos(z1)) -> c_62() #compare#(#pos(z0),#0()) -> c_63() #compare#(#pos(z0),#neg(z1)) -> c_64() #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) #compare#(#s(z0),#0()) -> c_66() #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) INSERT#1#(nil(),z0) -> c_8() INSERT#2#(#false(),z0,z1,z2) -> c_9() INSERTD#1#(nil(),z0) -> c_13() INSERTD#2#(#false(),z0,z1,z2) -> c_14() INSERTIONSORT#1#(nil()) -> c_18() INSERTIONSORTD#1#(nil()) -> c_21() TESTLIST#(z0) -> c_24(#ABS#(#0())) TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) insert#(z0,z1) -> c_69(insert#1#(z1,z0)) insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insert#1#(nil(),z0) -> c_71() insert#2#(#false(),z0,z1,z2) -> c_72() insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) insertD#1#(nil(),z0) -> c_76() insertD#2#(#false(),z0,z1,z2) -> c_77() insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) insertionsort#(z0) -> c_79(insertionsort#1#(z0)) insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) insertionsort#1#(nil()) -> c_81() insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) insertionsortD#1#(nil()) -> c_84() testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) - Weak TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/3,c_8/0,c_9/0,c_10/1,c_11/1,c_12/3,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/3,c_18/0,c_19/1,c_20/3,c_21/0,c_22/3,c_23/3,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) -->_1 INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)):2 -->_1 INSERT#1#(nil(),z0) -> c_8():53 2:S:INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) -->_2 #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)):52 -->_3 #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)):32 -->_1 INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)):3 -->_1 INSERT#2#(#false(),z0,z1,z2) -> c_9():54 3:S:INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)):1 4:S:INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) -->_1 INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)):5 -->_1 INSERTD#1#(nil(),z0) -> c_13():55 5:S:INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) -->_2 #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)):52 -->_3 #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)):32 -->_1 INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)):6 -->_1 INSERTD#2#(#false(),z0,z1,z2) -> c_14():56 6:S:INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) -->_1 INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)):4 7:S:INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) -->_1 INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)) ,insertionsort#(z1) ,INSERTIONSORT#(z1)):8 -->_1 INSERTIONSORT#1#(nil()) -> c_18():57 8:S:INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) -->_2 insertionsort#(z0) -> c_79(insertionsort#1#(z0)):79 -->_3 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):7 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)):1 9:S:INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) -->_1 INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)):10 -->_1 INSERTIONSORTD#1#(nil()) -> c_21():58 10:S:INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) -->_2 insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)):82 -->_3 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):9 -->_1 INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)):4 11:S:TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) -->_2 testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))):87 -->_3 TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))):68 -->_3 TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))):67 -->_3 TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))):66 -->_3 TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))):65 -->_3 TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))):64 -->_3 TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))):63 -->_3 TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))):62 -->_3 TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))):61 -->_3 TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))):60 -->_3 TESTLIST#(z0) -> c_24(#ABS#(#0())):59 -->_1 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):7 12:S:TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())) ,testList#(#unit()) ,TESTLIST#(#unit())) -->_2 testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))):87 -->_3 TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))):68 -->_3 TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))):67 -->_3 TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))):66 -->_3 TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))):65 -->_3 TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))):64 -->_3 TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))):63 -->_3 TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))):62 -->_3 TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))):61 -->_3 TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))):60 -->_3 TESTLIST#(z0) -> c_24(#ABS#(#0())):59 -->_1 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):9 13:W:#ABS#(#0()) -> c_1() 14:W:#ABS#(#neg(z0)) -> c_2() 15:W:#ABS#(#pos(z0)) -> c_3() 16:W:#ABS#(#s(z0)) -> c_4() 17:W:#CKLT#(#EQ()) -> c_34() 18:W:#CKLT#(#GT()) -> c_35() 19:W:#CKLT#(#LT()) -> c_36() 20:W:#COMPARE#(#0(),#0()) -> c_37() 21:W:#COMPARE#(#0(),#neg(z0)) -> c_38() 22:W:#COMPARE#(#0(),#pos(z0)) -> c_39() 23:W:#COMPARE#(#0(),#s(z0)) -> c_40() 24:W:#COMPARE#(#neg(z0),#0()) -> c_41() 25:W:#COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)):31 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)):29 -->_1 #COMPARE#(#s(z0),#0()) -> c_47():30 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_45():28 -->_1 #COMPARE#(#pos(z0),#0()) -> c_44():27 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_43():26 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)):25 -->_1 #COMPARE#(#neg(z0),#0()) -> c_41():24 -->_1 #COMPARE#(#0(),#s(z0)) -> c_40():23 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_39():22 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_38():21 -->_1 #COMPARE#(#0(),#0()) -> c_37():20 26:W:#COMPARE#(#neg(z0),#pos(z1)) -> c_43() 27:W:#COMPARE#(#pos(z0),#0()) -> c_44() 28:W:#COMPARE#(#pos(z0),#neg(z1)) -> c_45() 29:W:#COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)):31 -->_1 #COMPARE#(#s(z0),#0()) -> c_47():30 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)):29 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_45():28 -->_1 #COMPARE#(#pos(z0),#0()) -> c_44():27 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_43():26 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)):25 -->_1 #COMPARE#(#neg(z0),#0()) -> c_41():24 -->_1 #COMPARE#(#0(),#s(z0)) -> c_40():23 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_39():22 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_38():21 -->_1 #COMPARE#(#0(),#0()) -> c_37():20 30:W:#COMPARE#(#s(z0),#0()) -> c_47() 31:W:#COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) -->_1 #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)):31 -->_1 #COMPARE#(#s(z0),#0()) -> c_47():30 -->_1 #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)):29 -->_1 #COMPARE#(#pos(z0),#neg(z1)) -> c_45():28 -->_1 #COMPARE#(#pos(z0),#0()) -> c_44():27 -->_1 #COMPARE#(#neg(z0),#pos(z1)) -> c_43():26 -->_1 #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)):25 -->_1 #COMPARE#(#neg(z0),#0()) -> c_41():24 -->_1 #COMPARE#(#0(),#s(z0)) -> c_40():23 -->_1 #COMPARE#(#0(),#pos(z0)) -> c_39():22 -->_1 #COMPARE#(#0(),#neg(z0)) -> c_38():21 -->_1 #COMPARE#(#0(),#0()) -> c_37():20 32:W:#LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) -->_2 #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)):51 -->_2 #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)):49 -->_2 #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)):45 -->_2 #compare#(#s(z0),#0()) -> c_66():50 -->_2 #compare#(#pos(z0),#neg(z1)) -> c_64():48 -->_2 #compare#(#pos(z0),#0()) -> c_63():47 -->_2 #compare#(#neg(z0),#pos(z1)) -> c_62():46 -->_2 #compare#(#neg(z0),#0()) -> c_60():44 -->_2 #compare#(#0(),#s(z0)) -> c_59():43 -->_2 #compare#(#0(),#pos(z0)) -> c_58():42 -->_2 #compare#(#0(),#neg(z0)) -> c_57():41 -->_2 #compare#(#0(),#0()) -> c_56():40 -->_3 #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)):31 -->_3 #COMPARE#(#s(z0),#0()) -> c_47():30 -->_3 #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)):29 -->_3 #COMPARE#(#pos(z0),#neg(z1)) -> c_45():28 -->_3 #COMPARE#(#pos(z0),#0()) -> c_44():27 -->_3 #COMPARE#(#neg(z0),#pos(z1)) -> c_43():26 -->_3 #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)):25 -->_3 #COMPARE#(#neg(z0),#0()) -> c_41():24 -->_3 #COMPARE#(#0(),#s(z0)) -> c_40():23 -->_3 #COMPARE#(#0(),#pos(z0)) -> c_39():22 -->_3 #COMPARE#(#0(),#neg(z0)) -> c_38():21 -->_3 #COMPARE#(#0(),#0()) -> c_37():20 -->_1 #CKLT#(#LT()) -> c_36():19 -->_1 #CKLT#(#GT()) -> c_35():18 -->_1 #CKLT#(#EQ()) -> c_34():17 33:W:#abs#(#0()) -> c_49() 34:W:#abs#(#neg(z0)) -> c_50() 35:W:#abs#(#pos(z0)) -> c_51() 36:W:#abs#(#s(z0)) -> c_52() 37:W:#cklt#(#EQ()) -> c_53() 38:W:#cklt#(#GT()) -> c_54() 39:W:#cklt#(#LT()) -> c_55() 40:W:#compare#(#0(),#0()) -> c_56() 41:W:#compare#(#0(),#neg(z0)) -> c_57() 42:W:#compare#(#0(),#pos(z0)) -> c_58() 43:W:#compare#(#0(),#s(z0)) -> c_59() 44:W:#compare#(#neg(z0),#0()) -> c_60() 45:W:#compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) -->_1 #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)):51 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)):49 -->_1 #compare#(#s(z0),#0()) -> c_66():50 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_64():48 -->_1 #compare#(#pos(z0),#0()) -> c_63():47 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_62():46 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)):45 -->_1 #compare#(#neg(z0),#0()) -> c_60():44 -->_1 #compare#(#0(),#s(z0)) -> c_59():43 -->_1 #compare#(#0(),#pos(z0)) -> c_58():42 -->_1 #compare#(#0(),#neg(z0)) -> c_57():41 -->_1 #compare#(#0(),#0()) -> c_56():40 46:W:#compare#(#neg(z0),#pos(z1)) -> c_62() 47:W:#compare#(#pos(z0),#0()) -> c_63() 48:W:#compare#(#pos(z0),#neg(z1)) -> c_64() 49:W:#compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) -->_1 #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)):51 -->_1 #compare#(#s(z0),#0()) -> c_66():50 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)):49 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_64():48 -->_1 #compare#(#pos(z0),#0()) -> c_63():47 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_62():46 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)):45 -->_1 #compare#(#neg(z0),#0()) -> c_60():44 -->_1 #compare#(#0(),#s(z0)) -> c_59():43 -->_1 #compare#(#0(),#pos(z0)) -> c_58():42 -->_1 #compare#(#0(),#neg(z0)) -> c_57():41 -->_1 #compare#(#0(),#0()) -> c_56():40 50:W:#compare#(#s(z0),#0()) -> c_66() 51:W:#compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) -->_1 #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)):51 -->_1 #compare#(#s(z0),#0()) -> c_66():50 -->_1 #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)):49 -->_1 #compare#(#pos(z0),#neg(z1)) -> c_64():48 -->_1 #compare#(#pos(z0),#0()) -> c_63():47 -->_1 #compare#(#neg(z0),#pos(z1)) -> c_62():46 -->_1 #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)):45 -->_1 #compare#(#neg(z0),#0()) -> c_60():44 -->_1 #compare#(#0(),#s(z0)) -> c_59():43 -->_1 #compare#(#0(),#pos(z0)) -> c_58():42 -->_1 #compare#(#0(),#neg(z0)) -> c_57():41 -->_1 #compare#(#0(),#0()) -> c_56():40 52:W:#less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) -->_2 #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)):51 -->_2 #compare#(#s(z0),#0()) -> c_66():50 -->_2 #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)):49 -->_2 #compare#(#pos(z0),#neg(z1)) -> c_64():48 -->_2 #compare#(#pos(z0),#0()) -> c_63():47 -->_2 #compare#(#neg(z0),#pos(z1)) -> c_62():46 -->_2 #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)):45 -->_2 #compare#(#neg(z0),#0()) -> c_60():44 -->_2 #compare#(#0(),#s(z0)) -> c_59():43 -->_2 #compare#(#0(),#pos(z0)) -> c_58():42 -->_2 #compare#(#0(),#neg(z0)) -> c_57():41 -->_2 #compare#(#0(),#0()) -> c_56():40 -->_1 #cklt#(#LT()) -> c_55():39 -->_1 #cklt#(#GT()) -> c_54():38 -->_1 #cklt#(#EQ()) -> c_53():37 53:W:INSERT#1#(nil(),z0) -> c_8() 54:W:INSERT#2#(#false(),z0,z1,z2) -> c_9() 55:W:INSERTD#1#(nil(),z0) -> c_13() 56:W:INSERTD#2#(#false(),z0,z1,z2) -> c_14() 57:W:INSERTIONSORT#1#(nil()) -> c_18() 58:W:INSERTIONSORTD#1#(nil()) -> c_21() 59:W:TESTLIST#(z0) -> c_24(#ABS#(#0())) -->_1 #ABS#(#0()) -> c_1():13 60:W:TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 61:W:TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 62:W:TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 63:W:TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 64:W:TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) -->_1 #ABS#(#pos(z0)) -> c_3():15 65:W:TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 66:W:TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 67:W:TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 68:W:TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) -->_1 #ABS#(#pos(z0)) -> c_3():15 69:W:insert#(z0,z1) -> c_69(insert#1#(z1,z0)) -->_1 insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)):70 -->_1 insert#1#(nil(),z0) -> c_71():71 70:W:insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) -->_1 insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)):73 -->_1 insert#2#(#false(),z0,z1,z2) -> c_72():72 -->_2 #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)):52 71:W:insert#1#(nil(),z0) -> c_71() 72:W:insert#2#(#false(),z0,z1,z2) -> c_72() 73:W:insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) -->_1 insert#(z0,z1) -> c_69(insert#1#(z1,z0)):69 74:W:insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) -->_1 insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)):75 -->_1 insertD#1#(nil(),z0) -> c_76():76 75:W:insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) -->_1 insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)):78 -->_1 insertD#2#(#false(),z0,z1,z2) -> c_77():77 -->_2 #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)):52 76:W:insertD#1#(nil(),z0) -> c_76() 77:W:insertD#2#(#false(),z0,z1,z2) -> c_77() 78:W:insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) -->_1 insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)):74 79:W:insertionsort#(z0) -> c_79(insertionsort#1#(z0)) -->_1 insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)):80 -->_1 insertionsort#1#(nil()) -> c_81():81 80:W:insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) -->_2 insertionsort#(z0) -> c_79(insertionsort#1#(z0)):79 -->_1 insert#(z0,z1) -> c_69(insert#1#(z1,z0)):69 81:W:insertionsort#1#(nil()) -> c_81() 82:W:insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) -->_1 insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)):83 -->_1 insertionsortD#1#(nil()) -> c_84():84 83:W:insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) -->_2 insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)):82 -->_1 insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)):74 84:W:insertionsortD#1#(nil()) -> c_84() 85:W:testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) -->_2 testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))):87 -->_1 insertionsort#(z0) -> c_79(insertionsort#1#(z0)):79 86:W:testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) -->_2 testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))):87 -->_1 insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)):82 87:W:testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) -->_10 #abs#(#pos(z0)) -> c_51():35 -->_9 #abs#(#pos(z0)) -> c_51():35 -->_8 #abs#(#pos(z0)) -> c_51():35 -->_7 #abs#(#pos(z0)) -> c_51():35 -->_6 #abs#(#pos(z0)) -> c_51():35 -->_5 #abs#(#pos(z0)) -> c_51():35 -->_4 #abs#(#pos(z0)) -> c_51():35 -->_3 #abs#(#pos(z0)) -> c_51():35 -->_2 #abs#(#pos(z0)) -> c_51():35 -->_1 #abs#(#0()) -> c_49():33 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 86: testInsertionsortD#(z0) -> c_86(insertionsortD#(testList(#unit())),testList#(#unit())) 85: testInsertionsort#(z0) -> c_85(insertionsort#(testList(#unit())),testList#(#unit())) 36: #abs#(#s(z0)) -> c_52() 34: #abs#(#neg(z0)) -> c_50() 16: #ABS#(#s(z0)) -> c_4() 14: #ABS#(#neg(z0)) -> c_2() 59: TESTLIST#(z0) -> c_24(#ABS#(#0())) 13: #ABS#(#0()) -> c_1() 60: TESTLIST#(z0) -> c_25(#ABS#(#pos(#s(#s(#s(#s(#0()))))))) 61: TESTLIST#(z0) -> c_26(#ABS#(#pos(#s(#s(#s(#s(#s(#0())))))))) 62: TESTLIST#(z0) -> c_27(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) 63: TESTLIST#(z0) -> c_28(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) 64: TESTLIST#(z0) -> c_29(#ABS#(#pos(#s(#0())))) 65: TESTLIST#(z0) -> c_30(#ABS#(#pos(#s(#s(#0()))))) 66: TESTLIST#(z0) -> c_31(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) 67: TESTLIST#(z0) -> c_32(#ABS#(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) 68: TESTLIST#(z0) -> c_33(#ABS#(#pos(#s(#s(#s(#0())))))) 15: #ABS#(#pos(z0)) -> c_3() 87: testList#(z0) -> c_87(#abs#(#0()) ,#abs#(#pos(#s(#s(#s(#s(#0())))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,#abs#(#pos(#s(#0()))) ,#abs#(#pos(#s(#s(#0())))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,#abs#(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,#abs#(#pos(#s(#s(#s(#0())))))) 33: #abs#(#0()) -> c_49() 35: #abs#(#pos(z0)) -> c_51() 58: INSERTIONSORTD#1#(nil()) -> c_21() 82: insertionsortD#(z0) -> c_82(insertionsortD#1#(z0)) 83: insertionsortD#1#(::(z0,z1)) -> c_83(insertD#(z0,insertionsortD(z1)),insertionsortD#(z1)) 84: insertionsortD#1#(nil()) -> c_84() 74: insertD#(z0,z1) -> c_74(insertD#1#(z1,z0)) 78: insertD#2#(#true(),z0,z1,z2) -> c_78(insertD#(z0,z2)) 75: insertD#1#(::(z0,z1),z2) -> c_75(insertD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 76: insertD#1#(nil(),z0) -> c_76() 77: insertD#2#(#false(),z0,z1,z2) -> c_77() 57: INSERTIONSORT#1#(nil()) -> c_18() 79: insertionsort#(z0) -> c_79(insertionsort#1#(z0)) 80: insertionsort#1#(::(z0,z1)) -> c_80(insert#(z0,insertionsort(z1)),insertionsort#(z1)) 81: insertionsort#1#(nil()) -> c_81() 69: insert#(z0,z1) -> c_69(insert#1#(z1,z0)) 73: insert#2#(#true(),z0,z1,z2) -> c_73(insert#(z0,z2)) 70: insert#1#(::(z0,z1),z2) -> c_70(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) 71: insert#1#(nil(),z0) -> c_71() 72: insert#2#(#false(),z0,z1,z2) -> c_72() 55: INSERTD#1#(nil(),z0) -> c_13() 56: INSERTD#2#(#false(),z0,z1,z2) -> c_14() 53: INSERT#1#(nil(),z0) -> c_8() 54: INSERT#2#(#false(),z0,z1,z2) -> c_9() 32: #LESS#(z0,z1) -> c_5(#CKLT#(#compare(z0,z1)),#compare#(z0,z1),#COMPARE#(z0,z1)) 17: #CKLT#(#EQ()) -> c_34() 18: #CKLT#(#GT()) -> c_35() 19: #CKLT#(#LT()) -> c_36() 31: #COMPARE#(#s(z0),#s(z1)) -> c_48(#COMPARE#(z0,z1)) 29: #COMPARE#(#pos(z0),#pos(z1)) -> c_46(#COMPARE#(z0,z1)) 25: #COMPARE#(#neg(z0),#neg(z1)) -> c_42(#COMPARE#(z1,z0)) 20: #COMPARE#(#0(),#0()) -> c_37() 21: #COMPARE#(#0(),#neg(z0)) -> c_38() 22: #COMPARE#(#0(),#pos(z0)) -> c_39() 23: #COMPARE#(#0(),#s(z0)) -> c_40() 24: #COMPARE#(#neg(z0),#0()) -> c_41() 26: #COMPARE#(#neg(z0),#pos(z1)) -> c_43() 27: #COMPARE#(#pos(z0),#0()) -> c_44() 28: #COMPARE#(#pos(z0),#neg(z1)) -> c_45() 30: #COMPARE#(#s(z0),#0()) -> c_47() 52: #less#(z0,z1) -> c_68(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) 37: #cklt#(#EQ()) -> c_53() 38: #cklt#(#GT()) -> c_54() 39: #cklt#(#LT()) -> c_55() 51: #compare#(#s(z0),#s(z1)) -> c_67(#compare#(z0,z1)) 49: #compare#(#pos(z0),#pos(z1)) -> c_65(#compare#(z0,z1)) 45: #compare#(#neg(z0),#neg(z1)) -> c_61(#compare#(z1,z0)) 40: #compare#(#0(),#0()) -> c_56() 41: #compare#(#0(),#neg(z0)) -> c_57() 42: #compare#(#0(),#pos(z0)) -> c_58() 43: #compare#(#0(),#s(z0)) -> c_59() 44: #compare#(#neg(z0),#0()) -> c_60() 46: #compare#(#neg(z0),#pos(z1)) -> c_62() 47: #compare#(#pos(z0),#0()) -> c_63() 48: #compare#(#pos(z0),#neg(z1)) -> c_64() 50: #compare#(#s(z0),#0()) -> c_66() * Step 6: SimplifyRHS. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) - Weak TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/3,c_8/0,c_9/0,c_10/1,c_11/1,c_12/3,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/3,c_18/0,c_19/1,c_20/3,c_21/0,c_22/3,c_23/3,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) -->_1 INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)):2 2:S:INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) -->_1 INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)):3 3:S:INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)):1 4:S:INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) -->_1 INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)):5 5:S:INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2),#LESS#(z0,z2)) -->_1 INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)):6 6:S:INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) -->_1 INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)):4 7:S:INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) -->_1 INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)) ,insertionsort#(z1) ,INSERTIONSORT#(z1)):8 8:S:INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),insertionsort#(z1),INSERTIONSORT#(z1)) -->_3 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):7 -->_1 INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)):1 9:S:INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) -->_1 INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)):10 10:S:INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)) ,insertionsortD#(z1) ,INSERTIONSORTD#(z1)) -->_3 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):9 -->_1 INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)):4 11:S:TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit())),testList#(#unit()),TESTLIST#(#unit())) -->_1 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):7 12:S:TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit())) ,testList#(#unit()) ,TESTLIST#(#unit())) -->_1 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):9 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) * Step 7: UsableRules. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #ABS(#0()) -> c15() #ABS(#neg(z0)) -> c16() #ABS(#pos(z0)) -> c17() #ABS(#s(z0)) -> c18() #CKLT(#EQ()) -> c() #CKLT(#GT()) -> c1() #CKLT(#LT()) -> c2() #COMPARE(#0(),#0()) -> c3() #COMPARE(#0(),#neg(z0)) -> c4() #COMPARE(#0(),#pos(z0)) -> c5() #COMPARE(#0(),#s(z0)) -> c6() #COMPARE(#neg(z0),#0()) -> c7() #COMPARE(#neg(z0),#neg(z1)) -> c8(#COMPARE(z1,z0)) #COMPARE(#neg(z0),#pos(z1)) -> c9() #COMPARE(#pos(z0),#0()) -> c10() #COMPARE(#pos(z0),#neg(z1)) -> c11() #COMPARE(#pos(z0),#pos(z1)) -> c12(#COMPARE(z0,z1)) #COMPARE(#s(z0),#0()) -> c13() #COMPARE(#s(z0),#s(z1)) -> c14(#COMPARE(z0,z1)) #LESS(z0,z1) -> c19(#CKLT(#compare(z0,z1)),#COMPARE(z0,z1)) #abs(#0()) -> #0() #abs(#neg(z0)) -> #pos(z0) #abs(#pos(z0)) -> #pos(z0) #abs(#s(z0)) -> #pos(#s(z0)) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) INSERT(z0,z1) -> c20(INSERT#1(z1,z0)) INSERT#1(::(z0,z1),z2) -> c21(INSERT#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERT#1(nil(),z0) -> c22() INSERT#2(#false(),z0,z1,z2) -> c23() INSERT#2(#true(),z0,z1,z2) -> c24(INSERT(z0,z2)) INSERTD(z0,z1) -> c25(INSERTD#1(z1,z0)) INSERTD#1(::(z0,z1),z2) -> c26(INSERTD#2(#less(z0,z2),z2,z0,z1),#LESS(z0,z2)) INSERTD#1(nil(),z0) -> c27() INSERTD#2(#false(),z0,z1,z2) -> c28() INSERTD#2(#true(),z0,z1,z2) -> c29(INSERTD(z0,z2)) INSERTIONSORT(z0) -> c30(INSERTIONSORT#1(z0)) INSERTIONSORT#1(::(z0,z1)) -> c31(INSERT(z0,insertionsort(z1)),INSERTIONSORT(z1)) INSERTIONSORT#1(nil()) -> c32() INSERTIONSORTD(z0) -> c33(INSERTIONSORTD#1(z0)) INSERTIONSORTD#1(::(z0,z1)) -> c34(INSERTD(z0,insertionsortD(z1)),INSERTIONSORTD(z1)) INSERTIONSORTD#1(nil()) -> c35() TESTINSERTIONSORT(z0) -> c36(INSERTIONSORT(testList(#unit())),TESTLIST(#unit())) TESTINSERTIONSORTD(z0) -> c37(INSERTIONSORTD(testList(#unit())),TESTLIST(#unit())) TESTLIST(z0) -> c38(#ABS(#0())) TESTLIST(z0) -> c39(#ABS(#pos(#s(#s(#s(#s(#0()))))))) TESTLIST(z0) -> c40(#ABS(#pos(#s(#s(#s(#s(#s(#0())))))))) TESTLIST(z0) -> c41(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))))) TESTLIST(z0) -> c42(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) TESTLIST(z0) -> c43(#ABS(#pos(#s(#0())))) TESTLIST(z0) -> c44(#ABS(#pos(#s(#s(#0()))))) TESTLIST(z0) -> c45(#ABS(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) TESTLIST(z0) -> c46(#ABS(#pos(#s(#s(#s(#s(#s(#s(#0()))))))))) TESTLIST(z0) -> c47(#ABS(#pos(#s(#s(#s(#0())))))) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testInsertionsort(z0) -> insertionsort(testList(#unit())) testInsertionsortD(z0) -> insertionsortD(testList(#unit())) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) * Step 8: DecomposeDG. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) and a lower component INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) Further, following extension rules are added to the lower component. INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) ** Step 8.a:1: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) -->_1 INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)):2 2:S:INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERT#(z0,insertionsort(z1)),INSERTIONSORT#(z1)) -->_2 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):1 3:S:INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) -->_1 INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)):4 4:S:INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTD#(z0,insertionsortD(z1)),INSERTIONSORTD#(z1)) -->_2 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):3 5:S:TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) -->_1 INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)):1 6:S:TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) -->_1 INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)):3 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) ** Step 8.a:2: UsableRules. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) ** Step 8.a:3: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(::) = {1,2}, uargs(INSERTIONSORT#) = {1}, uargs(INSERTIONSORTD#) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [0] p(#CKLT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [0] p(#LESS) = [0] p(#LT) = [0] p(#abs) = [1] x1 + [0] p(#cklt) = [0] p(#compare) = [0] p(#false) = [0] p(#less) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(#unit) = [0] p(::) = [1] x1 + [1] x2 + [0] p(INSERT) = [0] p(INSERT#1) = [0] p(INSERT#2) = [0] p(INSERTD) = [0] p(INSERTD#1) = [0] p(INSERTD#2) = [0] p(INSERTIONSORT) = [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [0] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [0] p(c14) = [1] x1 + [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] x1 + [1] x2 + [0] p(c2) = [0] p(c20) = [1] x1 + [0] p(c21) = [1] x1 + [1] x2 + [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [1] x1 + [1] x2 + [0] p(c27) = [0] p(c28) = [0] p(c29) = [1] x1 + [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [0] p(c33) = [1] x1 + [0] p(c34) = [1] x1 + [1] x2 + [0] p(c35) = [0] p(c36) = [1] x1 + [1] x2 + [0] p(c37) = [1] x1 + [1] x2 + [0] p(c38) = [1] x1 + [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [0] p(c43) = [1] x1 + [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [0] p(c46) = [1] x1 + [0] p(c47) = [1] x1 + [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [1] x1 + [0] p(c9) = [0] p(insert) = [0] p(insert#1) = [0] p(insert#2) = [0] p(insertD) = [0] p(insertD#1) = [0] p(insertD#2) = [0] p(insertionsort) = [0] p(insertionsort#1) = [0] p(insertionsortD) = [0] p(insertionsortD#1) = [0] p(nil) = [0] p(testInsertionsort) = [0] p(testInsertionsortD) = [0] p(testList) = [0] p(#ABS#) = [0] p(#CKLT#) = [0] p(#COMPARE#) = [0] p(#LESS#) = [0] p(#abs#) = [0] p(#cklt#) = [0] p(#compare#) = [0] p(#less#) = [0] p(INSERT#) = [0] p(INSERT#1#) = [0] p(INSERT#2#) = [0] p(INSERTD#) = [0] p(INSERTD#1#) = [0] p(INSERTD#2#) = [0] p(INSERTIONSORT#) = [1] x1 + [3] p(INSERTIONSORT#1#) = [1] x1 + [0] p(INSERTIONSORTD#) = [1] x1 + [0] p(INSERTIONSORTD#1#) = [1] x1 + [0] p(TESTINSERTIONSORT#) = [0] p(TESTINSERTIONSORTD#) = [1] p(TESTLIST#) = [0] p(insert#) = [0] p(insert#1#) = [0] p(insert#2#) = [0] p(insertD#) = [0] p(insertD#1#) = [0] p(insertD#2#) = [0] p(insertionsort#) = [0] p(insertionsort#1#) = [0] p(insertionsortD#) = [0] p(insertionsortD#1#) = [0] p(testInsertionsort#) = [0] p(testInsertionsortD#) = [0] p(testList#) = [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) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [0] p(c_22) = [1] x1 + [0] p(c_23) = [1] x1 + [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] p(c_54) = [0] p(c_55) = [0] p(c_56) = [0] p(c_57) = [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [0] p(c_61) = [0] p(c_62) = [0] p(c_63) = [0] p(c_64) = [0] p(c_65) = [0] p(c_66) = [0] p(c_67) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [0] 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) = [0] 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] Following rules are strictly oriented: INSERTIONSORT#(z0) = [1] z0 + [3] > [1] z0 + [0] = c_16(INSERTIONSORT#1#(z0)) TESTINSERTIONSORTD#(z0) = [1] > [0] = c_23(INSERTIONSORTD#(testList(#unit()))) Following rules are (at-least) weakly oriented: INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [3] = c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) = [1] z0 + [0] >= [1] z0 + [0] = c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) = [0] >= [3] = c_22(INSERTIONSORT#(testList(#unit()))) #abs(#0()) = [0] >= [0] = #0() #abs(#pos(z0)) = [1] z0 + [0] >= [1] z0 + [0] = #pos(z0) testList(z0) = [0] >= [0] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:4: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) - Weak DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare#,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD# ,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1#,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT# ,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1#,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort# ,insertionsort#1#,insertionsortD#,insertionsortD#1#,testInsertionsort#,testInsertionsortD#,testList#} TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [0] p(#CKLT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [0] p(#LESS) = [0] p(#LT) = [0] p(#abs) = [11] p(#cklt) = [0] p(#compare) = [0] p(#false) = [0] p(#less) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [0] p(#s) = [12] p(#true) = [2] p(#unit) = [1] p(::) = [1] x1 + [0] p(INSERT) = [0] p(INSERT#1) = [0] p(INSERT#2) = [0] p(INSERTD) = [0] p(INSERTD#1) = [0] p(INSERTD#2) = [0] p(INSERTIONSORT) = [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [0] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [0] p(c14) = [1] x1 + [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] x1 + [1] x2 + [0] p(c2) = [0] p(c20) = [1] x1 + [0] p(c21) = [1] x2 + [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [1] x1 + [1] x2 + [0] p(c27) = [0] p(c28) = [0] p(c29) = [1] x1 + [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x2 + [0] p(c32) = [0] p(c33) = [1] x1 + [0] p(c34) = [1] x1 + [1] x2 + [0] p(c35) = [0] p(c36) = [1] x1 + [1] x2 + [0] p(c37) = [1] x1 + [1] x2 + [0] p(c38) = [1] x1 + [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [0] p(c42) = [1] x1 + [0] p(c43) = [1] x1 + [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [0] p(c46) = [1] x1 + [0] p(c47) = [1] x1 + [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [1] x1 + [0] p(c9) = [0] p(insert) = [0] p(insert#1) = [0] p(insert#2) = [0] p(insertD) = [0] p(insertD#1) = [0] p(insertD#2) = [0] p(insertionsort) = [0] p(insertionsort#1) = [0] p(insertionsortD) = [0] p(insertionsortD#1) = [0] p(nil) = [1] p(testInsertionsort) = [0] p(testInsertionsortD) = [0] p(testList) = [0] p(#ABS#) = [0] p(#CKLT#) = [0] p(#COMPARE#) = [0] p(#LESS#) = [0] p(#abs#) = [0] p(#cklt#) = [0] p(#compare#) = [0] p(#less#) = [0] p(INSERT#) = [0] p(INSERT#1#) = [0] p(INSERT#2#) = [0] p(INSERTD#) = [0] p(INSERTD#1#) = [0] p(INSERTD#2#) = [0] p(INSERTIONSORT#) = [0] p(INSERTIONSORT#1#) = [0] p(INSERTIONSORTD#) = [0] p(INSERTIONSORTD#1#) = [0] p(TESTINSERTIONSORT#) = [8] p(TESTINSERTIONSORTD#) = [0] p(TESTLIST#) = [0] p(insert#) = [0] p(insert#1#) = [0] p(insert#2#) = [0] p(insertD#) = [0] p(insertD#1#) = [0] p(insertD#2#) = [0] p(insertionsort#) = [0] p(insertionsort#1#) = [0] p(insertionsortD#) = [0] p(insertionsortD#1#) = [0] p(testInsertionsort#) = [0] p(testInsertionsortD#) = [0] p(testList#) = [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) = [2] x1 + [0] p(c_17) = [4] x1 + [0] p(c_18) = [0] p(c_19) = [2] x1 + [0] p(c_20) = [8] x1 + [0] p(c_21) = [0] p(c_22) = [2] x1 + [0] p(c_23) = [8] x1 + [0] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [2] x1 + [0] p(c_27) = [1] x1 + [0] p(c_28) = [1] x1 + [0] p(c_29) = [2] x1 + [0] p(c_30) = [0] p(c_31) = [1] x1 + [0] p(c_32) = [0] p(c_33) = [1] x1 + [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) = [2] x1 + [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [1] x1 + [0] p(c_49) = [2] p(c_50) = [2] p(c_51) = [1] p(c_52) = [1] p(c_53) = [1] p(c_54) = [0] p(c_55) = [1] p(c_56) = [8] p(c_57) = [1] p(c_58) = [0] p(c_59) = [1] p(c_60) = [0] p(c_61) = [4] p(c_62) = [1] p(c_63) = [2] p(c_64) = [4] p(c_65) = [1] p(c_66) = [0] p(c_67) = [1] x1 + [1] p(c_68) = [2] x1 + [1] x2 + [2] p(c_69) = [1] p(c_70) = [2] x2 + [1] p(c_71) = [8] p(c_72) = [1] p(c_73) = [0] p(c_74) = [0] p(c_75) = [1] p(c_76) = [0] p(c_77) = [1] p(c_78) = [1] p(c_79) = [2] x1 + [0] p(c_80) = [1] p(c_81) = [1] p(c_82) = [1] x1 + [0] p(c_83) = [8] x1 + [1] x2 + [2] p(c_84) = [1] p(c_85) = [1] x1 + [1] x2 + [0] p(c_86) = [0] p(c_87) = [2] x2 + [2] x3 + [1] x6 + [2] x7 + [1] x8 + [1] x9 + [2] x10 + [8] Following rules are strictly oriented: TESTINSERTIONSORT#(z0) = [8] > [0] = c_22(INSERTIONSORT#(testList(#unit()))) Following rules are (at-least) weakly oriented: INSERTIONSORT#(z0) = [0] >= [0] = c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) = [0] >= [0] = c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) = [0] >= [0] = c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) = [0] >= [0] = c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORTD#(z0) = [0] >= [0] = c_23(INSERTIONSORTD#(testList(#unit()))) ** Step 8.a:5: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) - Weak DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {testList,#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare#,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD# ,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1#,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT# ,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1#,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort# ,insertionsort#1#,insertionsortD#,insertionsortD#1#,testInsertionsort#,testInsertionsortD#,testList#} TcT has computed the following interpretation: p(#0) = [3] p(#ABS) = [8] x1 + [0] p(#CKLT) = [2] x1 + [1] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [1] p(#LESS) = [8] p(#LT) = [2] p(#abs) = [10] x1 + [0] p(#cklt) = [4] p(#compare) = [8] x1 + [1] x2 + [2] p(#false) = [0] p(#less) = [2] x2 + [0] p(#neg) = [1] x1 + [1] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(#unit) = [8] p(::) = [1] x2 + [1] p(INSERT) = [1] x1 + [1] p(INSERT#1) = [1] x1 + [1] x2 + [1] p(INSERT#2) = [2] x2 + [1] x4 + [0] p(INSERTD) = [1] p(INSERTD#1) = [1] x1 + [1] x2 + [1] p(INSERTD#2) = [8] x1 + [2] x4 + [1] p(INSERTIONSORT) = [1] x1 + [0] p(INSERTIONSORT#1) = [4] x1 + [1] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [1] x1 + [1] p(TESTINSERTIONSORT) = [1] x1 + [1] p(TESTINSERTIONSORTD) = [2] x1 + [2] p(TESTLIST) = [1] x1 + [1] p(c) = [1] p(c1) = [0] p(c10) = [0] p(c11) = [2] p(c12) = [2] p(c13) = [0] p(c14) = [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [1] p(c19) = [0] p(c2) = [1] p(c20) = [0] p(c21) = [1] p(c22) = [1] p(c23) = [1] p(c24) = [0] p(c25) = [2] p(c26) = [1] x1 + [0] p(c27) = [0] p(c28) = [1] p(c29) = [1] x1 + [0] p(c3) = [1] p(c30) = [1] x1 + [0] p(c31) = [1] x2 + [0] p(c32) = [0] p(c33) = [1] x1 + [0] p(c34) = [0] p(c35) = [1] p(c36) = [2] p(c37) = [1] x1 + [1] x2 + [1] p(c38) = [1] p(c39) = [0] p(c4) = [1] p(c40) = [1] p(c41) = [2] p(c42) = [1] p(c43) = [1] p(c44) = [0] p(c45) = [0] p(c46) = [1] p(c47) = [1] x1 + [8] p(c5) = [0] p(c6) = [8] p(c7) = [0] p(c8) = [1] x1 + [1] p(c9) = [1] p(insert) = [8] p(insert#1) = [4] x1 + [1] x2 + [0] p(insert#2) = [4] x1 + [2] x2 + [2] x3 + [2] x4 + [0] p(insertD) = [1] x1 + [2] x2 + [2] p(insertD#1) = [1] x2 + [1] p(insertD#2) = [1] x1 + [1] x4 + [0] p(insertionsort) = [1] x1 + [0] p(insertionsort#1) = [1] x1 + [8] p(insertionsortD) = [1] p(insertionsortD#1) = [1] x1 + [0] p(nil) = [5] p(testInsertionsort) = [0] p(testInsertionsortD) = [1] x1 + [1] p(testList) = [15] p(#ABS#) = [2] x1 + [1] p(#CKLT#) = [0] p(#COMPARE#) = [1] x1 + [1] x2 + [4] p(#LESS#) = [4] x2 + [0] p(#abs#) = [0] p(#cklt#) = [1] x1 + [1] p(#compare#) = [2] x1 + [2] p(#less#) = [1] x1 + [1] x2 + [2] p(INSERT#) = [2] x2 + [8] p(INSERT#1#) = [8] x2 + [0] p(INSERT#2#) = [1] x1 + [1] x2 + [4] x3 + [2] x4 + [1] p(INSERTD#) = [1] x2 + [4] p(INSERTD#1#) = [1] x1 + [1] x2 + [2] p(INSERTD#2#) = [1] x2 + [0] p(INSERTIONSORT#) = [1] x1 + [0] p(INSERTIONSORT#1#) = [1] x1 + [0] p(INSERTIONSORTD#) = [0] p(INSERTIONSORTD#1#) = [0] p(TESTINSERTIONSORT#) = [1] x1 + [15] p(TESTINSERTIONSORTD#) = [1] x1 + [9] p(TESTLIST#) = [2] p(insert#) = [0] p(insert#1#) = [0] p(insert#2#) = [1] x1 + [1] x4 + [1] p(insertD#) = [8] x1 + [1] p(insertD#1#) = [1] x2 + [8] p(insertD#2#) = [1] x1 + [1] x3 + [4] x4 + [0] p(insertionsort#) = [2] x1 + [1] p(insertionsort#1#) = [2] x1 + [0] p(insertionsortD#) = [1] x1 + [2] p(insertionsortD#1#) = [1] p(testInsertionsort#) = [1] x1 + [1] p(testInsertionsortD#) = [0] p(testList#) = [1] x1 + [1] p(c_1) = [0] p(c_2) = [1] p(c_3) = [1] p(c_4) = [1] p(c_5) = [1] x1 + [1] x2 + [1] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] p(c_9) = [0] p(c_10) = [1] p(c_11) = [1] x1 + [1] p(c_12) = [1] p(c_13) = [1] p(c_14) = [1] p(c_15) = [1] x1 + [2] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [2] p(c_19) = [4] x1 + [0] p(c_20) = [8] x1 + [0] p(c_21) = [2] p(c_22) = [1] x1 + [0] p(c_23) = [1] x1 + [0] p(c_24) = [1] x1 + [1] p(c_25) = [1] x1 + [2] p(c_26) = [1] x1 + [4] p(c_27) = [2] p(c_28) = [8] x1 + [0] p(c_29) = [1] x1 + [1] p(c_30) = [2] x1 + [4] p(c_31) = [1] p(c_32) = [1] x1 + [2] p(c_33) = [1] x1 + [1] p(c_34) = [0] p(c_35) = [1] p(c_36) = [1] p(c_37) = [1] p(c_38) = [4] p(c_39) = [0] p(c_40) = [1] p(c_41) = [0] p(c_42) = [1] x1 + [0] p(c_43) = [1] p(c_44) = [0] p(c_45) = [1] p(c_46) = [8] x1 + [1] p(c_47) = [8] p(c_48) = [1] x1 + [0] p(c_49) = [1] p(c_50) = [1] p(c_51) = [1] p(c_52) = [1] p(c_53) = [1] p(c_54) = [1] p(c_55) = [0] p(c_56) = [0] p(c_57) = [0] p(c_58) = [1] p(c_59) = [2] p(c_60) = [4] p(c_61) = [4] x1 + [0] p(c_62) = [0] p(c_63) = [1] p(c_64) = [2] p(c_65) = [1] p(c_66) = [0] p(c_67) = [1] p(c_68) = [1] x2 + [2] p(c_69) = [1] p(c_70) = [2] x2 + [1] p(c_71) = [0] p(c_72) = [1] p(c_73) = [2] x1 + [2] p(c_74) = [1] x1 + [4] p(c_75) = [1] x1 + [1] x2 + [1] p(c_76) = [2] p(c_77) = [4] p(c_78) = [1] x1 + [1] p(c_79) = [1] x1 + [0] p(c_80) = [2] x1 + [1] p(c_81) = [1] p(c_82) = [2] p(c_83) = [1] x1 + [2] p(c_84) = [1] p(c_85) = [1] x1 + [2] x2 + [0] p(c_86) = [1] x1 + [1] p(c_87) = [1] x1 + [1] x2 + [2] x3 + [4] x5 + [2] x6 + [4] x7 + [1] x8 + [1] x10 + [0] Following rules are strictly oriented: INSERTIONSORT#1#(::(z0,z1)) = [1] z1 + [1] > [1] z1 + [0] = c_17(INSERTIONSORT#(z1)) Following rules are (at-least) weakly oriented: INSERTIONSORT#(z0) = [1] z0 + [0] >= [1] z0 + [0] = c_16(INSERTIONSORT#1#(z0)) INSERTIONSORTD#(z0) = [0] >= [0] = c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) = [0] >= [0] = c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) = [1] z0 + [15] >= [15] = c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) = [1] z0 + [9] >= [0] = c_23(INSERTIONSORTD#(testList(#unit()))) testList(z0) = [15] >= [15] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) ** Step 8.a:6: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) - Weak DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {testList,#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare#,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD# ,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1#,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT# ,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1#,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort# ,insertionsort#1#,insertionsortD#,insertionsortD#1#,testInsertionsort#,testInsertionsortD#,testList#} TcT has computed the following interpretation: p(#0) = [2] p(#ABS) = [1] p(#CKLT) = [1] p(#COMPARE) = [8] x2 + [1] p(#EQ) = [1] p(#GT) = [2] p(#LESS) = [2] x1 + [1] x2 + [1] p(#LT) = [0] p(#abs) = [8] x1 + [6] p(#cklt) = [1] p(#compare) = [2] x2 + [2] p(#false) = [0] p(#less) = [2] x1 + [1] x2 + [0] p(#neg) = [2] p(#pos) = [0] p(#s) = [4] p(#true) = [4] p(#unit) = [1] p(::) = [1] x2 + [1] p(INSERT) = [1] x1 + [1] p(INSERT#1) = [1] x1 + [4] p(INSERT#2) = [2] x1 + [0] p(INSERTD) = [1] x1 + [4] p(INSERTD#1) = [8] x1 + [8] p(INSERTD#2) = [1] x2 + [8] x3 + [8] p(INSERTIONSORT) = [1] x1 + [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [2] p(INSERTIONSORTD#1) = [1] x1 + [8] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [2] x1 + [0] p(TESTLIST) = [1] p(c) = [1] p(c1) = [0] p(c10) = [1] p(c11) = [0] p(c12) = [1] p(c13) = [2] p(c14) = [1] p(c15) = [2] p(c16) = [0] p(c17) = [1] p(c18) = [8] p(c19) = [2] p(c2) = [1] p(c20) = [2] p(c21) = [0] p(c22) = [0] p(c23) = [4] p(c24) = [1] x1 + [2] p(c25) = [1] x1 + [1] p(c26) = [1] p(c27) = [0] p(c28) = [2] p(c29) = [1] x1 + [1] p(c3) = [0] p(c30) = [2] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [2] p(c33) = [2] p(c34) = [1] x1 + [2] p(c35) = [0] p(c36) = [0] p(c37) = [1] x1 + [1] p(c38) = [8] p(c39) = [1] p(c4) = [1] p(c40) = [1] p(c41) = [0] p(c42) = [1] x1 + [0] p(c43) = [1] p(c44) = [0] p(c45) = [2] p(c46) = [1] p(c47) = [1] p(c5) = [1] p(c6) = [2] p(c7) = [2] p(c8) = [1] p(c9) = [2] p(insert) = [0] p(insert#1) = [1] p(insert#2) = [1] x2 + [1] x3 + [1] x4 + [1] p(insertD) = [4] x1 + [0] p(insertD#1) = [2] x1 + [1] x2 + [0] p(insertD#2) = [1] x2 + [1] x4 + [0] p(insertionsort) = [4] x1 + [1] p(insertionsort#1) = [1] x1 + [2] p(insertionsortD) = [1] x1 + [1] p(insertionsortD#1) = [1] x1 + [1] p(nil) = [0] p(testInsertionsort) = [0] p(testInsertionsortD) = [2] p(testList) = [10] p(#ABS#) = [2] x1 + [0] p(#CKLT#) = [1] p(#COMPARE#) = [1] x1 + [1] x2 + [1] p(#LESS#) = [1] x2 + [1] p(#abs#) = [2] x1 + [1] p(#cklt#) = [4] x1 + [1] p(#compare#) = [8] x1 + [1] x2 + [4] p(#less#) = [0] p(INSERT#) = [2] x2 + [0] p(INSERT#1#) = [0] p(INSERT#2#) = [1] x1 + [1] x2 + [2] x4 + [0] p(INSERTD#) = [1] x1 + [1] p(INSERTD#1#) = [2] x1 + [4] x2 + [1] p(INSERTD#2#) = [1] x1 + [8] x2 + [1] x4 + [1] p(INSERTIONSORT#) = [0] p(INSERTIONSORT#1#) = [0] p(INSERTIONSORTD#) = [1] x1 + [0] p(INSERTIONSORTD#1#) = [1] x1 + [0] p(TESTINSERTIONSORT#) = [2] x1 + [1] p(TESTINSERTIONSORTD#) = [11] p(TESTLIST#) = [1] x1 + [1] p(insert#) = [4] x1 + [1] x2 + [0] p(insert#1#) = [1] x2 + [1] p(insert#2#) = [4] x1 + [1] x2 + [1] x3 + [2] p(insertD#) = [2] x1 + [1] p(insertD#1#) = [2] x2 + [8] p(insertD#2#) = [1] x3 + [0] p(insertionsort#) = [1] x1 + [4] p(insertionsort#1#) = [1] p(insertionsortD#) = [1] p(insertionsortD#1#) = [1] x1 + [1] p(testInsertionsort#) = [8] x1 + [0] p(testInsertionsortD#) = [1] x1 + [0] p(testList#) = [1] p(c_1) = [1] p(c_2) = [0] p(c_3) = [0] p(c_4) = [1] p(c_5) = [2] x1 + [1] p(c_6) = [1] x1 + [1] p(c_7) = [1] p(c_8) = [1] p(c_9) = [1] p(c_10) = [1] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [1] p(c_13) = [1] p(c_14) = [0] p(c_15) = [2] x1 + [0] p(c_16) = [8] x1 + [0] p(c_17) = [8] x1 + [0] p(c_18) = [1] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] p(c_22) = [8] x1 + [0] p(c_23) = [1] x1 + [1] p(c_24) = [0] p(c_25) = [1] x1 + [1] p(c_26) = [2] p(c_27) = [0] p(c_28) = [1] p(c_29) = [2] p(c_30) = [1] x1 + [2] p(c_31) = [2] p(c_32) = [1] x1 + [0] p(c_33) = [1] x1 + [0] p(c_34) = [1] p(c_35) = [0] p(c_36) = [1] p(c_37) = [1] p(c_38) = [2] p(c_39) = [8] p(c_40) = [1] p(c_41) = [2] p(c_42) = [1] x1 + [0] p(c_43) = [0] p(c_44) = [1] p(c_45) = [1] p(c_46) = [1] p(c_47) = [0] p(c_48) = [1] x1 + [2] p(c_49) = [0] p(c_50) = [4] p(c_51) = [2] p(c_52) = [1] p(c_53) = [1] p(c_54) = [1] p(c_55) = [2] p(c_56) = [1] p(c_57) = [1] p(c_58) = [2] p(c_59) = [0] p(c_60) = [4] p(c_61) = [0] p(c_62) = [1] p(c_63) = [0] p(c_64) = [0] p(c_65) = [1] x1 + [1] p(c_66) = [1] p(c_67) = [1] x1 + [1] p(c_68) = [2] p(c_69) = [8] x1 + [0] p(c_70) = [0] p(c_71) = [1] p(c_72) = [2] p(c_73) = [1] p(c_74) = [8] p(c_75) = [0] p(c_76) = [2] p(c_77) = [1] p(c_78) = [1] x1 + [1] p(c_79) = [1] x1 + [0] p(c_80) = [1] x2 + [1] p(c_81) = [0] p(c_82) = [2] p(c_83) = [1] x2 + [8] p(c_84) = [1] p(c_85) = [1] x1 + [0] p(c_86) = [2] p(c_87) = [1] x1 + [8] x2 + [4] x3 + [8] x4 + [2] x7 + [1] x8 + [1] x10 + [2] Following rules are strictly oriented: INSERTIONSORTD#1#(::(z0,z1)) = [1] z1 + [1] > [1] z1 + [0] = c_20(INSERTIONSORTD#(z1)) Following rules are (at-least) weakly oriented: INSERTIONSORT#(z0) = [0] >= [0] = c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) = [0] >= [0] = c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) = [1] z0 + [0] >= [1] z0 + [0] = c_19(INSERTIONSORTD#1#(z0)) TESTINSERTIONSORT#(z0) = [2] z0 + [1] >= [0] = c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) = [11] >= [11] = c_23(INSERTIONSORTD#(testList(#unit()))) testList(z0) = [10] >= [10] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) ** Step 8.a:7: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) - Weak DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {testList,#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare#,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD# ,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1#,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT# ,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1#,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort# ,insertionsort#1#,insertionsortD#,insertionsortD#1#,testInsertionsort#,testInsertionsortD#,testList#} TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [2] x1 + [2] p(#CKLT) = [2] p(#COMPARE) = [1] p(#EQ) = [2] p(#GT) = [0] p(#LESS) = [2] x1 + [2] x2 + [0] p(#LT) = [1] p(#abs) = [2] x1 + [0] p(#cklt) = [2] x1 + [1] p(#compare) = [1] p(#false) = [1] p(#less) = [2] x1 + [8] x2 + [4] p(#neg) = [1] p(#pos) = [13] p(#s) = [0] p(#true) = [1] p(#unit) = [1] p(::) = [1] x2 + [1] p(INSERT) = [8] x1 + [4] x2 + [4] p(INSERT#1) = [2] x2 + [1] p(INSERT#2) = [2] x1 + [1] x3 + [1] x4 + [0] p(INSERTD) = [1] x1 + [1] x2 + [2] p(INSERTD#1) = [1] p(INSERTD#2) = [1] x1 + [1] x2 + [8] x4 + [1] p(INSERTIONSORT) = [4] p(INSERTIONSORT#1) = [2] p(INSERTIONSORTD) = [2] p(INSERTIONSORTD#1) = [1] p(TESTINSERTIONSORT) = [1] x1 + [2] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [8] x1 + [1] p(c) = [2] p(c1) = [0] p(c10) = [0] p(c11) = [1] p(c12) = [0] p(c13) = [0] p(c14) = [8] p(c15) = [1] p(c16) = [1] p(c17) = [0] p(c18) = [1] p(c19) = [1] x1 + [1] p(c2) = [1] p(c20) = [2] p(c21) = [0] p(c22) = [8] p(c23) = [0] p(c24) = [1] p(c25) = [1] p(c26) = [0] p(c27) = [0] p(c28) = [1] p(c29) = [1] x1 + [0] p(c3) = [0] p(c30) = [1] x1 + [2] p(c31) = [4] p(c32) = [1] p(c33) = [0] p(c34) = [1] p(c35) = [0] p(c36) = [4] p(c37) = [8] p(c38) = [2] p(c39) = [1] p(c4) = [1] p(c40) = [1] x1 + [1] p(c41) = [0] p(c42) = [1] p(c43) = [0] p(c44) = [1] p(c45) = [1] x1 + [1] p(c46) = [1] x1 + [2] p(c47) = [0] p(c5) = [2] p(c6) = [1] p(c7) = [0] p(c8) = [1] x1 + [0] p(c9) = [0] p(insert) = [2] x1 + [2] x2 + [1] p(insert#1) = [8] x1 + [2] x2 + [2] p(insert#2) = [1] x1 + [1] x4 + [1] p(insertD) = [1] x1 + [8] x2 + [0] p(insertD#1) = [1] x2 + [1] p(insertD#2) = [1] x1 + [8] x2 + [1] x3 + [2] p(insertionsort) = [1] p(insertionsort#1) = [2] x1 + [1] p(insertionsortD) = [8] x1 + [0] p(insertionsortD#1) = [4] x1 + [1] p(nil) = [3] p(testInsertionsort) = [1] x1 + [0] p(testInsertionsortD) = [2] x1 + [1] p(testList) = [1] x1 + [13] p(#ABS#) = [1] p(#CKLT#) = [1] x1 + [0] p(#COMPARE#) = [1] x1 + [2] x2 + [1] p(#LESS#) = [8] x1 + [1] p(#abs#) = [2] x1 + [0] p(#cklt#) = [1] x1 + [1] p(#compare#) = [1] x1 + [8] p(#less#) = [1] x1 + [4] x2 + [0] p(INSERT#) = [1] x1 + [1] x2 + [2] p(INSERT#1#) = [1] p(INSERT#2#) = [2] x3 + [2] x4 + [1] p(INSERTD#) = [1] x1 + [1] p(INSERTD#1#) = [1] x2 + [1] p(INSERTD#2#) = [1] x1 + [2] x2 + [1] x4 + [0] p(INSERTIONSORT#) = [0] p(INSERTIONSORT#1#) = [0] p(INSERTIONSORTD#) = [1] x1 + [1] p(INSERTIONSORTD#1#) = [1] x1 + [0] p(TESTINSERTIONSORT#) = [1] x1 + [14] p(TESTINSERTIONSORTD#) = [15] p(TESTLIST#) = [2] x1 + [1] p(insert#) = [1] x2 + [8] p(insert#1#) = [4] x2 + [1] p(insert#2#) = [1] x2 + [0] p(insertD#) = [1] x1 + [0] p(insertD#1#) = [1] x1 + [1] p(insertD#2#) = [1] x4 + [0] p(insertionsort#) = [1] x1 + [0] p(insertionsort#1#) = [2] x1 + [0] p(insertionsortD#) = [1] p(insertionsortD#1#) = [1] p(testInsertionsort#) = [1] x1 + [0] p(testInsertionsortD#) = [1] x1 + [8] p(testList#) = [1] x1 + [1] p(c_1) = [1] p(c_2) = [2] p(c_3) = [1] p(c_4) = [0] p(c_5) = [1] x1 + [1] x2 + [4] x3 + [8] p(c_6) = [0] p(c_7) = [1] x1 + [0] p(c_8) = [8] p(c_9) = [2] p(c_10) = [1] p(c_11) = [1] p(c_12) = [1] p(c_13) = [1] p(c_14) = [0] p(c_15) = [8] x1 + [1] p(c_16) = [8] x1 + [0] p(c_17) = [8] x1 + [0] p(c_18) = [1] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [0] p(c_22) = [1] x1 + [8] p(c_23) = [1] x1 + [0] p(c_24) = [2] p(c_25) = [1] x1 + [0] p(c_26) = [8] x1 + [1] p(c_27) = [2] x1 + [2] p(c_28) = [1] x1 + [8] p(c_29) = [1] p(c_30) = [1] x1 + [0] p(c_31) = [1] x1 + [0] p(c_32) = [1] x1 + [1] p(c_33) = [0] p(c_34) = [1] p(c_35) = [4] p(c_36) = [2] 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) = [8] p(c_45) = [1] p(c_46) = [1] p(c_47) = [0] p(c_48) = [4] x1 + [4] p(c_49) = [1] p(c_50) = [8] p(c_51) = [0] p(c_52) = [2] p(c_53) = [2] p(c_54) = [2] p(c_55) = [2] p(c_56) = [1] p(c_57) = [1] p(c_58) = [4] p(c_59) = [1] p(c_60) = [1] p(c_61) = [1] x1 + [1] p(c_62) = [2] p(c_63) = [1] p(c_64) = [8] p(c_65) = [1] p(c_66) = [1] p(c_67) = [4] x1 + [1] p(c_68) = [1] x1 + [0] p(c_69) = [8] x1 + [2] p(c_70) = [1] x1 + [4] p(c_71) = [8] p(c_72) = [1] p(c_73) = [1] x1 + [1] p(c_74) = [8] p(c_75) = [1] x2 + [2] p(c_76) = [0] p(c_77) = [2] p(c_78) = [4] x1 + [1] p(c_79) = [8] x1 + [4] p(c_80) = [2] x1 + [2] x2 + [0] p(c_81) = [2] p(c_82) = [2] x1 + [1] p(c_83) = [1] x1 + [2] x2 + [0] p(c_84) = [1] p(c_85) = [1] x1 + [2] p(c_86) = [1] x1 + [1] p(c_87) = [4] x1 + [2] x2 + [2] x3 + [8] x5 + [1] x7 + [1] x8 + [2] x9 + [1] Following rules are strictly oriented: INSERTIONSORTD#(z0) = [1] z0 + [1] > [1] z0 + [0] = c_19(INSERTIONSORTD#1#(z0)) Following rules are (at-least) weakly oriented: INSERTIONSORT#(z0) = [0] >= [0] = c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) = [0] >= [0] = c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#1#(::(z0,z1)) = [1] z1 + [1] >= [1] z1 + [1] = c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) = [1] z0 + [14] >= [8] = c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) = [15] >= [15] = c_23(INSERTIONSORTD#(testList(#unit()))) testList(z0) = [1] z0 + [13] >= [13] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) ** Step 8.a:8: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: INSERTIONSORT#(z0) -> c_16(INSERTIONSORT#1#(z0)) INSERTIONSORT#1#(::(z0,z1)) -> c_17(INSERTIONSORT#(z1)) INSERTIONSORTD#(z0) -> c_19(INSERTIONSORTD#1#(z0)) INSERTIONSORTD#1#(::(z0,z1)) -> c_20(INSERTIONSORTD#(z1)) TESTINSERTIONSORT#(z0) -> c_22(INSERTIONSORT#(testList(#unit()))) TESTINSERTIONSORTD#(z0) -> c_23(INSERTIONSORTD#(testList(#unit()))) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ** Step 8.b:1: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) - Weak DPs: INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(#cklt) = {1}, uargs(::) = {1,2}, uargs(insert) = {2}, uargs(insert#2) = {1}, uargs(insertD) = {2}, uargs(insertD#2) = {1}, uargs(INSERT#) = {2}, uargs(INSERT#2#) = {1}, uargs(INSERTD#) = {2}, uargs(INSERTD#2#) = {1}, uargs(INSERTIONSORT#) = {1}, uargs(INSERTIONSORTD#) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_15) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [0] p(#CKLT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [0] p(#LESS) = [0] p(#LT) = [0] p(#abs) = [0] p(#cklt) = [1] x1 + [0] p(#compare) = [0] p(#false) = [0] p(#less) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(#unit) = [1] p(::) = [1] x1 + [1] x2 + [0] p(INSERT) = [0] p(INSERT#1) = [0] p(INSERT#2) = [0] p(INSERTD) = [0] p(INSERTD#1) = [0] p(INSERTD#2) = [0] p(INSERTIONSORT) = [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [0] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [0] p(c14) = [1] x1 + [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] x1 + [1] x2 + [0] p(c2) = [0] p(c20) = [1] x1 + [0] p(c21) = [1] x1 + [1] x2 + [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [1] x1 + [1] x2 + [0] p(c27) = [0] p(c28) = [0] p(c29) = [1] x1 + [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [0] p(c33) = [1] x1 + [0] p(c34) = [1] x1 + [1] x2 + [0] p(c35) = [0] p(c36) = [1] x1 + [1] x2 + [0] p(c37) = [1] x1 + [1] x2 + [0] p(c38) = [1] x1 + [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [0] p(c43) = [1] x1 + [2] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [0] p(c46) = [1] x1 + [0] p(c47) = [1] x1 + [0] p(c5) = [0] p(c6) = [1] p(c7) = [0] p(c8) = [0] p(c9) = [2] p(insert) = [1] x1 + [1] x2 + [0] p(insert#1) = [1] x1 + [1] x2 + [0] p(insert#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertD) = [1] x1 + [1] x2 + [0] p(insertD#1) = [1] x1 + [1] x2 + [0] p(insertD#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertionsort) = [1] x1 + [0] p(insertionsort#1) = [1] x1 + [0] p(insertionsortD) = [1] x1 + [0] p(insertionsortD#1) = [1] x1 + [0] p(nil) = [0] p(testInsertionsort) = [1] x1 + [0] p(testInsertionsortD) = [1] x1 + [0] p(testList) = [4] x1 + [0] p(#ABS#) = [1] p(#CKLT#) = [0] p(#COMPARE#) = [4] x1 + [1] x2 + [4] p(#LESS#) = [1] x1 + [1] x2 + [0] p(#abs#) = [1] x1 + [1] p(#cklt#) = [0] p(#compare#) = [1] x1 + [2] x2 + [0] p(#less#) = [1] p(INSERT#) = [1] x2 + [0] p(INSERT#1#) = [1] x1 + [5] p(INSERT#2#) = [1] x1 + [1] x3 + [1] x4 + [6] p(INSERTD#) = [1] x2 + [0] p(INSERTD#1#) = [1] x1 + [4] p(INSERTD#2#) = [1] x1 + [1] x4 + [4] p(INSERTIONSORT#) = [1] x1 + [0] p(INSERTIONSORT#1#) = [1] x1 + [0] p(INSERTIONSORTD#) = [1] x1 + [0] p(INSERTIONSORTD#1#) = [1] x1 + [0] p(TESTINSERTIONSORT#) = [1] x1 + [5] p(TESTINSERTIONSORTD#) = [1] x1 + [4] p(TESTLIST#) = [0] p(insert#) = [0] p(insert#1#) = [1] x1 + [1] p(insert#2#) = [1] x1 + [1] x2 + [1] x3 + [0] p(insertD#) = [1] x1 + [1] p(insertD#1#) = [4] x2 + [1] p(insertD#2#) = [1] x1 + [1] x3 + [0] p(insertionsort#) = [2] p(insertionsort#1#) = [2] x1 + [1] p(insertionsortD#) = [1] x1 + [2] p(insertionsortD#1#) = [0] p(testInsertionsort#) = [0] p(testInsertionsortD#) = [1] x1 + [0] p(testList#) = [2] x1 + [2] p(c_1) = [4] p(c_2) = [4] p(c_3) = [1] p(c_4) = [1] p(c_5) = [1] x1 + [2] x2 + [1] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [2] p(c_8) = [0] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [1] p(c_12) = [1] x1 + [0] p(c_13) = [2] p(c_14) = [2] p(c_15) = [1] x1 + [4] p(c_16) = [1] x1 + [1] p(c_17) = [1] x1 + [1] x2 + [0] p(c_18) = [1] p(c_19) = [1] x1 + [0] p(c_20) = [4] p(c_21) = [0] p(c_22) = [1] x1 + [0] p(c_23) = [0] p(c_24) = [2] p(c_25) = [4] p(c_26) = [1] x1 + [1] p(c_27) = [0] p(c_28) = [1] x1 + [1] p(c_29) = [1] x1 + [4] p(c_30) = [4] p(c_31) = [1] x1 + [1] p(c_32) = [2] p(c_33) = [1] x1 + [0] p(c_34) = [1] p(c_35) = [0] p(c_36) = [1] p(c_37) = [0] p(c_38) = [0] p(c_39) = [4] p(c_40) = [1] p(c_41) = [1] p(c_42) = [0] p(c_43) = [2] p(c_44) = [2] p(c_45) = [1] p(c_46) = [1] p(c_47) = [0] p(c_48) = [1] x1 + [1] p(c_49) = [0] p(c_50) = [1] p(c_51) = [1] p(c_52) = [1] p(c_53) = [0] p(c_54) = [1] p(c_55) = [1] p(c_56) = [1] p(c_57) = [1] p(c_58) = [2] p(c_59) = [0] p(c_60) = [1] p(c_61) = [1] x1 + [2] p(c_62) = [2] p(c_63) = [0] p(c_64) = [0] p(c_65) = [2] p(c_66) = [2] p(c_67) = [4] p(c_68) = [4] p(c_69) = [1] x1 + [1] p(c_70) = [1] p(c_71) = [0] p(c_72) = [1] p(c_73) = [1] x1 + [0] p(c_74) = [4] x1 + [4] p(c_75) = [1] x1 + [1] x2 + [0] p(c_76) = [0] p(c_77) = [0] p(c_78) = [1] p(c_79) = [1] x1 + [0] p(c_80) = [1] x1 + [0] p(c_81) = [1] p(c_82) = [2] p(c_83) = [1] x1 + [1] x2 + [1] p(c_84) = [0] p(c_85) = [1] x1 + [0] p(c_86) = [1] x1 + [1] x2 + [1] p(c_87) = [1] x3 + [1] x5 + [2] x6 + [1] x8 + [1] x10 + [1] Following rules are strictly oriented: INSERT#2#(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [6] > [1] z2 + [0] = c_10(INSERT#(z0,z2)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [1] z1 + [0] >= [1] z1 + [5] = c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [5] >= [1] z0 + [1] z1 + [8] = c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERTD#(z0,z1) = [1] z1 + [0] >= [1] z1 + [5] = c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [4] >= [1] z1 + [4] = c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) = [1] z2 + [4] >= [1] z2 + [4] = c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) = [1] z0 + [0] >= [1] z0 + [0] = INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTIONSORT#(z1) INSERTIONSORTD#(z0) = [1] z0 + [0] >= [1] z0 + [0] = INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) = [1] z0 + [5] >= [4] = INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) = [1] z0 + [4] >= [4] = INSERTIONSORTD#(testList(#unit())) #abs(#0()) = [0] >= [0] = #0() #abs(#pos(z0)) = [0] >= [0] = #pos(z0) #cklt(#EQ()) = [0] >= [0] = #false() #cklt(#GT()) = [0] >= [0] = #false() #cklt(#LT()) = [0] >= [0] = #true() #compare(#0(),#0()) = [0] >= [0] = #EQ() #compare(#0(),#neg(z0)) = [0] >= [0] = #GT() #compare(#0(),#pos(z0)) = [0] >= [0] = #LT() #compare(#0(),#s(z0)) = [0] >= [0] = #LT() #compare(#neg(z0),#0()) = [0] >= [0] = #LT() #compare(#neg(z0),#neg(z1)) = [0] >= [0] = #compare(z1,z0) #compare(#neg(z0),#pos(z1)) = [0] >= [0] = #LT() #compare(#pos(z0),#0()) = [0] >= [0] = #GT() #compare(#pos(z0),#neg(z1)) = [0] >= [0] = #GT() #compare(#pos(z0),#pos(z1)) = [0] >= [0] = #compare(z0,z1) #compare(#s(z0),#0()) = [0] >= [0] = #GT() #compare(#s(z0),#s(z1)) = [0] >= [0] = #compare(z0,z1) #less(z0,z1) = [0] >= [0] = #cklt(#compare(z0,z1)) insert(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert#1(z1,z0) insert#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = ::(z0,nil()) insert#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insert(z0,z2)) insertD(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD#1(z1,z0) insertD#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = ::(z0,nil()) insertD#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insertD(z0,z2)) insertionsort(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsort#1(z0) insertionsort#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert(z0,insertionsort(z1)) insertionsort#1(nil()) = [0] >= [0] = nil() insertionsortD(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) = [0] >= [0] = nil() testList(z0) = [4] z0 + [0] >= [0] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.b:2: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) - Weak DPs: INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(#cklt) = {1}, uargs(::) = {1,2}, uargs(insert) = {2}, uargs(insert#2) = {1}, uargs(insertD) = {2}, uargs(insertD#2) = {1}, uargs(INSERT#) = {2}, uargs(INSERT#2#) = {1}, uargs(INSERTD#) = {2}, uargs(INSERTD#2#) = {1}, uargs(INSERTIONSORT#) = {1}, uargs(INSERTIONSORTD#) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_15) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [0] p(#CKLT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [0] p(#LESS) = [0] p(#LT) = [0] p(#abs) = [0] p(#cklt) = [1] x1 + [0] p(#compare) = [0] p(#false) = [0] p(#less) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [0] p(#s) = [0] p(#true) = [0] p(#unit) = [0] p(::) = [1] x1 + [1] x2 + [0] p(INSERT) = [0] p(INSERT#1) = [0] p(INSERT#2) = [0] p(INSERTD) = [0] p(INSERTD#1) = [0] p(INSERTD#2) = [0] p(INSERTIONSORT) = [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [0] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [0] p(c14) = [1] x1 + [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] x1 + [1] x2 + [0] p(c2) = [0] p(c20) = [1] x1 + [0] p(c21) = [1] x1 + [1] x2 + [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [1] x1 + [1] x2 + [0] p(c27) = [0] p(c28) = [0] p(c29) = [1] x1 + [0] p(c3) = [0] p(c30) = [1] x1 + [0] p(c31) = [1] x1 + [1] x2 + [0] p(c32) = [0] p(c33) = [0] p(c34) = [2] p(c35) = [4] p(c36) = [1] x2 + [1] p(c37) = [1] x1 + [1] x2 + [1] p(c38) = [0] p(c39) = [0] p(c4) = [1] p(c40) = [1] x1 + [0] p(c41) = [0] p(c42) = [1] p(c43) = [1] p(c44) = [1] p(c45) = [1] p(c46) = [0] p(c47) = [0] p(c5) = [0] p(c6) = [1] p(c7) = [1] p(c8) = [0] p(c9) = [0] p(insert) = [1] x1 + [1] x2 + [0] p(insert#1) = [1] x1 + [1] x2 + [0] p(insert#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertD) = [1] x1 + [1] x2 + [0] p(insertD#1) = [1] x1 + [1] x2 + [0] p(insertD#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertionsort) = [1] x1 + [0] p(insertionsort#1) = [1] x1 + [0] p(insertionsortD) = [1] x1 + [0] p(insertionsortD#1) = [1] x1 + [0] p(nil) = [4] p(testInsertionsort) = [4] x1 + [0] p(testInsertionsortD) = [4] x1 + [1] p(testList) = [5] p(#ABS#) = [1] p(#CKLT#) = [1] x1 + [0] p(#COMPARE#) = [1] x1 + [1] x2 + [0] p(#LESS#) = [1] x2 + [1] p(#abs#) = [1] p(#cklt#) = [1] x1 + [0] p(#compare#) = [1] x2 + [0] p(#less#) = [4] x1 + [4] x2 + [0] p(INSERT#) = [1] x2 + [0] p(INSERT#1#) = [1] x1 + [4] p(INSERT#2#) = [1] x1 + [1] x3 + [1] x4 + [2] p(INSERTD#) = [1] x2 + [0] p(INSERTD#1#) = [1] x1 + [4] p(INSERTD#2#) = [1] x1 + [1] x3 + [1] x4 + [0] p(INSERTIONSORT#) = [1] x1 + [0] p(INSERTIONSORT#1#) = [1] x1 + [0] p(INSERTIONSORTD#) = [1] x1 + [0] p(INSERTIONSORTD#1#) = [1] x1 + [0] p(TESTINSERTIONSORT#) = [4] x1 + [5] p(TESTINSERTIONSORTD#) = [1] x1 + [5] p(TESTLIST#) = [0] p(insert#) = [4] x2 + [2] p(insert#1#) = [1] x2 + [0] p(insert#2#) = [4] x1 + [1] x2 + [1] x3 + [4] x4 + [0] p(insertD#) = [1] x1 + [1] x2 + [0] p(insertD#1#) = [2] x1 + [2] x2 + [0] p(insertD#2#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertionsort#) = [2] x1 + [0] p(insertionsort#1#) = [2] x1 + [0] p(insertionsortD#) = [0] p(insertionsortD#1#) = [4] p(testInsertionsort#) = [4] x1 + [1] p(testInsertionsortD#) = [1] x1 + [0] p(testList#) = [1] x1 + [1] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] p(c_4) = [4] p(c_5) = [1] x1 + [4] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [1] p(c_8) = [0] p(c_9) = [1] p(c_10) = [1] x1 + [2] p(c_11) = [1] x1 + [4] p(c_12) = [1] x1 + [2] p(c_13) = [0] p(c_14) = [0] p(c_15) = [1] x1 + [2] p(c_16) = [0] p(c_17) = [0] p(c_18) = [1] p(c_19) = [1] p(c_20) = [1] x2 + [1] p(c_21) = [2] p(c_22) = [2] p(c_23) = [2] x1 + [0] p(c_24) = [1] p(c_25) = [2] 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 + [1] p(c_31) = [1] x1 + [2] p(c_32) = [1] x1 + [0] p(c_33) = [1] x1 + [0] p(c_34) = [4] p(c_35) = [1] p(c_36) = [1] p(c_37) = [2] p(c_38) = [1] p(c_39) = [0] p(c_40) = [1] p(c_41) = [1] p(c_42) = [4] x1 + [1] p(c_43) = [2] p(c_44) = [0] p(c_45) = [4] p(c_46) = [1] x1 + [0] p(c_47) = [2] p(c_48) = [2] x1 + [1] p(c_49) = [4] p(c_50) = [2] p(c_51) = [1] p(c_52) = [1] p(c_53) = [1] p(c_54) = [0] p(c_55) = [1] p(c_56) = [2] p(c_57) = [1] p(c_58) = [0] p(c_59) = [1] p(c_60) = [1] p(c_61) = [0] p(c_62) = [2] p(c_63) = [1] p(c_64) = [0] p(c_65) = [0] p(c_66) = [0] p(c_67) = [4] x1 + [4] p(c_68) = [1] x1 + [4] p(c_69) = [2] x1 + [0] p(c_70) = [1] x1 + [1] x2 + [1] p(c_71) = [4] p(c_72) = [0] p(c_73) = [1] x1 + [4] p(c_74) = [2] x1 + [2] p(c_75) = [1] x2 + [0] p(c_76) = [1] p(c_77) = [0] p(c_78) = [1] x1 + [0] p(c_79) = [0] p(c_80) = [2] x1 + [2] x2 + [1] p(c_81) = [2] p(c_82) = [2] x1 + [0] p(c_83) = [2] x1 + [4] x2 + [0] p(c_84) = [0] p(c_85) = [4] x1 + [1] x2 + [1] p(c_86) = [1] x2 + [2] p(c_87) = [1] x2 + [2] x3 + [1] x4 + [2] x6 + [0] Following rules are strictly oriented: INSERT#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [4] > [1] z0 + [1] z1 + [3] = c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERTD#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [4] > [1] z0 + [1] z1 + [2] = c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [1] z1 + [0] >= [1] z1 + [4] = c_6(INSERT#1#(z1,z0)) INSERT#2#(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [2] >= [1] z2 + [2] = c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) = [1] z1 + [0] >= [1] z1 + [8] = c_11(INSERTD#1#(z1,z0)) INSERTD#2#(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [0] >= [1] z2 + [2] = c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) = [1] z0 + [0] >= [1] z0 + [0] = INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTIONSORT#(z1) INSERTIONSORTD#(z0) = [1] z0 + [0] >= [1] z0 + [0] = INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) = [4] z0 + [5] >= [5] = INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) = [1] z0 + [5] >= [5] = INSERTIONSORTD#(testList(#unit())) #abs(#0()) = [0] >= [0] = #0() #abs(#pos(z0)) = [0] >= [0] = #pos(z0) #cklt(#EQ()) = [0] >= [0] = #false() #cklt(#GT()) = [0] >= [0] = #false() #cklt(#LT()) = [0] >= [0] = #true() #compare(#0(),#0()) = [0] >= [0] = #EQ() #compare(#0(),#neg(z0)) = [0] >= [0] = #GT() #compare(#0(),#pos(z0)) = [0] >= [0] = #LT() #compare(#0(),#s(z0)) = [0] >= [0] = #LT() #compare(#neg(z0),#0()) = [0] >= [0] = #LT() #compare(#neg(z0),#neg(z1)) = [0] >= [0] = #compare(z1,z0) #compare(#neg(z0),#pos(z1)) = [0] >= [0] = #LT() #compare(#pos(z0),#0()) = [0] >= [0] = #GT() #compare(#pos(z0),#neg(z1)) = [0] >= [0] = #GT() #compare(#pos(z0),#pos(z1)) = [0] >= [0] = #compare(z0,z1) #compare(#s(z0),#0()) = [0] >= [0] = #GT() #compare(#s(z0),#s(z1)) = [0] >= [0] = #compare(z0,z1) #less(z0,z1) = [0] >= [0] = #cklt(#compare(z0,z1)) insert(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert#1(z1,z0) insert#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) = [1] z0 + [4] >= [1] z0 + [4] = ::(z0,nil()) insert#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insert(z0,z2)) insertD(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD#1(z1,z0) insertD#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) = [1] z0 + [4] >= [1] z0 + [4] = ::(z0,nil()) insertD#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insertD(z0,z2)) insertionsort(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsort#1(z0) insertionsort#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert(z0,insertionsort(z1)) insertionsort#1(nil()) = [4] >= [4] = nil() insertionsortD(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) = [4] >= [4] = nil() testList(z0) = [5] >= [4] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.b:3: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) - Weak DPs: INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(#cklt) = {1}, uargs(::) = {1,2}, uargs(insert) = {2}, uargs(insert#2) = {1}, uargs(insertD) = {2}, uargs(insertD#2) = {1}, uargs(INSERT#) = {2}, uargs(INSERT#2#) = {1}, uargs(INSERTD#) = {2}, uargs(INSERTD#2#) = {1}, uargs(INSERTIONSORT#) = {1}, uargs(INSERTIONSORTD#) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_15) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#ABS) = [0] p(#CKLT) = [0] p(#COMPARE) = [0] p(#EQ) = [0] p(#GT) = [0] p(#LESS) = [0] p(#LT) = [0] p(#abs) = [0] p(#cklt) = [1] x1 + [0] p(#compare) = [0] p(#false) = [0] p(#less) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [0] p(#s) = [4] p(#true) = [0] p(#unit) = [0] p(::) = [1] x1 + [1] x2 + [0] p(INSERT) = [0] p(INSERT#1) = [0] p(INSERT#2) = [0] p(INSERTD) = [0] p(INSERTD#1) = [0] p(INSERTD#2) = [0] p(INSERTIONSORT) = [0] p(INSERTIONSORT#1) = [0] p(INSERTIONSORTD) = [0] p(INSERTIONSORTD#1) = [0] p(TESTINSERTIONSORT) = [0] p(TESTINSERTIONSORTD) = [0] p(TESTLIST) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [1] x1 + [0] p(c13) = [0] p(c14) = [1] x1 + [0] p(c15) = [0] p(c16) = [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] x1 + [1] x2 + [0] p(c2) = [0] p(c20) = [1] x1 + [0] p(c21) = [1] x1 + [1] x2 + [0] p(c22) = [0] p(c23) = [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [1] x1 + [1] x2 + [0] p(c27) = [0] p(c28) = [0] p(c29) = [1] x1 + [2] p(c3) = [1] p(c30) = [1] p(c31) = [1] x2 + [2] p(c32) = [4] p(c33) = [1] x1 + [0] p(c34) = [1] x1 + [1] x2 + [0] p(c35) = [1] p(c36) = [1] x1 + [1] x2 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [4] p(c4) = [0] p(c40) = [1] p(c41) = [0] p(c42) = [4] p(c43) = [2] p(c44) = [1] x1 + [0] p(c45) = [1] p(c46) = [0] p(c47) = [1] x1 + [0] p(c5) = [1] p(c6) = [1] p(c7) = [0] p(c8) = [0] p(c9) = [4] p(insert) = [1] x1 + [1] x2 + [0] p(insert#1) = [1] x1 + [1] x2 + [0] p(insert#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertD) = [1] x1 + [1] x2 + [0] p(insertD#1) = [1] x1 + [1] x2 + [0] p(insertD#2) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(insertionsort) = [1] x1 + [0] p(insertionsort#1) = [1] x1 + [0] p(insertionsortD) = [1] x1 + [0] p(insertionsortD#1) = [1] x1 + [0] p(nil) = [0] p(testInsertionsort) = [1] p(testInsertionsortD) = [1] x1 + [1] p(testList) = [1] x1 + [1] p(#ABS#) = [1] x1 + [1] p(#CKLT#) = [1] x1 + [2] p(#COMPARE#) = [1] x1 + [1] x2 + [0] p(#LESS#) = [1] x1 + [0] p(#abs#) = [1] x1 + [1] p(#cklt#) = [1] x1 + [1] p(#compare#) = [4] x1 + [0] p(#less#) = [1] p(INSERT#) = [1] x2 + [0] p(INSERT#1#) = [1] x1 + [6] p(INSERT#2#) = [1] x1 + [1] x3 + [1] x4 + [6] p(INSERTD#) = [1] x2 + [5] p(INSERTD#1#) = [1] x1 + [2] p(INSERTD#2#) = [1] x1 + [1] x3 + [1] x4 + [0] p(INSERTIONSORT#) = [1] x1 + [0] p(INSERTIONSORT#1#) = [1] x1 + [0] p(INSERTIONSORTD#) = [1] x1 + [6] p(INSERTIONSORTD#1#) = [1] x1 + [6] p(TESTINSERTIONSORT#) = [4] x1 + [1] p(TESTINSERTIONSORTD#) = [7] p(TESTLIST#) = [4] x1 + [1] p(insert#) = [2] x1 + [2] p(insert#1#) = [1] x1 + [1] x2 + [4] p(insert#2#) = [1] x3 + [1] p(insertD#) = [0] p(insertD#1#) = [1] x1 + [0] p(insertD#2#) = [1] x3 + [2] x4 + [0] p(insertionsort#) = [1] p(insertionsort#1#) = [1] x1 + [1] p(insertionsortD#) = [0] p(insertionsortD#1#) = [4] x1 + [1] p(testInsertionsort#) = [0] p(testInsertionsortD#) = [1] x1 + [0] p(testList#) = [4] x1 + [1] p(c_1) = [4] p(c_2) = [1] p(c_3) = [1] p(c_4) = [0] p(c_5) = [2] x2 + [1] x3 + [1] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] p(c_9) = [0] p(c_10) = [1] x1 + [4] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [2] p(c_13) = [1] p(c_14) = [0] p(c_15) = [1] x1 + [7] p(c_16) = [1] p(c_17) = [1] x2 + [4] p(c_18) = [1] p(c_19) = [1] p(c_20) = [1] p(c_21) = [1] p(c_22) = [2] x1 + [2] p(c_23) = [0] p(c_24) = [4] p(c_25) = [4] x1 + [0] p(c_26) = [2] p(c_27) = [0] p(c_28) = [4] p(c_29) = [2] x1 + [4] p(c_30) = [0] p(c_31) = [0] p(c_32) = [1] x1 + [0] p(c_33) = [2] x1 + [1] p(c_34) = [1] p(c_35) = [0] p(c_36) = [1] p(c_37) = [2] p(c_38) = [1] p(c_39) = [0] p(c_40) = [0] p(c_41) = [1] p(c_42) = [2] x1 + [0] p(c_43) = [0] p(c_44) = [1] p(c_45) = [4] p(c_46) = [2] x1 + [1] p(c_47) = [0] p(c_48) = [1] x1 + [1] p(c_49) = [0] p(c_50) = [1] p(c_51) = [1] p(c_52) = [1] p(c_53) = [2] p(c_54) = [1] p(c_55) = [1] p(c_56) = [1] p(c_57) = [1] p(c_58) = [0] p(c_59) = [1] p(c_60) = [0] p(c_61) = [1] x1 + [0] p(c_62) = [0] p(c_63) = [0] p(c_64) = [0] p(c_65) = [2] x1 + [1] p(c_66) = [0] p(c_67) = [0] p(c_68) = [4] x1 + [1] x2 + [2] p(c_69) = [1] p(c_70) = [2] x1 + [2] p(c_71) = [1] p(c_72) = [1] p(c_73) = [1] p(c_74) = [2] x1 + [1] p(c_75) = [4] p(c_76) = [1] p(c_77) = [0] p(c_78) = [1] x1 + [1] p(c_79) = [1] x1 + [1] p(c_80) = [1] x1 + [1] p(c_81) = [2] p(c_82) = [2] p(c_83) = [1] p(c_84) = [0] p(c_85) = [1] p(c_86) = [1] x2 + [1] p(c_87) = [1] x3 + [2] x4 + [1] x7 + [1] x8 + [4] Following rules are strictly oriented: INSERTD#(z0,z1) = [1] z1 + [5] > [1] z1 + [2] = c_11(INSERTD#1#(z1,z0)) Following rules are (at-least) weakly oriented: INSERT#(z0,z1) = [1] z1 + [0] >= [1] z1 + [6] = c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [6] >= [1] z0 + [1] z1 + [6] = c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [6] >= [1] z2 + [4] = c_10(INSERT#(z0,z2)) INSERTD#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTD#2#(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [0] >= [1] z2 + [12] = c_15(INSERTD#(z0,z2)) INSERTIONSORT#(z0) = [1] z0 + [0] >= [1] z0 + [0] = INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z1 + [0] = INSERTIONSORT#(z1) INSERTIONSORTD#(z0) = [1] z0 + [6] >= [1] z0 + [6] = INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [6] >= [1] z1 + [5] = INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) = [1] z0 + [1] z1 + [6] >= [1] z1 + [6] = INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) = [4] z0 + [1] >= [1] = INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) = [7] >= [7] = INSERTIONSORTD#(testList(#unit())) #abs(#0()) = [0] >= [0] = #0() #abs(#pos(z0)) = [0] >= [0] = #pos(z0) #cklt(#EQ()) = [0] >= [0] = #false() #cklt(#GT()) = [0] >= [0] = #false() #cklt(#LT()) = [0] >= [0] = #true() #compare(#0(),#0()) = [0] >= [0] = #EQ() #compare(#0(),#neg(z0)) = [0] >= [0] = #GT() #compare(#0(),#pos(z0)) = [0] >= [0] = #LT() #compare(#0(),#s(z0)) = [0] >= [0] = #LT() #compare(#neg(z0),#0()) = [0] >= [0] = #LT() #compare(#neg(z0),#neg(z1)) = [0] >= [0] = #compare(z1,z0) #compare(#neg(z0),#pos(z1)) = [0] >= [0] = #LT() #compare(#pos(z0),#0()) = [0] >= [0] = #GT() #compare(#pos(z0),#neg(z1)) = [0] >= [0] = #GT() #compare(#pos(z0),#pos(z1)) = [0] >= [0] = #compare(z0,z1) #compare(#s(z0),#0()) = [0] >= [0] = #GT() #compare(#s(z0),#s(z1)) = [0] >= [0] = #compare(z0,z1) #less(z0,z1) = [0] >= [0] = #cklt(#compare(z0,z1)) insert(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert#1(z1,z0) insert#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = ::(z0,nil()) insert#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insert(z0,z2)) insertD(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD#1(z1,z0) insertD#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = ::(z0,nil()) insertD#2(#false(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = ::(z1,insertD(z0,z2)) insertionsort(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsort#1(z0) insertionsort#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insert(z0,insertionsort(z1)) insertionsort#1(nil()) = [0] >= [0] = nil() insertionsortD(z0) = [1] z0 + [0] >= [1] z0 + [0] = insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) = [0] >= [0] = nil() testList(z0) = [1] z0 + [1] >= [0] = ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.b:4: Ara. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) - Weak DPs: INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: Ara {minDegree = 1, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1, isBestCase = False, mkCompletelyDefined = False, verboseOutput = False} + Details: Signatures used: ---------------- F (TrsFun "#0") :: [] -(0)-> "A"(1) F (TrsFun "#0") :: [] -(0)-> "A"(0) F (TrsFun "#0") :: [] -(0)-> "A"(12) F (TrsFun "#0") :: [] -(0)-> "A"(10) F (TrsFun "#0") :: [] -(0)-> "A"(8) F (TrsFun "#0") :: [] -(0)-> "A"(14) F (TrsFun "#EQ") :: [] -(0)-> "A"(0) F (TrsFun "#GT") :: [] -(0)-> "A"(0) F (TrsFun "#LT") :: [] -(0)-> "A"(0) F (TrsFun "#abs") :: ["A"(1)] -(0)-> "A"(12) F (TrsFun "#cklt") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#compare") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "#false") :: [] -(0)-> "A"(0) F (TrsFun "#less") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "#neg") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(1) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(13) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(15) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(11) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(5) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(9) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(13) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(7) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(15) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(9) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(8) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(1) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(3) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(10) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(6) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(11) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(14) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(12) F (TrsFun "#true") :: [] -(0)-> "A"(0) F (TrsFun "#unit") :: [] -(0)-> "A"(14) F (TrsFun "::") :: ["A"(0) x "A"(1)] -(1)-> "A"(1) F (TrsFun "::") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "insert") :: ["A"(0) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insert#1") :: ["A"(1) x "A"(0)] -(1)-> "A"(1) F (TrsFun "insert#2") :: ["A"(0) x "A"(0) x "A"(0) x "A"(1)] -(2)-> "A"(1) F (TrsFun "insertD") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "insertD#1") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "insertD#2") :: ["A"(0) x "A"(0) x "A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "insertionsort") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "insertionsort#1") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "insertionsortD") :: ["A"(1)] -(1)-> "A"(0) F (TrsFun "insertionsortD#1") :: ["A"(1)] -(1)-> "A"(0) F (TrsFun "nil") :: [] -(0)-> "A"(1) F (TrsFun "nil") :: [] -(0)-> "A"(0) F (TrsFun "nil") :: [] -(0)-> "A"(13) F (TrsFun "nil") :: [] -(0)-> "A"(10) F (TrsFun "nil") :: [] -(0)-> "A"(12) F (TrsFun "nil") :: [] -(0)-> "A"(9) F (TrsFun "nil") :: [] -(0)-> "A"(8) F (TrsFun "testList") :: ["A"(2)] -(15)-> "A"(1) F (DpFun "INSERT") :: ["A"(0) x "A"(1)] -(1)-> "A"(2) F (DpFun "INSERT#1") :: ["A"(1) x "A"(0)] -(0)-> "A"(2) F (DpFun "INSERT#2") :: ["A"(0) x "A"(0) x "A"(0) x "A"(1)] -(1)-> "A"(8) F (DpFun "INSERTD") :: ["A"(0) x "A"(0)] -(0)-> "A"(14) F (DpFun "INSERTD#1") :: ["A"(0) x "A"(0)] -(0)-> "A"(14) F (DpFun "INSERTD#2") :: ["A"(0) x "A"(0) x "A"(0) x "A"(0)] -(0)-> "A"(6) F (DpFun "INSERTIONSORT") :: ["A"(1)] -(0)-> "A"(0) F (DpFun "INSERTIONSORT#1") :: ["A"(1)] -(0)-> "A"(0) F (DpFun "INSERTIONSORTD") :: ["A"(1)] -(0)-> "A"(6) F (DpFun "INSERTIONSORTD#1") :: ["A"(1)] -(0)-> "A"(6) F (DpFun "TESTINSERTIONSORT") :: ["A"(0)] -(15)-> "A"(0) F (DpFun "TESTINSERTIONSORTD") :: ["A"(0)] -(15)-> "A"(3) F (ComFun 6) :: ["A"(0)] -(0)-> "A"(11) F (ComFun 7) :: ["A"(0)] -(0)-> "A"(3) F (ComFun 10) :: ["A"(0)] -(0)-> "A"(9) F (ComFun 11) :: ["A"(14)] -(0)-> "A"(14) F (ComFun 12) :: ["A"(0)] -(0)-> "A"(15) F (ComFun 15) :: ["A"(0)] -(0)-> "A"(7) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "F (ComFun 10)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 11)_A" :: ["A"(1)] -(0)-> "A"(1) "F (ComFun 12)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 15)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 6)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 7)_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#0\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#EQ\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#GT\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#LT\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#false\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#neg\")_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#pos\")_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#s\")_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#true\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#unit\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"::\")_A" :: ["A"(0) x "A"(1)] -(1)-> "A"(1) "F (TrsFun \"nil\")_A" :: [] -(0)-> "A"(1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) 2. Weak: INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) ** Step 8.b:5: Ara. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) - Weak DPs: INSERT#(z0,z1) -> c_6(INSERT#1#(z1,z0)) INSERT#1#(::(z0,z1),z2) -> c_7(INSERT#2#(#less(z0,z2),z2,z0,z1)) INSERT#2#(#true(),z0,z1,z2) -> c_10(INSERT#(z0,z2)) INSERTD#(z0,z1) -> c_11(INSERTD#1#(z1,z0)) INSERTD#1#(::(z0,z1),z2) -> c_12(INSERTD#2#(#less(z0,z2),z2,z0,z1)) INSERTIONSORT#(z0) -> INSERTIONSORT#1#(z0) INSERTIONSORT#1#(::(z0,z1)) -> INSERT#(z0,insertionsort(z1)) INSERTIONSORT#1#(::(z0,z1)) -> INSERTIONSORT#(z1) INSERTIONSORTD#(z0) -> INSERTIONSORTD#1#(z0) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTD#(z0,insertionsortD(z1)) INSERTIONSORTD#1#(::(z0,z1)) -> INSERTIONSORTD#(z1) TESTINSERTIONSORT#(z0) -> INSERTIONSORT#(testList(#unit())) TESTINSERTIONSORTD#(z0) -> INSERTIONSORTD#(testList(#unit())) - Weak TRS: #abs(#0()) -> #0() #abs(#pos(z0)) -> #pos(z0) #cklt(#EQ()) -> #false() #cklt(#GT()) -> #false() #cklt(#LT()) -> #true() #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) #less(z0,z1) -> #cklt(#compare(z0,z1)) insert(z0,z1) -> insert#1(z1,z0) insert#1(::(z0,z1),z2) -> insert#2(#less(z0,z2),z2,z0,z1) insert#1(nil(),z0) -> ::(z0,nil()) insert#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insert#2(#true(),z0,z1,z2) -> ::(z1,insert(z0,z2)) insertD(z0,z1) -> insertD#1(z1,z0) insertD#1(::(z0,z1),z2) -> insertD#2(#less(z0,z2),z2,z0,z1) insertD#1(nil(),z0) -> ::(z0,nil()) insertD#2(#false(),z0,z1,z2) -> ::(z0,::(z1,z2)) insertD#2(#true(),z0,z1,z2) -> ::(z1,insertD(z0,z2)) insertionsort(z0) -> insertionsort#1(z0) insertionsort#1(::(z0,z1)) -> insert(z0,insertionsort(z1)) insertionsort#1(nil()) -> nil() insertionsortD(z0) -> insertionsortD#1(z0) insertionsortD#1(::(z0,z1)) -> insertD(z0,insertionsortD(z1)) insertionsortD#1(nil()) -> nil() testList(z0) -> ::(#abs(#0()) ,::(#abs(#pos(#s(#s(#s(#s(#0())))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#s(#0()))))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#0()))))))))) ,::(#abs(#pos(#s(#0()))) ,::(#abs(#pos(#s(#s(#0())))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#s(#s(#0())))))))))) ,::(#abs(#pos(#s(#s(#s(#s(#s(#s(#0())))))))) ,::(#abs(#pos(#s(#s(#s(#0()))))),nil())))))))))) - Signature: {#ABS/1,#CKLT/1,#COMPARE/2,#LESS/2,#abs/1,#cklt/1,#compare/2,#less/2,INSERT/2,INSERT#1/2,INSERT#2/4 ,INSERTD/2,INSERTD#1/2,INSERTD#2/4,INSERTIONSORT/1,INSERTIONSORT#1/1,INSERTIONSORTD/1,INSERTIONSORTD#1/1 ,TESTINSERTIONSORT/1,TESTINSERTIONSORTD/1,TESTLIST/1,insert/2,insert#1/2,insert#2/4,insertD/2,insertD#1/2 ,insertD#2/4,insertionsort/1,insertionsort#1/1,insertionsortD/1,insertionsortD#1/1,testInsertionsort/1 ,testInsertionsortD/1,testList/1,#ABS#/1,#CKLT#/1,#COMPARE#/2,#LESS#/2,#abs#/1,#cklt#/1,#compare#/2,#less#/2 ,INSERT#/2,INSERT#1#/2,INSERT#2#/4,INSERTD#/2,INSERTD#1#/2,INSERTD#2#/4,INSERTIONSORT#/1,INSERTIONSORT#1#/1 ,INSERTIONSORTD#/1,INSERTIONSORTD#1#/1,TESTINSERTIONSORT#/1,TESTINSERTIONSORTD#/1,TESTLIST#/1,insert#/2 ,insert#1#/2,insert#2#/4,insertD#/2,insertD#1#/2,insertD#2#/4,insertionsort#/1,insertionsort#1#/1 ,insertionsortD#/1,insertionsortD#1#/1,testInsertionsort#/1,testInsertionsortD#/1,testList#/1} / {#0/0,#EQ/0 ,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,#unit/0,::/2,c/0,c1/0,c10/0,c11/0,c12/1,c13/0,c14/1,c15/0 ,c16/0,c17/0,c18/0,c19/2,c2/0,c20/1,c21/2,c22/0,c23/0,c24/1,c25/1,c26/2,c27/0,c28/0,c29/1,c3/0,c30/1,c31/2 ,c32/0,c33/1,c34/2,c35/0,c36/2,c37/2,c38/1,c39/1,c4/0,c40/1,c41/1,c42/1,c43/1,c44/1,c45/1,c46/1,c47/1,c5/0 ,c6/0,c7/0,c8/1,c9/0,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/3,c_6/1,c_7/1,c_8/0,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0 ,c_14/0,c_15/1,c_16/1,c_17/2,c_18/0,c_19/1,c_20/2,c_21/0,c_22/1,c_23/1,c_24/1,c_25/1,c_26/1,c_27/1,c_28/1 ,c_29/1,c_30/1,c_31/1,c_32/1,c_33/1,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/1,c_43/0 ,c_44/0,c_45/0,c_46/1,c_47/0,c_48/1,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/0 ,c_59/0,c_60/0,c_61/1,c_62/0,c_63/0,c_64/0,c_65/1,c_66/0,c_67/1,c_68/2,c_69/1,c_70/2,c_71/0,c_72/0,c_73/1 ,c_74/1,c_75/2,c_76/0,c_77/0,c_78/1,c_79/1,c_80/2,c_81/0,c_82/1,c_83/2,c_84/0,c_85/2,c_86/2,c_87/10} - Obligation: innermost runtime complexity wrt. defined symbols {#ABS#,#CKLT#,#COMPARE#,#LESS#,#abs#,#cklt#,#compare# ,#less#,INSERT#,INSERT#1#,INSERT#2#,INSERTD#,INSERTD#1#,INSERTD#2#,INSERTIONSORT#,INSERTIONSORT#1# ,INSERTIONSORTD#,INSERTIONSORTD#1#,TESTINSERTIONSORT#,TESTINSERTIONSORTD#,TESTLIST#,insert#,insert#1# ,insert#2#,insertD#,insertD#1#,insertD#2#,insertionsort#,insertionsort#1#,insertionsortD#,insertionsortD#1# ,testInsertionsort#,testInsertionsortD#,testList#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s ,#true,#unit,::,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,c5,c6,c7,c8,c9,nil} + Applied Processor: Ara {minDegree = 1, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1, isBestCase = False, mkCompletelyDefined = False, verboseOutput = False} + Details: Signatures used: ---------------- F (TrsFun "#0") :: [] -(0)-> "A"(1) F (TrsFun "#0") :: [] -(0)-> "A"(0) F (TrsFun "#0") :: [] -(0)-> "A"(15) F (TrsFun "#0") :: [] -(0)-> "A"(9) F (TrsFun "#0") :: [] -(0)-> "A"(14) F (TrsFun "#0") :: [] -(0)-> "A"(8) F (TrsFun "#0") :: [] -(0)-> "A"(10) F (TrsFun "#EQ") :: [] -(0)-> "A"(0) F (TrsFun "#GT") :: [] -(0)-> "A"(0) F (TrsFun "#LT") :: [] -(0)-> "A"(0) F (TrsFun "#abs") :: ["A"(1)] -(0)-> "A"(6) F (TrsFun "#cklt") :: ["A"(0)] -(0)-> "A"(8) F (TrsFun "#compare") :: ["A"(0) x "A"(0)] -(0)-> "A"(0) F (TrsFun "#false") :: [] -(0)-> "A"(2) F (TrsFun "#false") :: [] -(0)-> "A"(8) F (TrsFun "#less") :: ["A"(0) x "A"(0)] -(0)-> "A"(8) F (TrsFun "#neg") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(1) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(15) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(5) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(6) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(9) F (TrsFun "#pos") :: ["A"(0)] -(0)-> "A"(11) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(0) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(2) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(4) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(10) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(1) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(8) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(14) F (TrsFun "#s") :: ["A"(0)] -(0)-> "A"(7) F (TrsFun "#true") :: [] -(0)-> "A"(0) F (TrsFun "#true") :: [] -(0)-> "A"(2) F (TrsFun "#true") :: [] -(0)-> "A"(8) F (TrsFun "#true") :: [] -(0)-> "A"(4) F (TrsFun "#unit") :: [] -(0)-> "A"(0) F (TrsFun "::") :: ["A"(1) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insert") :: ["A"(1) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insert#1") :: ["A"(1) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insert#2") :: ["A"(2) x "A"(1) x "A"(1) x "A"(1)] -(2)-> "A"(1) F (TrsFun "insertD") :: ["A"(1) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insertD#1") :: ["A"(1) x "A"(1)] -(1)-> "A"(1) F (TrsFun "insertD#2") :: ["A"(8) x "A"(1) x "A"(1) x "A"(1)] -(2)-> "A"(1) F (TrsFun "insertionsort") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "insertionsort#1") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "insertionsortD") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "insertionsortD#1") :: ["A"(1)] -(0)-> "A"(1) F (TrsFun "nil") :: [] -(0)-> "A"(1) F (TrsFun "nil") :: [] -(0)-> "A"(13) F (TrsFun "nil") :: [] -(0)-> "A"(9) F (TrsFun "nil") :: [] -(0)-> "A"(10) F (TrsFun "nil") :: [] -(0)-> "A"(12) F (TrsFun "testList") :: ["A"(0)] -(15)-> "A"(1) F (DpFun "INSERT") :: ["A"(0) x "A"(1)] -(1)-> "A"(6) F (DpFun "INSERT#1") :: ["A"(1) x "A"(0)] -(1)-> "A"(6) F (DpFun "INSERT#2") :: ["A"(4) x "A"(0) x "A"(0) x "A"(1)] -(1)-> "A"(10) F (DpFun "INSERTD") :: ["A"(0) x "A"(1)] -(1)-> "A"(10) F (DpFun "INSERTD#1") :: ["A"(1) x "A"(0)] -(1)-> "A"(11) F (DpFun "INSERTD#2") :: ["A"(0) x "A"(0) x "A"(0) x "A"(1)] -(2)-> "A"(0) F (DpFun "INSERTIONSORT") :: ["A"(1)] -(0)-> "A"(4) F (DpFun "INSERTIONSORT#1") :: ["A"(1)] -(0)-> "A"(4) F (DpFun "INSERTIONSORTD") :: ["A"(1)] -(0)-> "A"(4) F (DpFun "INSERTIONSORTD#1") :: ["A"(1)] -(0)-> "A"(4) F (DpFun "TESTINSERTIONSORT") :: ["A"(0)] -(15)-> "A"(0) F (DpFun "TESTINSERTIONSORTD") :: ["A"(0)] -(15)-> "A"(0) F (ComFun 6) :: ["A"(0)] -(0)-> "A"(15) F (ComFun 7) :: ["A"(0)] -(0)-> "A"(15) F (ComFun 10) :: ["A"(0)] -(0)-> "A"(15) F (ComFun 11) :: ["A"(10)] -(0)-> "A"(10) F (ComFun 12) :: ["A"(0)] -(0)-> "A"(15) F (ComFun 15) :: ["A"(0)] -(0)-> "A"(8) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "F (ComFun 10)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 11)_A" :: ["A"(1)] -(0)-> "A"(1) "F (ComFun 12)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 15)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 6)_A" :: ["A"(0)] -(0)-> "A"(1) "F (ComFun 7)_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#0\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#EQ\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#GT\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#LT\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#false\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#neg\")_A" :: ["A"(1)] -(1)-> "A"(1) "F (TrsFun \"#pos\")_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#s\")_A" :: ["A"(0)] -(0)-> "A"(1) "F (TrsFun \"#true\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"#unit\")_A" :: [] -(0)-> "A"(1) "F (TrsFun \"::\")_A" :: ["A"(1) x "A"(1)] -(1)-> "A"(1) "F (TrsFun \"nil\")_A" :: [] -(0)-> "A"(1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: INSERTD#2#(#true(),z0,z1,z2) -> c_15(INSERTD#(z0,z2)) 2. Weak: WORST_CASE(?,O(n^2))