* Step 1: Sum WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            m1(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil())))
                           ,nil()))
            m2(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),nil()))
                        ,::(::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil()))
                           ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))
                              ,nil())))
            m3(@x) -> ::(::(#abs(#pos(#s(#0())))
                           ,::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0())))))
                                 ,::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                           ,nil()))
            m4(@x) -> ::(::(#abs(#pos(#s(#0()))),nil())
                        ,::(::(#abs(#pos(#s(#s(#0())))),nil())
                           ,::(::(#abs(#pos(#s(#s(#s(#0()))))),nil())
                              ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil()),nil()))))
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            matrixMult3(@m1,@m2,@m3) -> matrixMult(matrixMult(@m1,@m2),@m3)
            matrixMultList(@acc,@mm) -> matrixMultList#1(@mm,@acc)
            matrixMultList#1(::(@m,@ms),@acc) -> matrixMultList(matrixMult(@acc,@m),@ms)
            matrixMultList#1(nil(),@acc) -> @acc
            matrixMultOld(@m1,@m2) -> matrixMult'(@m1,transpose(@m2))
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
            transpose'(@m) -> transAcc(@m,makeBase(@m))
        - Weak TRS:
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs,#add,#mult,#natmult,#pred,#succ,*,+,attach,attach#1
            ,attach#2,lineMult,lineMult#1,m1,m2,m3,m4,makeBase,makeBase#1,matrixMult,matrixMult',matrixMult'#1
            ,matrixMult3,matrixMultList,matrixMultList#1,matrixMultOld,mkBase,mkBase#1,mult,mult#1,mult#2,split,split#1
            ,split#2,split#3,transAcc,transAcc#1,transpose,transpose#1,transpose#2,transpose#3
            ,transpose'} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
* Step 2: DependencyPairs WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            m1(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil())))
                           ,nil()))
            m2(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),nil()))
                        ,::(::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil()))
                           ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))
                              ,nil())))
            m3(@x) -> ::(::(#abs(#pos(#s(#0())))
                           ,::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0())))))
                                 ,::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                           ,nil()))
            m4(@x) -> ::(::(#abs(#pos(#s(#0()))),nil())
                        ,::(::(#abs(#pos(#s(#s(#0())))),nil())
                           ,::(::(#abs(#pos(#s(#s(#s(#0()))))),nil())
                              ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil()),nil()))))
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            matrixMult3(@m1,@m2,@m3) -> matrixMult(matrixMult(@m1,@m2),@m3)
            matrixMultList(@acc,@mm) -> matrixMultList#1(@mm,@acc)
            matrixMultList#1(::(@m,@ms),@acc) -> matrixMultList(matrixMult(@acc,@m),@ms)
            matrixMultList#1(nil(),@acc) -> @acc
            matrixMultOld(@m1,@m2) -> matrixMult'(@m1,transpose(@m2))
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
            transpose'(@m) -> transAcc(@m,makeBase(@m))
        - Weak TRS:
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs,#add,#mult,#natmult,#pred,#succ,*,+,attach,attach#1
            ,attach#2,lineMult,lineMult#1,m1,m2,m3,m4,makeBase,makeBase#1,matrixMult,matrixMult',matrixMult'#1
            ,matrixMult3,matrixMultList,matrixMultList#1,matrixMultOld,mkBase,mkBase#1,mult,mult#1,mult#2,split,split#1
            ,split#2,split#3,transAcc,transAcc#1,transpose,transpose#1,transpose#2,transpose#3
            ,transpose'} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          #abs#(#0()) -> c_1()
          #abs#(#neg(@x)) -> c_2()
          #abs#(#pos(@x)) -> c_3()
          #abs#(#s(@x)) -> c_4()
          *#(@x,@y) -> c_5(#mult#(@x,@y))
          +#(@x,@y) -> c_6(#add#(@x,@y))
          attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          attach#1#(nil(),@m) -> c_9()
          attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          attach#2#(nil(),@x,@xs) -> c_11()
          lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          lineMult#1#(nil(),@l) -> c_14()
          m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          makeBase#(@m) -> c_19(makeBase#1#(@m))
          makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          makeBase#1#(nil()) -> c_21()
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                      ,transAcc#(@m2,makeBase(@m2))
                                      ,makeBase#(@m2))
          matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          matrixMult'#1#(nil(),@m2) -> c_25()
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          matrixMultList#1#(nil(),@acc) -> c_29()
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          mkBase#(@m) -> c_31(mkBase#1#(@m))
          mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          mkBase#1#(nil()) -> c_33()
          mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
          mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
          split#(@m) -> c_39(split#1#(@m))
          split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          split#1#(nil()) -> c_41()
          split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
          split#2#(nil(),@ls) -> c_43()
          split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
          transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          transAcc#1#(nil(),@base) -> c_47()
          transpose#(@m) -> c_48(transpose#1#(@m,@m))
          transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          transpose#1#(nil(),@m) -> c_50()
          transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          transpose#3#(nil(),@l) -> c_53()
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        Weak DPs
          #add#(#0(),@y) -> c_55()
          #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
          #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
          #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #mult#(#0(),#0()) -> c_60()
          #mult#(#0(),#neg(@y)) -> c_61()
          #mult#(#0(),#pos(@y)) -> c_62()
          #mult#(#neg(@x),#0()) -> c_63()
          #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
          #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
          #mult#(#pos(@x),#0()) -> c_66()
          #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
          #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
          #natmult#(#0(),@y) -> c_69()
          #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          #pred#(#0()) -> c_71()
          #pred#(#neg(#s(@x))) -> c_72()
          #pred#(#pos(#s(#0()))) -> c_73()
          #pred#(#pos(#s(#s(@x)))) -> c_74()
          #succ#(#0()) -> c_75()
          #succ#(#neg(#s(#0()))) -> c_76()
          #succ#(#neg(#s(#s(@x)))) -> c_77()
          #succ#(#pos(#s(@x))) -> c_78()
        
        and mark the set of starting terms.
* Step 3: UsableRules WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            *#(@x,@y) -> c_5(#mult#(@x,@y))
            +#(@x,@y) -> c_6(#add#(@x,@y))
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#1#(nil(),@m) -> c_9()
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            attach#2#(nil(),@x,@xs) -> c_11()
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            lineMult#1#(nil(),@l) -> c_14()
            m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            makeBase#1#(nil()) -> c_21()
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult'#1#(nil(),@m2) -> c_25()
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultList#1#(nil(),@acc) -> c_29()
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mkBase#1#(nil()) -> c_33()
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
            mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#1#(nil()) -> c_41()
            split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
            split#2#(nil(),@ls) -> c_43()
            split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transAcc#1#(nil(),@base) -> c_47()
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#1#(nil(),@m) -> c_50()
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose#3#(nil(),@l) -> c_53()
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            #add#(#0(),@y) -> c_55()
            #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #mult#(#0(),#0()) -> c_60()
            #mult#(#0(),#neg(@y)) -> c_61()
            #mult#(#0(),#pos(@y)) -> c_62()
            #mult#(#neg(@x),#0()) -> c_63()
            #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_66()
            #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
            #natmult#(#0(),@y) -> c_69()
            #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #pred#(#0()) -> c_71()
            #pred#(#neg(#s(@x))) -> c_72()
            #pred#(#pos(#s(#0()))) -> c_73()
            #pred#(#pos(#s(#s(@x)))) -> c_74()
            #succ#(#0()) -> c_75()
            #succ#(#neg(#s(#0()))) -> c_76()
            #succ#(#neg(#s(#s(@x)))) -> c_77()
            #succ#(#pos(#s(@x))) -> c_78()
        - Weak TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            m1(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil())))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil())))
                           ,nil()))
            m2(@x) -> ::(::(#abs(#pos(#s(#0()))),::(#abs(#pos(#s(#s(#0())))),nil()))
                        ,::(::(#abs(#pos(#s(#s(#0())))),::(#abs(#pos(#s(#s(#s(#0()))))),nil()))
                           ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))
                              ,nil())))
            m3(@x) -> ::(::(#abs(#pos(#s(#0())))
                           ,::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0()))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                        ,::(::(#abs(#pos(#s(#s(#0()))))
                              ,::(#abs(#pos(#s(#s(#s(#0())))))
                                 ,::(#abs(#pos(#s(#s(#s(#s(#0())))))),::(#abs(#pos(#s(#s(#s(#s(#s(#0()))))))),nil()))))
                           ,nil()))
            m4(@x) -> ::(::(#abs(#pos(#s(#0()))),nil())
                        ,::(::(#abs(#pos(#s(#s(#0())))),nil())
                           ,::(::(#abs(#pos(#s(#s(#s(#0()))))),nil())
                              ,::(::(#abs(#pos(#s(#s(#s(#s(#0())))))),nil()),nil()))))
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            matrixMult3(@m1,@m2,@m3) -> matrixMult(matrixMult(@m1,@m2),@m3)
            matrixMultList(@acc,@mm) -> matrixMultList#1(@mm,@acc)
            matrixMultList#1(::(@m,@ms),@acc) -> matrixMultList(matrixMult(@acc,@m),@ms)
            matrixMultList#1(nil(),@acc) -> @acc
            matrixMultOld(@m1,@m2) -> matrixMult'(@m1,transpose(@m2))
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
            transpose'(@m) -> transAcc(@m,makeBase(@m))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/3
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/2,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          split(@m) -> split#1(@m)
          split#1(::(@l,@ls)) -> split#2(@l,@ls)
          split#1(nil()) -> tuple#2(nil(),nil())
          split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
          split#2(nil(),@ls) -> tuple#2(nil(),nil())
          split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          transpose(@m) -> transpose#1(@m,@m)
          transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
          transpose#1(nil(),@m) -> nil()
          transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
          transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
          transpose#3(nil(),@l) -> nil()
          #abs#(#0()) -> c_1()
          #abs#(#neg(@x)) -> c_2()
          #abs#(#pos(@x)) -> c_3()
          #abs#(#s(@x)) -> c_4()
          #add#(#0(),@y) -> c_55()
          #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
          #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
          #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #mult#(#0(),#0()) -> c_60()
          #mult#(#0(),#neg(@y)) -> c_61()
          #mult#(#0(),#pos(@y)) -> c_62()
          #mult#(#neg(@x),#0()) -> c_63()
          #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
          #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
          #mult#(#pos(@x),#0()) -> c_66()
          #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
          #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
          #natmult#(#0(),@y) -> c_69()
          #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          #pred#(#0()) -> c_71()
          #pred#(#neg(#s(@x))) -> c_72()
          #pred#(#pos(#s(#0()))) -> c_73()
          #pred#(#pos(#s(#s(@x)))) -> c_74()
          #succ#(#0()) -> c_75()
          #succ#(#neg(#s(#0()))) -> c_76()
          #succ#(#neg(#s(#s(@x)))) -> c_77()
          #succ#(#pos(#s(@x))) -> c_78()
          *#(@x,@y) -> c_5(#mult#(@x,@y))
          +#(@x,@y) -> c_6(#add#(@x,@y))
          attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          attach#1#(nil(),@m) -> c_9()
          attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          attach#2#(nil(),@x,@xs) -> c_11()
          lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          lineMult#1#(nil(),@l) -> c_14()
          m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                         ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                         ,#abs#(#pos(#s(#s(#0()))))
                         ,#abs#(#pos(#s(#s(#s(#0())))))
                         ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          makeBase#(@m) -> c_19(makeBase#1#(@m))
          makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          makeBase#1#(nil()) -> c_21()
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                      ,transAcc#(@m2,makeBase(@m2))
                                      ,makeBase#(@m2))
          matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          matrixMult'#1#(nil(),@m2) -> c_25()
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          matrixMultList#1#(nil(),@acc) -> c_29()
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          mkBase#(@m) -> c_31(mkBase#1#(@m))
          mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          mkBase#1#(nil()) -> c_33()
          mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
          mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
          split#(@m) -> c_39(split#1#(@m))
          split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          split#1#(nil()) -> c_41()
          split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
          split#2#(nil(),@ls) -> c_43()
          split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
          transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          transAcc#1#(nil(),@base) -> c_47()
          transpose#(@m) -> c_48(transpose#1#(@m,@m))
          transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          transpose#1#(nil(),@m) -> c_50()
          transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          transpose#3#(nil(),@l) -> c_53()
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
* Step 4: PredecessorEstimation WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            *#(@x,@y) -> c_5(#mult#(@x,@y))
            +#(@x,@y) -> c_6(#add#(@x,@y))
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#1#(nil(),@m) -> c_9()
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            attach#2#(nil(),@x,@xs) -> c_11()
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            lineMult#1#(nil(),@l) -> c_14()
            m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            makeBase#1#(nil()) -> c_21()
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult'#1#(nil(),@m2) -> c_25()
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultList#1#(nil(),@acc) -> c_29()
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mkBase#1#(nil()) -> c_33()
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
            mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#1#(nil()) -> c_41()
            split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
            split#2#(nil(),@ls) -> c_43()
            split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transAcc#1#(nil(),@base) -> c_47()
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#1#(nil(),@m) -> c_50()
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose#3#(nil(),@l) -> c_53()
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            #add#(#0(),@y) -> c_55()
            #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #mult#(#0(),#0()) -> c_60()
            #mult#(#0(),#neg(@y)) -> c_61()
            #mult#(#0(),#pos(@y)) -> c_62()
            #mult#(#neg(@x),#0()) -> c_63()
            #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_66()
            #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
            #natmult#(#0(),@y) -> c_69()
            #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #pred#(#0()) -> c_71()
            #pred#(#neg(#s(@x))) -> c_72()
            #pred#(#pos(#s(#0()))) -> c_73()
            #pred#(#pos(#s(#s(@x)))) -> c_74()
            #succ#(#0()) -> c_75()
            #succ#(#neg(#s(#0()))) -> c_76()
            #succ#(#neg(#s(#s(@x)))) -> c_77()
            #succ#(#pos(#s(@x))) -> c_78()
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/3
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/2,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,2,3,4,5,6,9,11,14,21,25,29,33,41,43,44,47,50,53}
        by application of
          Pre({1,2,3,4,5,6,9,11,14,21,25,29,33,41,43,44,47,50,53}) = {7,8,12,15,16,17,18,19,23,27,31,36,37,38,39,40
          ,42,45,48,51}.
        Here rules are labelled as follows:
          1: #abs#(#0()) -> c_1()
          2: #abs#(#neg(@x)) -> c_2()
          3: #abs#(#pos(@x)) -> c_3()
          4: #abs#(#s(@x)) -> c_4()
          5: *#(@x,@y) -> c_5(#mult#(@x,@y))
          6: +#(@x,@y) -> c_6(#add#(@x,@y))
          7: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          8: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          9: attach#1#(nil(),@m) -> c_9()
          10: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          11: attach#2#(nil(),@x,@xs) -> c_11()
          12: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          13: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          14: lineMult#1#(nil(),@l) -> c_14()
          15: m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          16: m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          17: m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          18: m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          19: makeBase#(@m) -> c_19(makeBase#1#(@m))
          20: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          21: makeBase#1#(nil()) -> c_21()
          22: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
          23: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          24: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          25: matrixMult'#1#(nil(),@m2) -> c_25()
          26: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          27: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          28: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
          29: matrixMultList#1#(nil(),@acc) -> c_29()
          30: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          31: mkBase#(@m) -> c_31(mkBase#1#(@m))
          32: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          33: mkBase#1#(nil()) -> c_33()
          34: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          35: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          36: mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
          37: mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
          38: mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
          39: split#(@m) -> c_39(split#1#(@m))
          40: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          41: split#1#(nil()) -> c_41()
          42: split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
          43: split#2#(nil(),@ls) -> c_43()
          44: split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
          45: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          46: transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          47: transAcc#1#(nil(),@base) -> c_47()
          48: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          49: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          50: transpose#1#(nil(),@m) -> c_50()
          51: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          52: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          53: transpose#3#(nil(),@l) -> c_53()
          54: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          55: #add#(#0(),@y) -> c_55()
          56: #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
          57: #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          58: #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
          59: #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          60: #mult#(#0(),#0()) -> c_60()
          61: #mult#(#0(),#neg(@y)) -> c_61()
          62: #mult#(#0(),#pos(@y)) -> c_62()
          63: #mult#(#neg(@x),#0()) -> c_63()
          64: #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
          65: #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
          66: #mult#(#pos(@x),#0()) -> c_66()
          67: #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
          68: #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
          69: #natmult#(#0(),@y) -> c_69()
          70: #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          71: #pred#(#0()) -> c_71()
          72: #pred#(#neg(#s(@x))) -> c_72()
          73: #pred#(#pos(#s(#0()))) -> c_73()
          74: #pred#(#pos(#s(#s(@x)))) -> c_74()
          75: #succ#(#0()) -> c_75()
          76: #succ#(#neg(#s(#0()))) -> c_76()
          77: #succ#(#neg(#s(#s(@x)))) -> c_77()
          78: #succ#(#pos(#s(@x))) -> c_78()
* Step 5: PredecessorEstimation WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
            mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_55()
            #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #mult#(#0(),#0()) -> c_60()
            #mult#(#0(),#neg(@y)) -> c_61()
            #mult#(#0(),#pos(@y)) -> c_62()
            #mult#(#neg(@x),#0()) -> c_63()
            #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_66()
            #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
            #natmult#(#0(),@y) -> c_69()
            #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #pred#(#0()) -> c_71()
            #pred#(#neg(#s(@x))) -> c_72()
            #pred#(#pos(#s(#0()))) -> c_73()
            #pred#(#pos(#s(#s(@x)))) -> c_74()
            #succ#(#0()) -> c_75()
            #succ#(#neg(#s(#0()))) -> c_76()
            #succ#(#neg(#s(#s(@x)))) -> c_77()
            #succ#(#pos(#s(@x))) -> c_78()
            *#(@x,@y) -> c_5(#mult#(@x,@y))
            +#(@x,@y) -> c_6(#add#(@x,@y))
            attach#1#(nil(),@m) -> c_9()
            attach#2#(nil(),@x,@xs) -> c_11()
            lineMult#1#(nil(),@l) -> c_14()
            makeBase#1#(nil()) -> c_21()
            matrixMult'#1#(nil(),@m2) -> c_25()
            matrixMultList#1#(nil(),@acc) -> c_29()
            mkBase#1#(nil()) -> c_33()
            split#1#(nil()) -> c_41()
            split#2#(nil(),@ls) -> c_43()
            split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
            transAcc#1#(nil(),@base) -> c_47()
            transpose#1#(nil(),@m) -> c_50()
            transpose#3#(nil(),@l) -> c_53()
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/3
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/2,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {6,7,8,9,23,25}
        by application of
          Pre({6,7,8,9,23,25}) = {21,22}.
        Here rules are labelled as follows:
          1: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          2: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          3: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          4: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          5: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          6: m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          7: m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                            ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          8: m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                            ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          9: m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                            ,#abs#(#pos(#s(#s(#0()))))
                            ,#abs#(#pos(#s(#s(#s(#0())))))
                            ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          10: makeBase#(@m) -> c_19(makeBase#1#(@m))
          11: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          12: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
          13: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          14: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          15: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          16: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          17: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
          18: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          19: mkBase#(@m) -> c_31(mkBase#1#(@m))
          20: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          21: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          22: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          23: mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
          24: mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
          25: mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
          26: split#(@m) -> c_39(split#1#(@m))
          27: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          28: split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
          29: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          30: transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          31: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          32: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          33: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          34: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          35: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          36: #abs#(#0()) -> c_1()
          37: #abs#(#neg(@x)) -> c_2()
          38: #abs#(#pos(@x)) -> c_3()
          39: #abs#(#s(@x)) -> c_4()
          40: #add#(#0(),@y) -> c_55()
          41: #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
          42: #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          43: #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
          44: #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          45: #mult#(#0(),#0()) -> c_60()
          46: #mult#(#0(),#neg(@y)) -> c_61()
          47: #mult#(#0(),#pos(@y)) -> c_62()
          48: #mult#(#neg(@x),#0()) -> c_63()
          49: #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
          50: #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
          51: #mult#(#pos(@x),#0()) -> c_66()
          52: #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
          53: #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
          54: #natmult#(#0(),@y) -> c_69()
          55: #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          56: #pred#(#0()) -> c_71()
          57: #pred#(#neg(#s(@x))) -> c_72()
          58: #pred#(#pos(#s(#0()))) -> c_73()
          59: #pred#(#pos(#s(#s(@x)))) -> c_74()
          60: #succ#(#0()) -> c_75()
          61: #succ#(#neg(#s(#0()))) -> c_76()
          62: #succ#(#neg(#s(#s(@x)))) -> c_77()
          63: #succ#(#pos(#s(@x))) -> c_78()
          64: *#(@x,@y) -> c_5(#mult#(@x,@y))
          65: +#(@x,@y) -> c_6(#add#(@x,@y))
          66: attach#1#(nil(),@m) -> c_9()
          67: attach#2#(nil(),@x,@xs) -> c_11()
          68: lineMult#1#(nil(),@l) -> c_14()
          69: makeBase#1#(nil()) -> c_21()
          70: matrixMult'#1#(nil(),@m2) -> c_25()
          71: matrixMultList#1#(nil(),@acc) -> c_29()
          72: mkBase#1#(nil()) -> c_33()
          73: split#1#(nil()) -> c_41()
          74: split#2#(nil(),@ls) -> c_43()
          75: split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
          76: transAcc#1#(nil(),@base) -> c_47()
          77: transpose#1#(nil(),@m) -> c_50()
          78: transpose#3#(nil(),@l) -> c_53()
* Step 6: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #add#(#0(),@y) -> c_55()
            #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #mult#(#0(),#0()) -> c_60()
            #mult#(#0(),#neg(@y)) -> c_61()
            #mult#(#0(),#pos(@y)) -> c_62()
            #mult#(#neg(@x),#0()) -> c_63()
            #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
            #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
            #mult#(#pos(@x),#0()) -> c_66()
            #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
            #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
            #natmult#(#0(),@y) -> c_69()
            #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
            #pred#(#0()) -> c_71()
            #pred#(#neg(#s(@x))) -> c_72()
            #pred#(#pos(#s(#0()))) -> c_73()
            #pred#(#pos(#s(#s(@x)))) -> c_74()
            #succ#(#0()) -> c_75()
            #succ#(#neg(#s(#0()))) -> c_76()
            #succ#(#neg(#s(#s(@x)))) -> c_77()
            #succ#(#pos(#s(@x))) -> c_78()
            *#(@x,@y) -> c_5(#mult#(@x,@y))
            +#(@x,@y) -> c_6(#add#(@x,@y))
            attach#1#(nil(),@m) -> c_9()
            attach#2#(nil(),@x,@xs) -> c_11()
            lineMult#1#(nil(),@l) -> c_14()
            m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                           ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
            m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                           ,#abs#(#pos(#s(#s(#0()))))
                           ,#abs#(#pos(#s(#s(#s(#0())))))
                           ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
            makeBase#1#(nil()) -> c_21()
            matrixMult'#1#(nil(),@m2) -> c_25()
            matrixMultList#1#(nil(),@acc) -> c_29()
            mkBase#1#(nil()) -> c_33()
            mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
            mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
            split#1#(nil()) -> c_41()
            split#2#(nil(),@ls) -> c_43()
            split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
            transAcc#1#(nil(),@base) -> c_47()
            transpose#1#(nil(),@m) -> c_50()
            transpose#3#(nil(),@l) -> c_53()
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/3
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/2,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):2
             -->_1 attach#1#(nil(),@m) -> c_9():60
          
          2:S:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):3
             -->_1 attach#2#(nil(),@x,@xs) -> c_11():61
          
          3:S:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          4:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):5
             -->_1 lineMult#1#(nil(),@l) -> c_14():62
          
          5:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
          
          6:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):7
             -->_1 makeBase#1#(nil()) -> c_21():67
          
          7:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          8:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
          
          9:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):10
             -->_1 matrixMult'#1#(nil(),@m2) -> c_25():68
          
          10:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
          
          11:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          12:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):13
             -->_1 matrixMultList#1#(nil(),@acc) -> c_29():69
          
          13:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):12
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          14:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
          
          15:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):16
             -->_1 mkBase#1#(nil()) -> c_33():70
          
          16:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          17:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(nil(),@l2) -> c_36(#abs#(#0())):71
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):18
          
          18:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0())):72
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys)):19
          
          19:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
             -->_1 +#(@x,@y) -> c_6(#add#(@x,@y)):59
             -->_2 *#(@x,@y) -> c_5(#mult#(@x,@y)):58
             -->_3 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
          
          20:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):21
             -->_1 split#1#(nil()) -> c_41():73
          
          21:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls)):22
             -->_1 split#2#(nil(),@ls) -> c_43():74
          
          22:S:split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
             -->_1 split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44():75
             -->_2 split#(@m) -> c_39(split#1#(@m)):20
          
          23:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):24
             -->_1 transAcc#1#(nil(),@base) -> c_47():76
          
          24:S:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          25:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):26
             -->_1 transpose#1#(nil(),@m) -> c_50():77
          
          26:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):27
             -->_2 split#(@m) -> c_39(split#1#(@m)):20
          
          27:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):28
             -->_1 transpose#3#(nil(),@l) -> c_53():78
          
          28:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
          
          29:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
          
          30:W:#abs#(#0()) -> c_1()
             
          
          31:W:#abs#(#neg(@x)) -> c_2()
             
          
          32:W:#abs#(#pos(@x)) -> c_3()
             
          
          33:W:#abs#(#s(@x)) -> c_4()
             
          
          34:W:#add#(#0(),@y) -> c_55()
             
          
          35:W:#add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_74():53
             -->_1 #pred#(#pos(#s(#0()))) -> c_73():52
             -->_1 #pred#(#neg(#s(@x))) -> c_72():51
             -->_1 #pred#(#0()) -> c_71():50
          
          36:W:#add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):38
             -->_2 #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y)):37
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_74():53
             -->_1 #pred#(#pos(#s(#0()))) -> c_73():52
             -->_1 #pred#(#neg(#s(@x))) -> c_72():51
             -->_1 #pred#(#0()) -> c_71():50
          
          37:W:#add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_78():57
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_77():56
             -->_1 #succ#(#neg(#s(#0()))) -> c_76():55
             -->_1 #succ#(#0()) -> c_75():54
          
          38:W:#add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_78():57
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_77():56
             -->_1 #succ#(#neg(#s(#0()))) -> c_76():55
             -->_1 #succ#(#0()) -> c_75():54
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):38
             -->_2 #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y)):37
          
          39:W:#mult#(#0(),#0()) -> c_60()
             
          
          40:W:#mult#(#0(),#neg(@y)) -> c_61()
             
          
          41:W:#mult#(#0(),#pos(@y)) -> c_62()
             
          
          42:W:#mult#(#neg(@x),#0()) -> c_63()
             
          
          43:W:#mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):49
             -->_1 #natmult#(#0(),@y) -> c_69():48
          
          44:W:#mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):49
             -->_1 #natmult#(#0(),@y) -> c_69():48
          
          45:W:#mult#(#pos(@x),#0()) -> c_66()
             
          
          46:W:#mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):49
             -->_1 #natmult#(#0(),@y) -> c_69():48
          
          47:W:#mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
             -->_1 #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):49
             -->_1 #natmult#(#0(),@y) -> c_69():48
          
          48:W:#natmult#(#0(),@y) -> c_69()
             
          
          49:W:#natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
             -->_2 #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y)):49
             -->_2 #natmult#(#0(),@y) -> c_69():48
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):38
             -->_1 #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y)):37
          
          50:W:#pred#(#0()) -> c_71()
             
          
          51:W:#pred#(#neg(#s(@x))) -> c_72()
             
          
          52:W:#pred#(#pos(#s(#0()))) -> c_73()
             
          
          53:W:#pred#(#pos(#s(#s(@x)))) -> c_74()
             
          
          54:W:#succ#(#0()) -> c_75()
             
          
          55:W:#succ#(#neg(#s(#0()))) -> c_76()
             
          
          56:W:#succ#(#neg(#s(#s(@x)))) -> c_77()
             
          
          57:W:#succ#(#pos(#s(@x))) -> c_78()
             
          
          58:W:*#(@x,@y) -> c_5(#mult#(@x,@y))
             -->_1 #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y)):47
             -->_1 #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y)):46
             -->_1 #mult#(#pos(@x),#0()) -> c_66():45
             -->_1 #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y)):44
             -->_1 #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y)):43
             -->_1 #mult#(#neg(@x),#0()) -> c_63():42
             -->_1 #mult#(#0(),#pos(@y)) -> c_62():41
             -->_1 #mult#(#0(),#neg(@y)) -> c_61():40
             -->_1 #mult#(#0(),#0()) -> c_60():39
          
          59:W:+#(@x,@y) -> c_6(#add#(@x,@y))
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):38
             -->_1 #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y)):37
             -->_1 #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):36
             -->_1 #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y)):35
             -->_1 #add#(#0(),@y) -> c_55():34
          
          60:W:attach#1#(nil(),@m) -> c_9()
             
          
          61:W:attach#2#(nil(),@x,@xs) -> c_11()
             
          
          62:W:lineMult#1#(nil(),@l) -> c_14()
             
          
          63:W:m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
             -->_6 #abs#(#pos(@x)) -> c_3():32
             -->_5 #abs#(#pos(@x)) -> c_3():32
             -->_4 #abs#(#pos(@x)) -> c_3():32
             -->_3 #abs#(#pos(@x)) -> c_3():32
             -->_2 #abs#(#pos(@x)) -> c_3():32
             -->_1 #abs#(#pos(@x)) -> c_3():32
          
          64:W:m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                              ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
             -->_6 #abs#(#pos(@x)) -> c_3():32
             -->_5 #abs#(#pos(@x)) -> c_3():32
             -->_4 #abs#(#pos(@x)) -> c_3():32
             -->_3 #abs#(#pos(@x)) -> c_3():32
             -->_2 #abs#(#pos(@x)) -> c_3():32
             -->_1 #abs#(#pos(@x)) -> c_3():32
          
          65:W:m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                              ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
             -->_8 #abs#(#pos(@x)) -> c_3():32
             -->_7 #abs#(#pos(@x)) -> c_3():32
             -->_6 #abs#(#pos(@x)) -> c_3():32
             -->_5 #abs#(#pos(@x)) -> c_3():32
             -->_4 #abs#(#pos(@x)) -> c_3():32
             -->_3 #abs#(#pos(@x)) -> c_3():32
             -->_2 #abs#(#pos(@x)) -> c_3():32
             -->_1 #abs#(#pos(@x)) -> c_3():32
          
          66:W:m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                              ,#abs#(#pos(#s(#s(#0()))))
                              ,#abs#(#pos(#s(#s(#s(#0())))))
                              ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
             -->_4 #abs#(#pos(@x)) -> c_3():32
             -->_3 #abs#(#pos(@x)) -> c_3():32
             -->_2 #abs#(#pos(@x)) -> c_3():32
             -->_1 #abs#(#pos(@x)) -> c_3():32
          
          67:W:makeBase#1#(nil()) -> c_21()
             
          
          68:W:matrixMult'#1#(nil(),@m2) -> c_25()
             
          
          69:W:matrixMultList#1#(nil(),@acc) -> c_29()
             
          
          70:W:mkBase#1#(nil()) -> c_33()
             
          
          71:W:mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():30
          
          72:W:mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():30
          
          73:W:split#1#(nil()) -> c_41()
             
          
          74:W:split#2#(nil(),@ls) -> c_43()
             
          
          75:W:split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
             
          
          76:W:transAcc#1#(nil(),@base) -> c_47()
             
          
          77:W:transpose#1#(nil(),@m) -> c_50()
             
          
          78:W:transpose#3#(nil(),@l) -> c_53()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          66: m4#(@x) -> c_18(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          65: m3#(@x) -> c_17(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0())))))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          64: m2#(@x) -> c_16(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0()))))))
                             ,#abs#(#pos(#s(#s(#s(#s(#s(#0()))))))))
          63: m1#(@x) -> c_15(#abs#(#pos(#s(#0())))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#0()))))
                             ,#abs#(#pos(#s(#s(#s(#0())))))
                             ,#abs#(#pos(#s(#s(#s(#s(#0())))))))
          33: #abs#(#s(@x)) -> c_4()
          32: #abs#(#pos(@x)) -> c_3()
          31: #abs#(#neg(@x)) -> c_2()
          77: transpose#1#(nil(),@m) -> c_50()
          73: split#1#(nil()) -> c_41()
          74: split#2#(nil(),@ls) -> c_43()
          75: split#3#(tuple#2(@ys,@m'),@x,@xs) -> c_44()
          78: transpose#3#(nil(),@l) -> c_53()
          69: matrixMultList#1#(nil(),@acc) -> c_29()
          68: matrixMult'#1#(nil(),@m2) -> c_25()
          76: transAcc#1#(nil(),@base) -> c_47()
          67: makeBase#1#(nil()) -> c_21()
          70: mkBase#1#(nil()) -> c_33()
          62: lineMult#1#(nil(),@l) -> c_14()
          58: *#(@x,@y) -> c_5(#mult#(@x,@y))
          39: #mult#(#0(),#0()) -> c_60()
          40: #mult#(#0(),#neg(@y)) -> c_61()
          41: #mult#(#0(),#pos(@y)) -> c_62()
          42: #mult#(#neg(@x),#0()) -> c_63()
          43: #mult#(#neg(@x),#neg(@y)) -> c_64(#natmult#(@x,@y))
          44: #mult#(#neg(@x),#pos(@y)) -> c_65(#natmult#(@x,@y))
          45: #mult#(#pos(@x),#0()) -> c_66()
          46: #mult#(#pos(@x),#neg(@y)) -> c_67(#natmult#(@x,@y))
          47: #mult#(#pos(@x),#pos(@y)) -> c_68(#natmult#(@x,@y))
          49: #natmult#(#s(@x),@y) -> c_70(#add#(#pos(@y),#natmult(@x,@y)),#natmult#(@x,@y))
          48: #natmult#(#0(),@y) -> c_69()
          59: +#(@x,@y) -> c_6(#add#(@x,@y))
          34: #add#(#0(),@y) -> c_55()
          35: #add#(#neg(#s(#0())),@y) -> c_56(#pred#(@y))
          36: #add#(#neg(#s(#s(@x))),@y) -> c_57(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          50: #pred#(#0()) -> c_71()
          51: #pred#(#neg(#s(@x))) -> c_72()
          52: #pred#(#pos(#s(#0()))) -> c_73()
          53: #pred#(#pos(#s(#s(@x)))) -> c_74()
          38: #add#(#pos(#s(#s(@x))),@y) -> c_59(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          37: #add#(#pos(#s(#0())),@y) -> c_58(#succ#(@y))
          54: #succ#(#0()) -> c_75()
          55: #succ#(#neg(#s(#0()))) -> c_76()
          56: #succ#(#neg(#s(#s(@x)))) -> c_77()
          57: #succ#(#pos(#s(@x))) -> c_78()
          72: mult#2#(nil(),@x,@xs) -> c_38(#abs#(#0()))
          71: mult#1#(nil(),@l2) -> c_36(#abs#(#0()))
          30: #abs#(#0()) -> c_1()
          60: attach#1#(nil(),@m) -> c_9()
          61: attach#2#(nil(),@x,@xs) -> c_11()
* Step 7: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/3
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/2,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):2
          
          2:S:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):3
          
          3:S:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          4:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):5
          
          5:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
          
          6:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):7
          
          7:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          8:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
          
          9:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):10
          
          10:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
          
          11:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          12:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):13
          
          13:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):12
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          14:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
          
          15:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):16
          
          16:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          17:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):18
          
          18:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys)):19
          
          19:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(+#(*(@x,@y),mult(@xs,@ys)),*#(@x,@y),mult#(@xs,@ys))
             -->_3 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
          
          20:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):21
          
          21:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls)):22
          
          22:S:split#2#(::(@x,@xs),@ls) -> c_42(split#3#(split(@ls),@x,@xs),split#(@ls))
             -->_2 split#(@m) -> c_39(split#1#(@m)):20
          
          23:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):24
          
          24:S:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          25:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):26
          
          26:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):27
             -->_2 split#(@m) -> c_39(split#1#(@m)):20
          
          27:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):28
          
          28:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
          
          29:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
* Step 8: Decompose WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              attach#(@line,@m) -> c_7(attach#1#(@line,@m))
              attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
              attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          - Weak DPs:
              lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
              lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
              mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
              mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
              mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
              lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
              mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
              mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
              mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak DPs:
              attach#(@line,@m) -> c_7(attach#1#(@line,@m))
              attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
              attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
** Step 8.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):2
          
          2:S:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):3
          
          3:S:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          4:W:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):5
          
          5:W:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
          
          6:W:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):7
          
          7:W:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          8:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
          
          9:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):10
          
          10:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):4
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
          
          11:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          12:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):13
          
          13:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):12
          
          14:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):9
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
          
          15:W:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):16
          
          16:W:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):15
          
          17:W:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):18
          
          18:W:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):19
          
          19:W:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):17
          
          20:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):21
          
          21:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):22
          
          22:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):20
          
          23:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):24
          
          24:W:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
          
          25:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):26
          
          26:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):20
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):27
          
          27:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):28
          
          28:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):25
          
          29:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):6
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          14: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          25: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          28: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          27: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          26: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          20: split#(@m) -> c_39(split#1#(@m))
          22: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          21: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          9: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          10: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          6: makeBase#(@m) -> c_19(makeBase#1#(@m))
          7: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          15: mkBase#(@m) -> c_31(mkBase#1#(@m))
          16: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          4: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          5: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          17: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          19: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          18: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
** Step 8.a:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):2
          
          2:S:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):3
          
          3:S:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          8:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
          
          11:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
          
          12:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):13
          
          13:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):8
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):12
          
          23:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):24
          
          24:W:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
          
          29:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):23
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
** Step 8.a:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
** Step 8.a:4: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          2: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          
        Consider the set of all dependency pairs
          1: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          2: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          3: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          4: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          5: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          6: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          7: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          8: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          9: transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          10: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        Processor NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {2}
        These cover all (indirect) predecessors of dependency pairs
          {2,3,5,10}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
*** Step 8.a:4.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 1 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_7) = {1},
          uargs(c_8) = {1},
          uargs(c_10) = {1},
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_45) = {1},
          uargs(c_46) = {1,2},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [1]                      
                                 [0]                      
                       p(#abs) = [0 0] x1 + [0]           
                                 [1 0]      [0]           
                       p(#add) = [0 0] x2 + [0]           
                                 [0 1]      [0]           
                      p(#mult) = [1 0] x1 + [0]           
                                 [1 0]      [0]           
                   p(#natmult) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 1]      [1 0]      [0]
                       p(#neg) = [0]                      
                                 [0]                      
                       p(#pos) = [0 1] x1 + [1]           
                                 [0 0]      [0]           
                      p(#pred) = [1]                      
                                 [0]                      
                         p(#s) = [0]                      
                                 [1]                      
                      p(#succ) = [0 1] x1 + [1]           
                                 [1 0]      [0]           
                          p(*) = [0]                      
                                 [0]                      
                          p(+) = [1 1] x2 + [0]           
                                 [1 0]      [1]           
                         p(::) = [0 1] x1 + [0 0] x2 + [1]
                                 [0 1]      [0 1]      [1]
                     p(attach) = [0]                      
                                 [0]                      
                   p(attach#1) = [0]                      
                                 [0]                      
                   p(attach#2) = [1 1] x1 + [0]           
                                 [0 1]      [1]           
                   p(lineMult) = [0 0] x2 + [0]           
                                 [1 0]      [1]           
                 p(lineMult#1) = [0 0] x1 + [0]           
                                 [1 0]      [0]           
                         p(m1) = [0]                      
                                 [0]                      
                         p(m2) = [0]                      
                                 [0]                      
                         p(m3) = [0]                      
                                 [0]                      
                         p(m4) = [0]                      
                                 [0]                      
                   p(makeBase) = [0]                      
                                 [0]                      
                 p(makeBase#1) = [0 0] x1 + [0]           
                                 [1 0]      [1]           
                 p(matrixMult) = [0]                      
                                 [0]                      
                p(matrixMult') = [1 0] x2 + [0]           
                                 [1 0]      [1]           
              p(matrixMult'#1) = [0]                      
                                 [0]                      
                p(matrixMult3) = [0]                      
                                 [0]                      
             p(matrixMultList) = [0]                      
                                 [0]                      
           p(matrixMultList#1) = [0]                      
                                 [0]                      
              p(matrixMultOld) = [0]                      
                                 [0]                      
                     p(mkBase) = [0]                      
                                 [0]                      
                   p(mkBase#1) = [1 0] x1 + [1]           
                                 [0 0]      [0]           
                       p(mult) = [0 1] x2 + [1]           
                                 [0 0]      [1]           
                     p(mult#1) = [0]                      
                                 [0]                      
                     p(mult#2) = [0 0] x1 + [0]           
                                 [0 1]      [1]           
                        p(nil) = [0]                      
                                 [1]                      
                      p(split) = [0]                      
                                 [0]                      
                    p(split#1) = [0]                      
                                 [0]                      
                    p(split#2) = [0]                      
                                 [0]                      
                    p(split#3) = [0]                      
                                 [0]                      
                   p(transAcc) = [0 0] x1 + [1]           
                                 [1 1]      [0]           
                 p(transAcc#1) = [0]                      
                                 [1]                      
                  p(transpose) = [0]                      
                                 [0]                      
                p(transpose#1) = [0]                      
                                 [0]                      
                p(transpose#2) = [0]                      
                                 [0]                      
                p(transpose#3) = [0]                      
                                 [0]                      
                 p(transpose') = [0]                      
                                 [0]                      
                    p(tuple#2) = [0]                      
                                 [0]                      
                      p(#abs#) = [0]                      
                                 [0]                      
                      p(#add#) = [0]                      
                                 [0]                      
                     p(#mult#) = [0]                      
                                 [0]                      
                  p(#natmult#) = [0]                      
                                 [0]                      
                     p(#pred#) = [0]                      
                                 [0]                      
                     p(#succ#) = [0]                      
                                 [0]                      
                         p(*#) = [0]                      
                                 [0]                      
                         p(+#) = [0]                      
                                 [0]                      
                    p(attach#) = [0 1] x1 + [0]           
                                 [0 0]      [1]           
                  p(attach#1#) = [0 1] x1 + [0]           
                                 [1 1]      [1]           
                  p(attach#2#) = [0 0] x1 + [0 1] x3 + [0]
                                 [1 0]      [1 0]      [1]
                  p(lineMult#) = [0]                      
                                 [0]                      
                p(lineMult#1#) = [0]                      
                                 [0]                      
                        p(m1#) = [0]                      
                                 [0]                      
                        p(m2#) = [0]                      
                                 [0]                      
                        p(m3#) = [0]                      
                                 [0]                      
                        p(m4#) = [0]                      
                                 [0]                      
                  p(makeBase#) = [0]                      
                                 [0]                      
                p(makeBase#1#) = [0]                      
                                 [0]                      
                p(matrixMult#) = [0 1] x2 + [0]           
                                 [0 1]      [1]           
               p(matrixMult'#) = [0]                      
                                 [0]                      
             p(matrixMult'#1#) = [0]                      
                                 [0]                      
               p(matrixMult3#) = [0 1] x2 + [1 1] x3 + [1]
                                 [0 0]      [0 1]      [0]
            p(matrixMultList#) = [0 1] x2 + [1]           
                                 [1 0]      [0]           
          p(matrixMultList#1#) = [0 1] x1 + [1]           
                                 [0 0]      [0]           
             p(matrixMultOld#) = [0]                      
                                 [0]                      
                    p(mkBase#) = [0]                      
                                 [0]                      
                  p(mkBase#1#) = [0]                      
                                 [0]                      
                      p(mult#) = [0]                      
                                 [0]                      
                    p(mult#1#) = [0]                      
                                 [0]                      
                    p(mult#2#) = [0]                      
                                 [0]                      
                     p(split#) = [0]                      
                                 [0]                      
                   p(split#1#) = [0]                      
                                 [0]                      
                   p(split#2#) = [0]                      
                                 [0]                      
                   p(split#3#) = [0]                      
                                 [0]                      
                  p(transAcc#) = [0 1] x1 + [0]           
                                 [0 1]      [1]           
                p(transAcc#1#) = [0 1] x1 + [0]           
                                 [0 0]      [1]           
                 p(transpose#) = [0]                      
                                 [0]                      
               p(transpose#1#) = [0]                      
                                 [0]                      
               p(transpose#2#) = [0]                      
                                 [0]                      
               p(transpose#3#) = [0]                      
                                 [0]                      
                p(transpose'#) = [1 1] x1 + [1]           
                                 [0 1]      [0]           
                        p(c_1) = [0]                      
                                 [0]                      
                        p(c_2) = [0]                      
                                 [0]                      
                        p(c_3) = [0]                      
                                 [0]                      
                        p(c_4) = [0]                      
                                 [0]                      
                        p(c_5) = [0]                      
                                 [0]                      
                        p(c_6) = [0]                      
                                 [0]                      
                        p(c_7) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                        p(c_8) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                        p(c_9) = [0]                      
                                 [0]                      
                       p(c_10) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                       p(c_11) = [0]                      
                                 [0]                      
                       p(c_12) = [0]                      
                                 [0]                      
                       p(c_13) = [0]                      
                                 [0]                      
                       p(c_14) = [0]                      
                                 [0]                      
                       p(c_15) = [0]                      
                                 [0]                      
                       p(c_16) = [0]                      
                                 [0]                      
                       p(c_17) = [0]                      
                                 [0]                      
                       p(c_18) = [0]                      
                                 [0]                      
                       p(c_19) = [0]                      
                                 [0]                      
                       p(c_20) = [0]                      
                                 [0]                      
                       p(c_21) = [0]                      
                                 [0]                      
                       p(c_22) = [1 0] x1 + [0]           
                                 [0 1]      [0]           
                       p(c_23) = [0]                      
                                 [0]                      
                       p(c_24) = [0]                      
                                 [0]                      
                       p(c_25) = [0]                      
                                 [0]                      
                       p(c_26) = [1 0] x1 + [1 0] x2 + [1]
                                 [1 0]      [0 0]      [0]
                       p(c_27) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                       p(c_28) = [1 0] x1 + [1 0] x2 + [1]
                                 [0 0]      [0 0]      [0]
                       p(c_29) = [0]                      
                                 [0]                      
                       p(c_30) = [0]                      
                                 [0]                      
                       p(c_31) = [0]                      
                                 [0]                      
                       p(c_32) = [0]                      
                                 [0]                      
                       p(c_33) = [0]                      
                                 [0]                      
                       p(c_34) = [0]                      
                                 [0]                      
                       p(c_35) = [0]                      
                                 [0]                      
                       p(c_36) = [0]                      
                                 [0]                      
                       p(c_37) = [0]                      
                                 [0]                      
                       p(c_38) = [0]                      
                                 [0]                      
                       p(c_39) = [0]                      
                                 [0]                      
                       p(c_40) = [0]                      
                                 [0]                      
                       p(c_41) = [0]                      
                                 [0]                      
                       p(c_42) = [0]                      
                                 [0]                      
                       p(c_43) = [0]                      
                                 [0]                      
                       p(c_44) = [0]                      
                                 [0]                      
                       p(c_45) = [1 0] x1 + [0]           
                                 [1 1]      [0]           
                       p(c_46) = [1 0] x1 + [1 0] x2 + [1]
                                 [0 0]      [0 0]      [1]
                       p(c_47) = [0]                      
                                 [0]                      
                       p(c_48) = [0]                      
                                 [0]                      
                       p(c_49) = [0]                      
                                 [0]                      
                       p(c_50) = [0]                      
                                 [0]                      
                       p(c_51) = [0]                      
                                 [0]                      
                       p(c_52) = [0]                      
                                 [0]                      
                       p(c_53) = [0]                      
                                 [0]                      
                       p(c_54) = [1 0] x1 + [1]           
                                 [0 0]      [0]           
                       p(c_55) = [0]                      
                                 [0]                      
                       p(c_56) = [0]                      
                                 [0]                      
                       p(c_57) = [0]                      
                                 [0]                      
                       p(c_58) = [0]                      
                                 [0]                      
                       p(c_59) = [0]                      
                                 [0]                      
                       p(c_60) = [0]                      
                                 [0]                      
                       p(c_61) = [0]                      
                                 [0]                      
                       p(c_62) = [0]                      
                                 [0]                      
                       p(c_63) = [0]                      
                                 [0]                      
                       p(c_64) = [0]                      
                                 [0]                      
                       p(c_65) = [0]                      
                                 [0]                      
                       p(c_66) = [0]                      
                                 [0]                      
                       p(c_67) = [0]                      
                                 [0]                      
                       p(c_68) = [0]                      
                                 [0]                      
                       p(c_69) = [0]                      
                                 [0]                      
                       p(c_70) = [0]                      
                                 [0]                      
                       p(c_71) = [0]                      
                                 [0]                      
                       p(c_72) = [0]                      
                                 [0]                      
                       p(c_73) = [0]                      
                                 [0]                      
                       p(c_74) = [0]                      
                                 [0]                      
                       p(c_75) = [0]                      
                                 [0]                      
                       p(c_76) = [0]                      
                                 [0]                      
                       p(c_77) = [0]                      
                                 [0]                      
                       p(c_78) = [0]                      
                                 [0]                      
        
        Following rules are strictly oriented:
        attach#1#(::(@x,@xs),@m) = [0 1] @x + [0 1] @xs + [1]
                                   [0 2]      [0 1]       [3]
                                 > [0 1] @xs + [0]           
                                   [0 0]       [0]           
                                 = c_8(attach#2#(@m,@x,@xs)) 
        
        
        Following rules are (at-least) weakly oriented:
                         attach#(@line,@m) =  [0 1] @line + [0]                                                  
                                              [0 0]         [1]                                                  
                                           >= [0 1] @line + [0]                                                  
                                              [0 0]         [0]                                                  
                                           =  c_7(attach#1#(@line,@m))                                           
        
              attach#2#(::(@l,@ls),@x,@xs) =  [0 0] @l + [0 1] @xs + [0]                                         
                                              [0 1]      [1 0]       [2]                                         
                                           >= [0 1] @xs + [0]                                                    
                                              [0 0]       [0]                                                    
                                           =  c_10(attach#(@xs,@ls))                                             
        
                      matrixMult#(@m1,@m2) =  [0 1] @m2 + [0]                                                    
                                              [0 1]       [1]                                                    
                                           >= [0 1] @m2 + [0]                                                    
                                              [0 1]       [1]                                                    
                                           =  c_22(transAcc#(@m2,makeBase(@m2)))                                 
        
                 matrixMult3#(@m1,@m2,@m3) =  [0 1] @m2 + [1 1] @m3 + [1]                                        
                                              [0 0]       [0 1]       [0]                                        
                                           >= [0 1] @m2 + [0 1] @m3 + [1]                                        
                                              [0 0]       [0 1]       [0]                                        
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [0 1] @mm + [1]                                                    
                                              [1 0]       [0]                                                    
                                           >= [0 1] @mm + [1]                                                    
                                              [0 0]       [0]                                                    
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [0 1] @m + [0 1] @ms + [2]                                         
                                              [0 0]      [0 0]       [0]                                         
                                           >= [0 1] @m + [0 1] @ms + [2]                                         
                                              [0 0]      [0 0]       [0]                                         
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                       transAcc#(@m,@base) =  [0 1] @m + [0]                                                     
                                              [0 1]      [1]                                                     
                                           >= [0 1] @m + [0]                                                     
                                              [0 1]      [1]                                                     
                                           =  c_45(transAcc#1#(@m,@base))                                        
        
             transAcc#1#(::(@l,@m'),@base) =  [0 1] @l + [0 1] @m' + [1]                                         
                                              [0 0]      [0 0]       [1]                                         
                                           >= [0 1] @l + [0 1] @m' + [1]                                         
                                              [0 0]      [0 0]       [1]                                         
                                           =  c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))         
        
                           transpose'#(@m) =  [1 1] @m + [1]                                                     
                                              [0 1]      [0]                                                     
                                           >= [0 1] @m + [1]                                                     
                                              [0 0]      [0]                                                     
                                           =  c_54(transAcc#(@m,makeBase(@m)))                                   
        
*** Step 8.a:4.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak DPs:
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

*** Step 8.a:4.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
        - Weak DPs:
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          
        Consider the set of all dependency pairs
          1: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          2: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
          3: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          4: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          5: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          6: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          7: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          8: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          9: transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          10: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,5,10}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 8.a:4.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
        - Weak DPs:
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_7) = {1},
          uargs(c_8) = {1},
          uargs(c_10) = {1},
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_45) = {1},
          uargs(c_46) = {1,2},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [2]                                    
                       p(#abs) = [4] x1 + [0]                           
                       p(#add) = [1] x2 + [1]                           
                      p(#mult) = [4] x1 + [2] x2 + [0]                  
                   p(#natmult) = [0]                                    
                       p(#neg) = [1] x1 + [0]                           
                       p(#pos) = [1] x1 + [2]                           
                      p(#pred) = [2] x1 + [6]                           
                         p(#s) = [0]                                    
                      p(#succ) = [0]                                    
                          p(*) = [0]                                    
                          p(+) = [0]                                    
                         p(::) = [1] x1 + [1] x2 + [1]                  
                     p(attach) = [0]                                    
                   p(attach#1) = [0]                                    
                   p(attach#2) = [0]                                    
                   p(lineMult) = [0]                                    
                 p(lineMult#1) = [0]                                    
                         p(m1) = [0]                                    
                         p(m2) = [0]                                    
                         p(m3) = [0]                                    
                         p(m4) = [0]                                    
                   p(makeBase) = [0]                                    
                 p(makeBase#1) = [0]                                    
                 p(matrixMult) = [0]                                    
                p(matrixMult') = [0]                                    
              p(matrixMult'#1) = [0]                                    
                p(matrixMult3) = [0]                                    
             p(matrixMultList) = [0]                                    
           p(matrixMultList#1) = [0]                                    
              p(matrixMultOld) = [0]                                    
                     p(mkBase) = [0]                                    
                   p(mkBase#1) = [0]                                    
                       p(mult) = [0]                                    
                     p(mult#1) = [0]                                    
                     p(mult#2) = [0]                                    
                        p(nil) = [1]                                    
                      p(split) = [0]                                    
                    p(split#1) = [0]                                    
                    p(split#2) = [0]                                    
                    p(split#3) = [0]                                    
                   p(transAcc) = [0]                                    
                 p(transAcc#1) = [0]                                    
                  p(transpose) = [0]                                    
                p(transpose#1) = [0]                                    
                p(transpose#2) = [0]                                    
                p(transpose#3) = [0]                                    
                 p(transpose') = [0]                                    
                    p(tuple#2) = [1] x1 + [1] x2 + [0]                  
                      p(#abs#) = [0]                                    
                      p(#add#) = [0]                                    
                     p(#mult#) = [0]                                    
                  p(#natmult#) = [0]                                    
                     p(#pred#) = [0]                                    
                     p(#succ#) = [0]                                    
                         p(*#) = [0]                                    
                         p(+#) = [0]                                    
                    p(attach#) = [2] x1 + [1]                           
                  p(attach#1#) = [2] x1 + [0]                           
                  p(attach#2#) = [2] x3 + [2]                           
                  p(lineMult#) = [0]                                    
                p(lineMult#1#) = [0]                                    
                        p(m1#) = [0]                                    
                        p(m2#) = [0]                                    
                        p(m3#) = [0]                                    
                        p(m4#) = [0]                                    
                  p(makeBase#) = [0]                                    
                p(makeBase#1#) = [0]                                    
                p(matrixMult#) = [4] x2 + [0]                           
               p(matrixMult'#) = [0]                                    
             p(matrixMult'#1#) = [0]                                    
               p(matrixMult3#) = [4] x2 + [4] x3 + [1]                  
            p(matrixMultList#) = [4] x2 + [0]                           
          p(matrixMultList#1#) = [4] x1 + [0]                           
             p(matrixMultOld#) = [0]                                    
                    p(mkBase#) = [0]                                    
                  p(mkBase#1#) = [0]                                    
                      p(mult#) = [0]                                    
                    p(mult#1#) = [0]                                    
                    p(mult#2#) = [0]                                    
                     p(split#) = [0]                                    
                   p(split#1#) = [0]                                    
                   p(split#2#) = [0]                                    
                   p(split#3#) = [0]                                    
                  p(transAcc#) = [4] x1 + [0]                           
                p(transAcc#1#) = [4] x1 + [0]                           
                 p(transpose#) = [0]                                    
               p(transpose#1#) = [0]                                    
               p(transpose#2#) = [0]                                    
               p(transpose#3#) = [0]                                    
                p(transpose'#) = [4] x1 + [2]                           
                        p(c_1) = [0]                                    
                        p(c_2) = [0]                                    
                        p(c_3) = [0]                                    
                        p(c_4) = [0]                                    
                        p(c_5) = [0]                                    
                        p(c_6) = [0]                                    
                        p(c_7) = [1] x1 + [0]                           
                        p(c_8) = [1] x1 + [0]                           
                        p(c_9) = [0]                                    
                       p(c_10) = [1] x1 + [1]                           
                       p(c_11) = [2]                                    
                       p(c_12) = [1]                                    
                       p(c_13) = [1]                                    
                       p(c_14) = [4]                                    
                       p(c_15) = [1] x2 + [1] x6 + [1]                  
                       p(c_16) = [0]                                    
                       p(c_17) = [2] x1 + [4] x3 + [1] x4 + [1] x7 + [1]
                       p(c_18) = [2] x1 + [4] x2 + [1] x3 + [1]         
                       p(c_19) = [1] x1 + [2]                           
                       p(c_20) = [1] x1 + [4]                           
                       p(c_21) = [2]                                    
                       p(c_22) = [1] x1 + [0]                           
                       p(c_23) = [1] x1 + [4]                           
                       p(c_24) = [2] x2 + [1]                           
                       p(c_25) = [0]                                    
                       p(c_26) = [1] x1 + [1] x2 + [1]                  
                       p(c_27) = [1] x1 + [0]                           
                       p(c_28) = [1] x1 + [1] x2 + [4]                  
                       p(c_29) = [0]                                    
                       p(c_30) = [4] x1 + [1] x2 + [1]                  
                       p(c_31) = [2]                                    
                       p(c_32) = [4]                                    
                       p(c_33) = [4]                                    
                       p(c_34) = [1] x1 + [0]                           
                       p(c_35) = [1] x1 + [1]                           
                       p(c_36) = [1]                                    
                       p(c_37) = [2]                                    
                       p(c_38) = [1] x1 + [4]                           
                       p(c_39) = [4] x1 + [0]                           
                       p(c_40) = [1] x1 + [1]                           
                       p(c_41) = [1]                                    
                       p(c_42) = [1] x1 + [1]                           
                       p(c_43) = [1]                                    
                       p(c_44) = [0]                                    
                       p(c_45) = [1] x1 + [0]                           
                       p(c_46) = [2] x1 + [1] x2 + [2]                  
                       p(c_47) = [1]                                    
                       p(c_48) = [1] x1 + [0]                           
                       p(c_49) = [1] x1 + [0]                           
                       p(c_50) = [2]                                    
                       p(c_51) = [2]                                    
                       p(c_52) = [0]                                    
                       p(c_53) = [2]                                    
                       p(c_54) = [1] x1 + [2]                           
                       p(c_55) = [0]                                    
                       p(c_56) = [1]                                    
                       p(c_57) = [2] x1 + [0]                           
                       p(c_58) = [4] x1 + [1]                           
                       p(c_59) = [4]                                    
                       p(c_60) = [1]                                    
                       p(c_61) = [0]                                    
                       p(c_62) = [0]                                    
                       p(c_63) = [0]                                    
                       p(c_64) = [0]                                    
                       p(c_65) = [2] x1 + [1]                           
                       p(c_66) = [1]                                    
                       p(c_67) = [0]                                    
                       p(c_68) = [1] x1 + [1]                           
                       p(c_69) = [1]                                    
                       p(c_70) = [0]                                    
                       p(c_71) = [1]                                    
                       p(c_72) = [0]                                    
                       p(c_73) = [0]                                    
                       p(c_74) = [1]                                    
                       p(c_75) = [0]                                    
                       p(c_76) = [0]                                    
                       p(c_77) = [0]                                    
                       p(c_78) = [1]                                    
        
        Following rules are strictly oriented:
        attach#(@line,@m) = [2] @line + [1]         
                          > [2] @line + [0]         
                          = c_7(attach#1#(@line,@m))
        
        
        Following rules are (at-least) weakly oriented:
                  attach#1#(::(@x,@xs),@m) =  [2] @x + [2] @xs + [2]                                             
                                           >= [2] @xs + [2]                                                      
                                           =  c_8(attach#2#(@m,@x,@xs))                                          
        
              attach#2#(::(@l,@ls),@x,@xs) =  [2] @xs + [2]                                                      
                                           >= [2] @xs + [2]                                                      
                                           =  c_10(attach#(@xs,@ls))                                             
        
                      matrixMult#(@m1,@m2) =  [4] @m2 + [0]                                                      
                                           >= [4] @m2 + [0]                                                      
                                           =  c_22(transAcc#(@m2,makeBase(@m2)))                                 
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m2 + [4] @m3 + [1]                                            
                                           >= [4] @m2 + [4] @m3 + [1]                                            
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [4] @mm + [0]                                                      
                                           >= [4] @mm + [0]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [4] @m + [4] @ms + [4]                                             
                                           >= [4] @m + [4] @ms + [4]                                             
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                       transAcc#(@m,@base) =  [4] @m + [0]                                                       
                                           >= [4] @m + [0]                                                       
                                           =  c_45(transAcc#1#(@m,@base))                                        
        
             transAcc#1#(::(@l,@m'),@base) =  [4] @l + [4] @m' + [4]                                             
                                           >= [4] @l + [4] @m' + [4]                                             
                                           =  c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))         
        
                           transpose'#(@m) =  [4] @m + [2]                                                       
                                           >= [4] @m + [2]                                                       
                                           =  c_54(transAcc#(@m,makeBase(@m)))                                   
        
**** Step 8.a:4.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 8.a:4.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):2
          
          2:W:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):3
          
          3:W:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          4:W:matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):8
          
          5:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):4
             -->_1 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):4
          
          6:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):7
          
          7:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):6
             -->_2 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):4
          
          8:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):9
          
          9:W:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):8
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):1
          
          10:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):8
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          10: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          6: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          7: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          5: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          4: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          8: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          9: transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
          1: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          3: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          2: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
**** Step 8.a:4.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

** Step 8.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            attach#(@line,@m) -> c_7(attach#1#(@line,@m))
            attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
            attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):2
          
          2:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          3:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):4
          
          4:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          5:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
          
          6:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):7
          
          7:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          8:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          9:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):10
          
          10:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):9
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          11:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          12:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):13
          
          13:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          14:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):15
          
          15:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):16
          
          16:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          17:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):18
          
          18:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):19
          
          19:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):17
          
          20:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):21
          
          21:S:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):27
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
          
          22:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):23
          
          23:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):24
             -->_2 split#(@m) -> c_39(split#1#(@m)):17
          
          24:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):25
          
          25:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
          
          26:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
          
          27:W:attach#(@line,@m) -> c_7(attach#1#(@line,@m))
             -->_1 attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs)):28
          
          28:W:attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
             -->_1 attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls)):29
          
          29:W:attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
             -->_1 attach#(@line,@m) -> c_7(attach#1#(@line,@m)):27
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          27: attach#(@line,@m) -> c_7(attach#1#(@line,@m))
          29: attach#2#(::(@l,@ls),@x,@xs) -> c_10(attach#(@xs,@ls))
          28: attach#1#(::(@x,@xs),@m) -> c_8(attach#2#(@m,@x,@xs))
** Step 8.b:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/2,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):2
          
          2:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          3:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):4
          
          4:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          5:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
          
          6:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):7
          
          7:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          8:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          9:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):10
          
          10:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):9
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          11:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          12:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):13
          
          13:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          14:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):15
          
          15:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):16
          
          16:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          17:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):18
          
          18:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):19
          
          19:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):17
          
          20:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base)):21
          
          21:S:transAcc#1#(::(@l,@m'),@base) -> c_46(attach#(@l,transAcc(@m',@base)),transAcc#(@m',@base))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
          
          22:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):23
          
          23:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):24
             -->_2 split#(@m) -> c_39(split#1#(@m)):17
          
          24:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):25
          
          25:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
          
          26:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
** Step 8.b:3: Decompose WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
              lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
              mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
              mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
              mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          - Weak DPs:
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak DPs:
              lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
              lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
              mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
              mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
              mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
*** Step 8.b:3.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):2
          
          2:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          3:W:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):4
          
          4:W:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          5:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          6:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):7
          
          7:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          8:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          9:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):10
          
          10:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):9
          
          11:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
          
          12:W:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):13
          
          13:W:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):12
          
          14:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):15
          
          15:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):16
          
          16:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          17:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):18
          
          18:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):19
          
          19:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):17
          
          20:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):21
          
          21:W:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
          
          22:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):23
          
          23:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):17
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):24
          
          24:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):25
          
          25:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):22
          
          26:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):3
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):20
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          26: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          22: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          25: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          24: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          23: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          17: split#(@m) -> c_39(split#1#(@m))
          19: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          18: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          20: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          21: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          3: makeBase#(@m) -> c_19(makeBase#1#(@m))
          4: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          12: mkBase#(@m) -> c_31(mkBase#1#(@m))
          13: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
*** Step 8.b:3.a:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):2
          
          2:S:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          5:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          6:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):7
          
          7:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          8:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
          
          9:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):10
          
          10:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                         ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):5
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):9
          
          11:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):6
          
          14:S:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):15
          
          15:S:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):16
          
          16:S:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
*** Step 8.b:3.a:3: DecomposeDG WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        and a lower component
          lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        Further, following extension rules are added to the lower component.
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
**** Step 8.b:3.a:3.a:1: PredecessorEstimation WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,3}
        by application of
          Pre({1,3}) = {}.
        Here rules are labelled as follows:
          1: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          3: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
**** Step 8.b:3.a:3.a:2: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          2:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):1
          
          4:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
          2: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
**** Step 8.b:3.a:3.a:3: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
**** Step 8.b:3.a:3.a:4: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
**** Step 8.b:3.a:3.a:5: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          
        Consider the set of all dependency pairs
          1: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          2: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 8.b:3.a:3.a:5.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_27) = {1},
          uargs(c_28) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                    
                       p(#abs) = [0]                                    
                       p(#add) = [1]                                    
                      p(#mult) = [0]                                    
                   p(#natmult) = [2] x1 + [0]                           
                       p(#neg) = [0]                                    
                       p(#pos) = [0]                                    
                      p(#pred) = [4] x1 + [2]                           
                         p(#s) = [1] x1 + [2]                           
                      p(#succ) = [0]                                    
                          p(*) = [0]                                    
                          p(+) = [0]                                    
                         p(::) = [1] x1 + [1] x2 + [4]                  
                     p(attach) = [1] x2 + [6]                           
                   p(attach#1) = [3] x1 + [0]                           
                   p(attach#2) = [0]                                    
                   p(lineMult) = [4]                                    
                 p(lineMult#1) = [2] x1 + [0]                           
                         p(m1) = [0]                                    
                         p(m2) = [0]                                    
                         p(m3) = [0]                                    
                         p(m4) = [0]                                    
                   p(makeBase) = [0]                                    
                 p(makeBase#1) = [0]                                    
                 p(matrixMult) = [1] x1 + [0]                           
                p(matrixMult') = [1] x1 + [0]                           
              p(matrixMult'#1) = [4] x2 + [0]                           
                p(matrixMult3) = [0]                                    
             p(matrixMultList) = [0]                                    
           p(matrixMultList#1) = [0]                                    
              p(matrixMultOld) = [0]                                    
                     p(mkBase) = [1]                                    
                   p(mkBase#1) = [1] x1 + [0]                           
                       p(mult) = [4] x2 + [1]                           
                     p(mult#1) = [0]                                    
                     p(mult#2) = [0]                                    
                        p(nil) = [5]                                    
                      p(split) = [0]                                    
                    p(split#1) = [0]                                    
                    p(split#2) = [0]                                    
                    p(split#3) = [0]                                    
                   p(transAcc) = [2]                                    
                 p(transAcc#1) = [0]                                    
                  p(transpose) = [0]                                    
                p(transpose#1) = [0]                                    
                p(transpose#2) = [0]                                    
                p(transpose#3) = [0]                                    
                 p(transpose') = [0]                                    
                    p(tuple#2) = [1] x1 + [1] x2 + [0]                  
                      p(#abs#) = [0]                                    
                      p(#add#) = [0]                                    
                     p(#mult#) = [0]                                    
                  p(#natmult#) = [0]                                    
                     p(#pred#) = [0]                                    
                     p(#succ#) = [0]                                    
                         p(*#) = [0]                                    
                         p(+#) = [0]                                    
                    p(attach#) = [0]                                    
                  p(attach#1#) = [0]                                    
                  p(attach#2#) = [0]                                    
                  p(lineMult#) = [0]                                    
                p(lineMult#1#) = [0]                                    
                        p(m1#) = [0]                                    
                        p(m2#) = [0]                                    
                        p(m3#) = [0]                                    
                        p(m4#) = [0]                                    
                  p(makeBase#) = [0]                                    
                p(makeBase#1#) = [0]                                    
                p(matrixMult#) = [0]                                    
               p(matrixMult'#) = [0]                                    
             p(matrixMult'#1#) = [0]                                    
               p(matrixMult3#) = [0]                                    
            p(matrixMultList#) = [1] x2 + [4]                           
          p(matrixMultList#1#) = [1] x1 + [1]                           
             p(matrixMultOld#) = [0]                                    
                    p(mkBase#) = [0]                                    
                  p(mkBase#1#) = [0]                                    
                      p(mult#) = [0]                                    
                    p(mult#1#) = [0]                                    
                    p(mult#2#) = [0]                                    
                     p(split#) = [0]                                    
                   p(split#1#) = [0]                                    
                   p(split#2#) = [0]                                    
                   p(split#3#) = [0]                                    
                  p(transAcc#) = [0]                                    
                p(transAcc#1#) = [0]                                    
                 p(transpose#) = [0]                                    
               p(transpose#1#) = [0]                                    
               p(transpose#2#) = [0]                                    
               p(transpose#3#) = [0]                                    
                p(transpose'#) = [1] x1 + [0]                           
                        p(c_1) = [0]                                    
                        p(c_2) = [0]                                    
                        p(c_3) = [0]                                    
                        p(c_4) = [0]                                    
                        p(c_5) = [0]                                    
                        p(c_6) = [1] x1 + [0]                           
                        p(c_7) = [1] x1 + [0]                           
                        p(c_8) = [4] x1 + [0]                           
                        p(c_9) = [0]                                    
                       p(c_10) = [1] x1 + [0]                           
                       p(c_11) = [0]                                    
                       p(c_12) = [1] x1 + [0]                           
                       p(c_13) = [0]                                    
                       p(c_14) = [0]                                    
                       p(c_15) = [2] x1 + [1] x2 + [2] x4 + [0]         
                       p(c_16) = [1] x1 + [4] x6 + [0]                  
                       p(c_17) = [2] x1 + [1] x4 + [1] x6 + [1] x7 + [0]
                       p(c_18) = [1] x2 + [1] x3 + [0]                  
                       p(c_19) = [0]                                    
                       p(c_20) = [0]                                    
                       p(c_21) = [0]                                    
                       p(c_22) = [0]                                    
                       p(c_23) = [0]                                    
                       p(c_24) = [0]                                    
                       p(c_25) = [0]                                    
                       p(c_26) = [4] x2 + [0]                           
                       p(c_27) = [1] x1 + [2]                           
                       p(c_28) = [1] x1 + [0]                           
                       p(c_29) = [0]                                    
                       p(c_30) = [1] x1 + [0]                           
                       p(c_31) = [0]                                    
                       p(c_32) = [4] x1 + [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) = [1] x1 + [0]                           
                       p(c_40) = [4] x1 + [0]                           
                       p(c_41) = [0]                                    
                       p(c_42) = [0]                                    
                       p(c_43) = [0]                                    
                       p(c_44) = [0]                                    
                       p(c_45) = [0]                                    
                       p(c_46) = [1] x1 + [0]                           
                       p(c_47) = [0]                                    
                       p(c_48) = [0]                                    
                       p(c_49) = [2] x1 + [0]                           
                       p(c_50) = [0]                                    
                       p(c_51) = [0]                                    
                       p(c_52) = [0]                                    
                       p(c_53) = [0]                                    
                       p(c_54) = [4] x1 + [0]                           
                       p(c_55) = [0]                                    
                       p(c_56) = [1] x1 + [0]                           
                       p(c_57) = [4] x1 + [4] x2 + [0]                  
                       p(c_58) = [2] x1 + [0]                           
                       p(c_59) = [0]                                    
                       p(c_60) = [0]                                    
                       p(c_61) = [0]                                    
                       p(c_62) = [0]                                    
                       p(c_63) = [0]                                    
                       p(c_64) = [1] x1 + [0]                           
                       p(c_65) = [0]                                    
                       p(c_66) = [0]                                    
                       p(c_67) = [0]                                    
                       p(c_68) = [0]                                    
                       p(c_69) = [0]                                    
                       p(c_70) = [4] x2 + [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]                                    
        
        Following rules are strictly oriented:
        matrixMultList#1#(::(@m,@ms),@acc) = [1] @m + [1] @ms + [5]                        
                                           > [1] @ms + [4]                                 
                                           = c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        
        
        Following rules are (at-least) weakly oriented:
        matrixMultList#(@acc,@mm) =  [1] @mm + [4]                    
                                  >= [1] @mm + [3]                    
                                  =  c_27(matrixMultList#1#(@mm,@acc))
        
***** Step 8.b:3.a:3.a:5.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 8.b:3.a:3.a:5.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)):2
          
          2:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
***** Step 8.b:3.a:3.a:5.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 8.b:3.a:3.b:1: DecomposeDG WORST_CASE(?,O(n^4))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        and a lower component
          lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        Further, following extension rules are added to the lower component.
          matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
***** Step 8.b:3.a:3.b:1.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          
        Consider the set of all dependency pairs
          1: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
          2: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          3: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          4: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          5: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          6: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          7: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          8: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          9: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,4,5,9}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:3.a:3.b:1.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_23) = {1},
          uargs(c_24) = {2}
        
        Following symbols are considered usable:
          {matrixMult,matrixMult',matrixMult'#1,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                  
                       p(#abs) = [0]                  
                       p(#add) = [2] x2 + [4]         
                      p(#mult) = [1] x1 + [0]         
                   p(#natmult) = [1] x2 + [3]         
                       p(#neg) = [0]                  
                       p(#pos) = [1]                  
                      p(#pred) = [0]                  
                         p(#s) = [5]                  
                      p(#succ) = [5]                  
                          p(*) = [2] x2 + [1]         
                          p(+) = [2] x1 + [1] x2 + [0]
                         p(::) = [1] x2 + [2]         
                     p(attach) = [1]                  
                   p(attach#1) = [1] x1 + [0]         
                   p(attach#2) = [2]                  
                   p(lineMult) = [7] x1 + [0]         
                 p(lineMult#1) = [3]                  
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [0]                  
                 p(makeBase#1) = [0]                  
                 p(matrixMult) = [1] x1 + [0]         
                p(matrixMult') = [1] x1 + [0]         
              p(matrixMult'#1) = [1] x1 + [0]         
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [4]                  
                   p(mkBase#1) = [1] x1 + [0]         
                       p(mult) = [1] x1 + [0]         
                     p(mult#1) = [0]                  
                     p(mult#2) = [1] x1 + [1]         
                        p(nil) = [2]                  
                      p(split) = [2] x1 + [0]         
                    p(split#1) = [6]                  
                    p(split#2) = [0]                  
                    p(split#3) = [0]                  
                   p(transAcc) = [4] x1 + [0]         
                 p(transAcc#1) = [4] x1 + [0]         
                  p(transpose) = [0]                  
                p(transpose#1) = [0]                  
                p(transpose#2) = [4] x1 + [0]         
                p(transpose#3) = [5]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [1] x2 + [0]         
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [0]                  
                        p(m4#) = [0]                  
                  p(makeBase#) = [1]                  
                p(makeBase#1#) = [0]                  
                p(matrixMult#) = [1] x1 + [5]         
               p(matrixMult'#) = [1] x1 + [0]         
             p(matrixMult'#1#) = [1] x1 + [0]         
               p(matrixMult3#) = [1] x1 + [5]         
            p(matrixMultList#) = [1] x1 + [4] x2 + [1]
          p(matrixMultList#1#) = [4] x1 + [1] x2 + [1]
             p(matrixMultOld#) = [4] x1 + [0]         
                    p(mkBase#) = [0]                  
                  p(mkBase#1#) = [0]                  
                      p(mult#) = [1] x1 + [4] x2 + [0]
                    p(mult#1#) = [2] x1 + [0]         
                    p(mult#2#) = [1] x2 + [1] x3 + [0]
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [1] x2 + [0]         
                   p(split#3#) = [1] x1 + [0]         
                  p(transAcc#) = [1] x1 + [0]         
                p(transAcc#1#) = [1] x2 + [0]         
                 p(transpose#) = [0]                  
               p(transpose#1#) = [2] x1 + [0]         
               p(transpose#2#) = [2] x1 + [0]         
               p(transpose#3#) = [1] x2 + [0]         
                p(transpose'#) = [1] x1 + [0]         
                        p(c_1) = [0]                  
                        p(c_2) = [0]                  
                        p(c_3) = [0]                  
                        p(c_4) = [0]                  
                        p(c_5) = [4] x1 + [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) = [1] x1 + [0]         
                       p(c_13) = [0]                  
                       p(c_14) = [0]                  
                       p(c_15) = [1] x1 + [1] x2 + [0]
                       p(c_16) = [1] x1 + [0]         
                       p(c_17) = [4] x5 + [2]         
                       p(c_18) = [1] x1 + [2] x2 + [0]
                       p(c_19) = [2]                  
                       p(c_20) = [2]                  
                       p(c_21) = [1]                  
                       p(c_22) = [1] x1 + [5]         
                       p(c_23) = [1] x1 + [0]         
                       p(c_24) = [1] x2 + [0]         
                       p(c_25) = [0]                  
                       p(c_26) = [4] x1 + [0]         
                       p(c_27) = [0]                  
                       p(c_28) = [4] x1 + [0]         
                       p(c_29) = [0]                  
                       p(c_30) = [1] x1 + [0]         
                       p(c_31) = [0]                  
                       p(c_32) = [2] x1 + [0]         
                       p(c_33) = [0]                  
                       p(c_34) = [2] x1 + [0]         
                       p(c_35) = [0]                  
                       p(c_36) = [0]                  
                       p(c_37) = [1] x1 + [0]         
                       p(c_38) = [0]                  
                       p(c_39) = [0]                  
                       p(c_40) = [1] x1 + [0]         
                       p(c_41) = [0]                  
                       p(c_42) = [0]                  
                       p(c_43) = [0]                  
                       p(c_44) = [0]                  
                       p(c_45) = [1] x1 + [0]         
                       p(c_46) = [2] x1 + [0]         
                       p(c_47) = [0]                  
                       p(c_48) = [0]                  
                       p(c_49) = [4] x1 + [0]         
                       p(c_50) = [0]                  
                       p(c_51) = [0]                  
                       p(c_52) = [2] x1 + [0]         
                       p(c_53) = [0]                  
                       p(c_54) = [1] x1 + [1] x2 + [0]
                       p(c_55) = [0]                  
                       p(c_56) = [0]                  
                       p(c_57) = [1] x1 + [2]         
                       p(c_58) = [4] x1 + [0]         
                       p(c_59) = [4] x1 + [0]         
                       p(c_60) = [0]                  
                       p(c_61) = [0]                  
                       p(c_62) = [0]                  
                       p(c_63) = [0]                  
                       p(c_64) = [0]                  
                       p(c_65) = [1] x1 + [0]         
                       p(c_66) = [0]                  
                       p(c_67) = [1] x1 + [0]         
                       p(c_68) = [0]                  
                       p(c_69) = [0]                  
                       p(c_70) = [1] x2 + [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]                  
        
        Following rules are strictly oriented:
        matrixMult'#1#(::(@l,@ls),@m2) = [1] @ls + [2]                                
                                       > [1] @ls + [0]                                
                                       = c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
        
        
        Following rules are (at-least) weakly oriented:
                      matrixMult#(@m1,@m2) =  [1] @m1 + [5]                                      
                                           >= [1] @m1 + [5]                                      
                                           =  c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
        
                     matrixMult'#(@m1,@m2) =  [1] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  c_23(matrixMult'#1#(@m1,@m2))                      
        
                 matrixMult3#(@m1,@m2,@m3) =  [1] @m1 + [5]                                      
                                           >= [1] @m1 + [5]                                      
                                           =  matrixMult#(@m1,@m2)                               
        
                 matrixMult3#(@m1,@m2,@m3) =  [1] @m1 + [5]                                      
                                           >= [1] @m1 + [5]                                      
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)               
        
                 matrixMultList#(@acc,@mm) =  [1] @acc + [4] @mm + [1]                           
                                           >= [1] @acc + [4] @mm + [1]                           
                                           =  matrixMultList#1#(@mm,@acc)                        
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1] @acc + [4] @ms + [9]                           
                                           >= [1] @acc + [5]                                     
                                           =  matrixMult#(@acc,@m)                               
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1] @acc + [4] @ms + [9]                           
                                           >= [1] @acc + [4] @ms + [1]                           
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)           
        
                   matrixMultOld#(@m1,@m2) =  [4] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  matrixMult'#(@m1,transpose(@m2))                   
        
                       matrixMult(@m1,@m2) =  [1] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))       
        
                      matrixMult'(@m1,@m2) =  [1] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  matrixMult'#1(@m1,@m2)                             
        
             matrixMult'#1(::(@l,@ls),@m2) =  [1] @ls + [2]                                      
                                           >= [1] @ls + [2]                                      
                                           =  ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))          
        
                  matrixMult'#1(nil(),@m2) =  [2]                                                
                                           >= [2]                                                
                                           =  nil()                                              
        
****** Step 8.b:3.a:3.b:1.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:3.a:3.b:1.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          2:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):3
          
          3:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          5:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          6:W:matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms):8
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m):7
          
          7:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          8:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
             -->_1 matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc):6
          
          9:W:matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          6: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          8: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          7: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          5: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          4: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          1: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          2: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          3: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
****** Step 8.b:3.a:3.b:1.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

***** Step 8.b:3.a:3.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          5: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          
        Consider the set of all dependency pairs
          1: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          2: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          3: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          4: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          5: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          6: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          7: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          8: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          9: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          10: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          11: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          12: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          13: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          14: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          15: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {5}
        These cover all (indirect) predecessors of dependency pairs
          {5,10,11,15}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:3.a:3.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_12) = {1},
          uargs(c_13) = {1,2},
          uargs(c_34) = {1},
          uargs(c_35) = {1},
          uargs(c_37) = {1}
        
        Following symbols are considered usable:
          {attach,attach#1,attach#2,makeBase,makeBase#1,mkBase,mkBase#1,split,split#1,split#2,split#3,transAcc
          ,transAcc#1,transpose,transpose#1,transpose#2,transpose#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
          ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
          ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#
          ,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                 
                                 [1]                                 
                       p(#abs) = [0]                                 
                                 [0]                                 
                       p(#add) = [0 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [0 0]      [1]           
                      p(#mult) = [0 0] x1 + [0 0] x2 + [0]           
                                 [0 1]      [0 1]      [0]           
                   p(#natmult) = [0 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [1 0]      [0]           
                       p(#neg) = [0]                                 
                                 [1]                                 
                       p(#pos) = [0]                                 
                                 [0]                                 
                      p(#pred) = [1]                                 
                                 [0]                                 
                         p(#s) = [0 1] x1 + [0]                      
                                 [0 0]      [0]                      
                      p(#succ) = [0 1] x1 + [1]                      
                                 [0 0]      [1]                      
                          p(*) = [0]                                 
                                 [0]                                 
                          p(+) = [0 1] x2 + [0]                      
                                 [0 0]      [0]                      
                         p(::) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                     p(attach) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 1]      [0 1]      [1]           
                   p(attach#1) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 1]      [0 1]      [0]           
                   p(attach#2) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 1]      [1]
                   p(lineMult) = [0 0] x1 + [0 1] x2 + [0]           
                                 [1 0]      [0 1]      [0]           
                 p(lineMult#1) = [0]                                 
                                 [0]                                 
                         p(m1) = [0]                                 
                                 [0]                                 
                         p(m2) = [0]                                 
                                 [0]                                 
                         p(m3) = [0]                                 
                                 [0]                                 
                         p(m4) = [0]                                 
                                 [0]                                 
                   p(makeBase) = [0 0] x1 + [0]                      
                                 [1 1]      [0]                      
                 p(makeBase#1) = [0 0] x1 + [0]                      
                                 [1 0]      [0]                      
                 p(matrixMult) = [0]                                 
                                 [0]                                 
                p(matrixMult') = [1]                                 
                                 [0]                                 
              p(matrixMult'#1) = [1]                                 
                                 [0]                                 
                p(matrixMult3) = [0]                                 
                                 [0]                                 
             p(matrixMultList) = [0]                                 
                                 [0]                                 
           p(matrixMultList#1) = [0]                                 
                                 [0]                                 
              p(matrixMultOld) = [0]                                 
                                 [0]                                 
                     p(mkBase) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                   p(mkBase#1) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(mult) = [0 0] x1 + [0 0] x2 + [0]           
                                 [0 1]      [1 0]      [0]           
                     p(mult#1) = [0 1] x1 + [0]                      
                                 [0 0]      [1]                      
                     p(mult#2) = [0]                                 
                                 [1]                                 
                        p(nil) = [0]                                 
                                 [0]                                 
                      p(split) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#1) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#2) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                    p(split#3) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [1]
                   p(transAcc) = [1 0] x1 + [1 0] x2 + [0]           
                                 [1 1]      [0 1]      [1]           
                 p(transAcc#1) = [1 0] x1 + [1 0] x2 + [0]           
                                 [1 1]      [0 1]      [1]           
                  p(transpose) = [1 1] x1 + [0]                      
                                 [1 0]      [1]                      
                p(transpose#1) = [1 1] x2 + [0]                      
                                 [1 0]      [1]                      
                p(transpose#2) = [1 1] x1 + [0]                      
                                 [1 0]      [1]                      
                p(transpose#3) = [1 1] x1 + [1 1] x2 + [0]           
                                 [1 1]      [0 0]      [1]           
                 p(transpose') = [0]                                 
                                 [0]                                 
                    p(tuple#2) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [0 0]      [0]           
                      p(#abs#) = [0]                                 
                                 [0]                                 
                      p(#add#) = [0]                                 
                                 [0]                                 
                     p(#mult#) = [0]                                 
                                 [0]                                 
                  p(#natmult#) = [0]                                 
                                 [0]                                 
                     p(#pred#) = [0]                                 
                                 [0]                                 
                     p(#succ#) = [0]                                 
                                 [0]                                 
                         p(*#) = [0]                                 
                                 [0]                                 
                         p(+#) = [0]                                 
                                 [0]                                 
                    p(attach#) = [0]                                 
                                 [0]                                 
                  p(attach#1#) = [0]                                 
                                 [0]                                 
                  p(attach#2#) = [0]                                 
                                 [0]                                 
                  p(lineMult#) = [1 0] x2 + [1]                      
                                 [0 0]      [0]                      
                p(lineMult#1#) = [1 0] x1 + [1]                      
                                 [0 0]      [1]                      
                        p(m1#) = [0]                                 
                                 [0]                                 
                        p(m2#) = [0]                                 
                                 [0]                                 
                        p(m3#) = [0]                                 
                                 [0]                                 
                        p(m4#) = [0]                                 
                                 [0]                                 
                  p(makeBase#) = [0]                                 
                                 [0]                                 
                p(makeBase#1#) = [0]                                 
                                 [0]                                 
                p(matrixMult#) = [1 1] x2 + [1]                      
                                 [1 0]      [1]                      
               p(matrixMult'#) = [1 0] x2 + [1]                      
                                 [1 0]      [0]                      
             p(matrixMult'#1#) = [1 0] x2 + [1]                      
                                 [1 0]      [0]                      
               p(matrixMult3#) = [0 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [1 0]      [1 0]      [1]
            p(matrixMultList#) = [1 1] x2 + [0]                      
                                 [1 0]      [1]                      
          p(matrixMultList#1#) = [1 1] x1 + [0]                      
                                 [1 0]      [1]                      
             p(matrixMultOld#) = [0 1] x1 + [1 1] x2 + [1]           
                                 [0 1]      [1 1]      [0]           
                    p(mkBase#) = [0]                                 
                                 [0]                                 
                  p(mkBase#1#) = [0]                                 
                                 [0]                                 
                      p(mult#) = [0 1] x2 + [0]                      
                                 [1 0]      [0]                      
                    p(mult#1#) = [0 1] x2 + [0]                      
                                 [0 0]      [1]                      
                    p(mult#2#) = [0 1] x1 + [0]                      
                                 [0 0]      [1]                      
                     p(split#) = [0]                                 
                                 [0]                                 
                   p(split#1#) = [0]                                 
                                 [0]                                 
                   p(split#2#) = [0]                                 
                                 [0]                                 
                   p(split#3#) = [0]                                 
                                 [0]                                 
                  p(transAcc#) = [0]                                 
                                 [0]                                 
                p(transAcc#1#) = [0]                                 
                                 [0]                                 
                 p(transpose#) = [0]                                 
                                 [0]                                 
               p(transpose#1#) = [0]                                 
                                 [0]                                 
               p(transpose#2#) = [0]                                 
                                 [0]                                 
               p(transpose#3#) = [0]                                 
                                 [0]                                 
                p(transpose'#) = [0]                                 
                                 [0]                                 
                        p(c_1) = [0]                                 
                                 [0]                                 
                        p(c_2) = [0]                                 
                                 [0]                                 
                        p(c_3) = [0]                                 
                                 [0]                                 
                        p(c_4) = [0]                                 
                                 [0]                                 
                        p(c_5) = [0]                                 
                                 [0]                                 
                        p(c_6) = [0]                                 
                                 [0]                                 
                        p(c_7) = [0]                                 
                                 [0]                                 
                        p(c_8) = [0]                                 
                                 [0]                                 
                        p(c_9) = [0]                                 
                                 [0]                                 
                       p(c_10) = [0]                                 
                                 [0]                                 
                       p(c_11) = [0]                                 
                                 [0]                                 
                       p(c_12) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_13) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 0]      [1]           
                       p(c_14) = [0]                                 
                                 [0]                                 
                       p(c_15) = [0]                                 
                                 [0]                                 
                       p(c_16) = [0]                                 
                                 [0]                                 
                       p(c_17) = [0]                                 
                                 [0]                                 
                       p(c_18) = [0]                                 
                                 [0]                                 
                       p(c_19) = [0]                                 
                                 [0]                                 
                       p(c_20) = [0]                                 
                                 [0]                                 
                       p(c_21) = [0]                                 
                                 [0]                                 
                       p(c_22) = [0]                                 
                                 [0]                                 
                       p(c_23) = [0]                                 
                                 [0]                                 
                       p(c_24) = [0]                                 
                                 [0]                                 
                       p(c_25) = [0]                                 
                                 [0]                                 
                       p(c_26) = [0]                                 
                                 [0]                                 
                       p(c_27) = [0]                                 
                                 [0]                                 
                       p(c_28) = [0]                                 
                                 [0]                                 
                       p(c_29) = [0]                                 
                                 [0]                                 
                       p(c_30) = [0]                                 
                                 [0]                                 
                       p(c_31) = [0]                                 
                                 [0]                                 
                       p(c_32) = [0]                                 
                                 [0]                                 
                       p(c_33) = [0]                                 
                                 [0]                                 
                       p(c_34) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_35) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_36) = [0]                                 
                                 [0]                                 
                       p(c_37) = [1 0] x1 + [0]                      
                                 [0 0]      [1]                      
                       p(c_38) = [0]                                 
                                 [0]                                 
                       p(c_39) = [0]                                 
                                 [0]                                 
                       p(c_40) = [0]                                 
                                 [0]                                 
                       p(c_41) = [0]                                 
                                 [0]                                 
                       p(c_42) = [0]                                 
                                 [0]                                 
                       p(c_43) = [0]                                 
                                 [0]                                 
                       p(c_44) = [0]                                 
                                 [0]                                 
                       p(c_45) = [0]                                 
                                 [0]                                 
                       p(c_46) = [0]                                 
                                 [0]                                 
                       p(c_47) = [0]                                 
                                 [0]                                 
                       p(c_48) = [0]                                 
                                 [0]                                 
                       p(c_49) = [0]                                 
                                 [0]                                 
                       p(c_50) = [0]                                 
                                 [0]                                 
                       p(c_51) = [0]                                 
                                 [0]                                 
                       p(c_52) = [0]                                 
                                 [0]                                 
                       p(c_53) = [0]                                 
                                 [0]                                 
                       p(c_54) = [0]                                 
                                 [0]                                 
                       p(c_55) = [0]                                 
                                 [0]                                 
                       p(c_56) = [0]                                 
                                 [0]                                 
                       p(c_57) = [0]                                 
                                 [0]                                 
                       p(c_58) = [0]                                 
                                 [0]                                 
                       p(c_59) = [0]                                 
                                 [0]                                 
                       p(c_60) = [0]                                 
                                 [0]                                 
                       p(c_61) = [0]                                 
                                 [0]                                 
                       p(c_62) = [0]                                 
                                 [0]                                 
                       p(c_63) = [0]                                 
                                 [0]                                 
                       p(c_64) = [0]                                 
                                 [0]                                 
                       p(c_65) = [0]                                 
                                 [0]                                 
                       p(c_66) = [0]                                 
                                 [0]                                 
                       p(c_67) = [0]                                 
                                 [0]                                 
                       p(c_68) = [0]                                 
                                 [0]                                 
                       p(c_69) = [0]                                 
                                 [0]                                 
                       p(c_70) = [0]                                 
                                 [0]                                 
                       p(c_71) = [0]                                 
                                 [0]                                 
                       p(c_72) = [0]                                 
                                 [0]                                 
                       p(c_73) = [0]                                 
                                 [0]                                 
                       p(c_74) = [0]                                 
                                 [0]                                 
                       p(c_75) = [0]                                 
                                 [0]                                 
                       p(c_76) = [0]                                 
                                 [0]                                 
                       p(c_77) = [0]                                 
                                 [0]                                 
                       p(c_78) = [0]                                 
                                 [0]                                 
        
        Following rules are strictly oriented:
        mult#2#(::(@y,@ys),@x,@xs) = [0 1] @ys + [1]     
                                     [0 0]       [1]     
                                   > [0 1] @ys + [0]     
                                     [0 0]       [1]     
                                   = c_37(mult#(@xs,@ys))
        
        
        Following rules are (at-least) weakly oriented:
                         lineMult#(@l,@m2) =  [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  c_12(lineMult#1#(@m2,@l))                         
        
                lineMult#1#(::(@x,@xs),@l) =  [1 1] @x + [1 0] @xs + [1]                        
                                              [0 0]      [0 0]       [1]                        
                                           >= [1 1] @x + [1 0] @xs + [1]                        
                                              [0 0]      [0 0]       [1]                        
                                           =  c_13(mult#(@l,@x),lineMult#(@l,@xs))              
        
                      matrixMult#(@m1,@m2) =  [1 1] @m2 + [1]                                   
                                              [1 0]       [1]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           =  matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))     
        
                     matrixMult'#(@m1,@m2) =  [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           =  matrixMult'#1#(@m1,@m2)                           
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#(@l,@m2)                                 
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           =  matrixMult'#(@ls,@m2)                             
        
                 matrixMult3#(@m1,@m2,@m3) =  [0 0] @m1 + [1 1] @m2 + [1 1] @m3 + [1]           
                                              [0 1]       [1 0]       [1 0]       [1]           
                                           >= [1 1] @m2 + [1]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMult#(@m1,@m2)                              
        
                 matrixMult3#(@m1,@m2,@m3) =  [0 0] @m1 + [1 1] @m2 + [1 1] @m3 + [1]           
                                              [0 1]       [1 0]       [1 0]       [1]           
                                           >= [1 1] @m3 + [1]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)              
        
                 matrixMultList#(@acc,@mm) =  [1 1] @mm + [0]                                   
                                              [1 0]       [1]                                   
                                           >= [1 1] @mm + [0]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMultList#1#(@mm,@acc)                       
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [1]                        
                                              [1 1]      [1 0]       [1]                        
                                           >= [1 1] @m + [1]                                    
                                              [1 0]      [1]                                    
                                           =  matrixMult#(@acc,@m)                              
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [1]                        
                                              [1 1]      [1 0]       [1]                        
                                           >= [1 1] @ms + [0]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)          
        
                   matrixMultOld#(@m1,@m2) =  [0 1] @m1 + [1 1] @m2 + [1]                       
                                              [0 1]       [1 1]       [0]                       
                                           >= [1 1] @m2 + [1]                                   
                                              [1 1]       [0]                                   
                                           =  matrixMult'#(@m1,transpose(@m2))                  
        
                            mult#(@l1,@l2) =  [0 1] @l2 + [0]                                   
                                              [1 0]       [0]                                   
                                           >= [0 1] @l2 + [0]                                   
                                              [0 0]       [0]                                   
                                           =  c_34(mult#1#(@l1,@l2))                            
        
                   mult#1#(::(@x,@xs),@l2) =  [0 1] @l2 + [0]                                   
                                              [0 0]       [1]                                   
                                           >= [0 1] @l2 + [0]                                   
                                              [0 0]       [0]                                   
                                           =  c_35(mult#2#(@l2,@x,@xs))                         
        
                          attach(@line,@m) =  [1 1] @line + [1 0] @m + [0]                      
                                              [0 1]         [0 1]      [1]                      
                                           >= [1 1] @line + [1 0] @m + [0]                      
                                              [0 1]         [0 1]      [0]                      
                                           =  attach#1(@line,@m)                                
        
                   attach#1(::(@x,@xs),@m) =  [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 1]       [1]             
                                           >= [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 1]       [1]             
                                           =  attach#2(@m,@x,@xs)                               
        
                        attach#1(nil(),@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
               attach#2(::(@l,@ls),@x,@xs) =  [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 1]       [2] 
                                           >= [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 1]       [2] 
                                           =  ::(::(@x,@l),attach(@xs,@ls))                     
        
                    attach#2(nil(),@x,@xs) =  [1 1] @x + [1 1] @xs + [1]                        
                                              [0 0]      [0 1]       [1]                        
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                              makeBase(@m) =  [0 0] @m + [0]                                    
                                              [1 1]      [0]                                    
                                           >= [0 0] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  makeBase#1(@m)                                    
        
                    makeBase#1(::(@l,@m')) =  [0 0] @l + [0 0] @m' + [0]                        
                                              [1 1]      [1 0]       [0]                        
                                           >= [0 0] @l + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase(@l)                                        
        
                         makeBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                mkBase(@m) =  [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase#1(@m)                                      
        
                      mkBase#1(::(@l,@m')) =  [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           =  ::(nil(),mkBase(@m'))                             
        
                           mkBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                 split(@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  split#1(@m)                                       
        
                       split#1(::(@l,@ls)) =  [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           >= [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           =  split#2(@l,@ls)                                   
        
                            split#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
                   split#2(::(@x,@xs),@ls) =  [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           >= [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           =  split#3(split(@ls),@x,@xs)                        
        
                        split#2(nil(),@ls) =  [1 0] @ls + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
          split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           >= [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           =  tuple#2(::(@x,@ys),::(@xs,@m'))                   
        
                        transAcc(@m,@base) =  [1 0] @base + [1 0] @m + [0]                      
                                              [0 1]         [1 1]      [1]                      
                                           >= [1 0] @base + [1 0] @m + [0]                      
                                              [0 1]         [1 1]      [1]                      
                                           =  transAcc#1(@m,@base)                              
        
              transAcc#1(::(@l,@m'),@base) =  [1 0] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [0 1]         [1 1]      [1 1]       [2]          
                                           >= [1 0] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [0 1]         [0 1]      [1 1]       [2]          
                                           =  attach(@l,transAcc(@m',@base))                    
        
                   transAcc#1(nil(),@base) =  [1 0] @base + [0]                                 
                                              [0 1]         [1]                                 
                                           >= [1 0] @base + [0]                                 
                                              [0 1]         [0]                                 
                                           =  @base                                             
        
                             transpose(@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           =  transpose#1(@m,@m)                                
        
              transpose#1(::(@xs,@xss),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           =  transpose#2(split(@m))                            
        
                     transpose#1(nil(),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
              transpose#2(tuple#2(@l,@m')) =  [1 1] @l + [1 1] @m' + [0]                        
                                              [1 0]      [1 1]       [1]                        
                                           >= [1 1] @l + [1 1] @m' + [0]                        
                                              [0 0]      [1 1]       [1]                        
                                           =  transpose#3(@m',@l)                               
        
                transpose#3(::(@y,@ys),@l) =  [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 1]       [2]             
                                           >= [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 0]       [2]             
                                           =  ::(@l,transpose(::(@y,@ys)))                      
        
                     transpose#3(nil(),@l) =  [1 1] @l + [0]                                    
                                              [0 0]      [1]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
****** Step 8.b:3.a:3.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:3.a:3.b:1.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          
        Consider the set of all dependency pairs
          1: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          2: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          3: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          4: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          5: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          6: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          7: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          8: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          9: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          10: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          11: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          12: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          13: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          14: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          15: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,9,10,14}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 8.b:3.a:3.b:1.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_12) = {1},
          uargs(c_13) = {1,2},
          uargs(c_34) = {1},
          uargs(c_35) = {1},
          uargs(c_37) = {1}
        
        Following symbols are considered usable:
          {attach,attach#1,attach#2,makeBase,makeBase#1,mkBase,mkBase#1,split,split#1,split#2,split#3,transAcc
          ,transAcc#1,transpose,transpose#1,transpose#2,transpose#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
          ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
          ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#
          ,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                 
                                 [1]                                 
                       p(#abs) = [0]                                 
                                 [0]                                 
                       p(#add) = [1 0] x1 + [0 0] x2 + [0]           
                                 [0 0]      [1 1]      [1]           
                      p(#mult) = [0 0] x2 + [1]                      
                                 [0 1]      [1]                      
                   p(#natmult) = [0 0] x2 + [1]                      
                                 [1 1]      [0]                      
                       p(#neg) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(#pos) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                      p(#pred) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                         p(#s) = [1 1] x1 + [1]                      
                                 [0 0]      [0]                      
                      p(#succ) = [1 0] x1 + [0]                      
                                 [1 1]      [0]                      
                          p(*) = [0 1] x1 + [1]                      
                                 [0 0]      [0]                      
                          p(+) = [0 0] x1 + [1 1] x2 + [0]           
                                 [1 0]      [0 1]      [1]           
                         p(::) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                     p(attach) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#1) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#2) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [0]
                   p(lineMult) = [1 0] x2 + [1]                      
                                 [0 1]      [0]                      
                 p(lineMult#1) = [0]                                 
                                 [1]                                 
                         p(m1) = [0]                                 
                                 [0]                                 
                         p(m2) = [0]                                 
                                 [0]                                 
                         p(m3) = [0]                                 
                                 [0]                                 
                         p(m4) = [0]                                 
                                 [0]                                 
                   p(makeBase) = [0 1] x1 + [0]                      
                                 [1 0]      [0]                      
                 p(makeBase#1) = [0 0] x1 + [0]                      
                                 [1 0]      [0]                      
                 p(matrixMult) = [0]                                 
                                 [0]                                 
                p(matrixMult') = [1 1] x2 + [0]                      
                                 [0 0]      [0]                      
              p(matrixMult'#1) = [0]                                 
                                 [0]                                 
                p(matrixMult3) = [0]                                 
                                 [0]                                 
             p(matrixMultList) = [0]                                 
                                 [0]                                 
           p(matrixMultList#1) = [0]                                 
                                 [0]                                 
              p(matrixMultOld) = [0]                                 
                                 [0]                                 
                     p(mkBase) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                   p(mkBase#1) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(mult) = [0 1] x1 + [0 0] x2 + [0]           
                                 [1 0]      [1 1]      [0]           
                     p(mult#1) = [0]                                 
                                 [1]                                 
                     p(mult#2) = [0 1] x1 + [1]                      
                                 [0 1]      [1]                      
                        p(nil) = [0]                                 
                                 [0]                                 
                      p(split) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#1) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#2) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                    p(split#3) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [1]
                   p(transAcc) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 0]      [1 1]      [0]           
                 p(transAcc#1) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 0]      [1 1]      [0]           
                  p(transpose) = [1 1] x1 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#1) = [1 1] x2 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#2) = [1 1] x1 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#3) = [1 1] x1 + [1 1] x2 + [0]           
                                 [1 1]      [0 0]      [0]           
                 p(transpose') = [0]                                 
                                 [0]                                 
                    p(tuple#2) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [0 0]      [0]           
                      p(#abs#) = [0]                                 
                                 [0]                                 
                      p(#add#) = [0]                                 
                                 [0]                                 
                     p(#mult#) = [0]                                 
                                 [0]                                 
                  p(#natmult#) = [0]                                 
                                 [0]                                 
                     p(#pred#) = [0]                                 
                                 [0]                                 
                     p(#succ#) = [0]                                 
                                 [0]                                 
                         p(*#) = [0]                                 
                                 [0]                                 
                         p(+#) = [0]                                 
                                 [0]                                 
                    p(attach#) = [0]                                 
                                 [0]                                 
                  p(attach#1#) = [0]                                 
                                 [0]                                 
                  p(attach#2#) = [0]                                 
                                 [0]                                 
                  p(lineMult#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
                p(lineMult#1#) = [0 1] x1 + [0 0] x2 + [0]           
                                 [1 0]      [1 0]      [0]           
                        p(m1#) = [0]                                 
                                 [0]                                 
                        p(m2#) = [0]                                 
                                 [0]                                 
                        p(m3#) = [0]                                 
                                 [0]                                 
                        p(m4#) = [0]                                 
                                 [0]                                 
                  p(makeBase#) = [0]                                 
                                 [0]                                 
                p(makeBase#1#) = [0]                                 
                                 [0]                                 
                p(matrixMult#) = [1 1] x2 + [1]                      
                                 [0 0]      [0]                      
               p(matrixMult'#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
             p(matrixMult'#1#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
               p(matrixMult3#) = [1 1] x2 + [1 1] x3 + [1]           
                                 [1 0]      [1 1]      [0]           
            p(matrixMultList#) = [1 0] x2 + [1]                      
                                 [0 0]      [1]                      
          p(matrixMultList#1#) = [1 0] x1 + [1]                      
                                 [0 0]      [1]                      
             p(matrixMultOld#) = [0 0] x1 + [1 0] x2 + [1]           
                                 [1 1]      [0 0]      [0]           
                    p(mkBase#) = [0]                                 
                                 [0]                                 
                  p(mkBase#1#) = [0]                                 
                                 [0]                                 
                      p(mult#) = [0 0] x1 + [0 0] x2 + [0]           
                                 [1 1]      [1 1]      [0]           
                    p(mult#1#) = [0 0] x1 + [0 0] x2 + [0]           
                                 [1 1]      [1 0]      [0]           
                    p(mult#2#) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [1 0]      [1 1]      [0 1]      [1]
                     p(split#) = [0]                                 
                                 [0]                                 
                   p(split#1#) = [0]                                 
                                 [0]                                 
                   p(split#2#) = [0]                                 
                                 [0]                                 
                   p(split#3#) = [0]                                 
                                 [0]                                 
                  p(transAcc#) = [0]                                 
                                 [0]                                 
                p(transAcc#1#) = [0]                                 
                                 [0]                                 
                 p(transpose#) = [0]                                 
                                 [0]                                 
               p(transpose#1#) = [0]                                 
                                 [0]                                 
               p(transpose#2#) = [0]                                 
                                 [0]                                 
               p(transpose#3#) = [0]                                 
                                 [0]                                 
                p(transpose'#) = [0]                                 
                                 [0]                                 
                        p(c_1) = [0]                                 
                                 [0]                                 
                        p(c_2) = [0]                                 
                                 [0]                                 
                        p(c_3) = [0]                                 
                                 [0]                                 
                        p(c_4) = [0]                                 
                                 [0]                                 
                        p(c_5) = [0]                                 
                                 [0]                                 
                        p(c_6) = [0]                                 
                                 [0]                                 
                        p(c_7) = [0]                                 
                                 [0]                                 
                        p(c_8) = [0]                                 
                                 [0]                                 
                        p(c_9) = [0]                                 
                                 [0]                                 
                       p(c_10) = [0]                                 
                                 [0]                                 
                       p(c_11) = [0]                                 
                                 [0]                                 
                       p(c_12) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_13) = [1 0] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 0]      [0]           
                       p(c_14) = [0]                                 
                                 [0]                                 
                       p(c_15) = [0]                                 
                                 [0]                                 
                       p(c_16) = [0]                                 
                                 [0]                                 
                       p(c_17) = [0]                                 
                                 [0]                                 
                       p(c_18) = [0]                                 
                                 [0]                                 
                       p(c_19) = [0]                                 
                                 [0]                                 
                       p(c_20) = [0]                                 
                                 [0]                                 
                       p(c_21) = [0]                                 
                                 [0]                                 
                       p(c_22) = [0]                                 
                                 [0]                                 
                       p(c_23) = [0]                                 
                                 [0]                                 
                       p(c_24) = [0]                                 
                                 [0]                                 
                       p(c_25) = [0]                                 
                                 [0]                                 
                       p(c_26) = [0]                                 
                                 [0]                                 
                       p(c_27) = [0]                                 
                                 [0]                                 
                       p(c_28) = [0]                                 
                                 [0]                                 
                       p(c_29) = [0]                                 
                                 [0]                                 
                       p(c_30) = [0]                                 
                                 [0]                                 
                       p(c_31) = [0]                                 
                                 [0]                                 
                       p(c_32) = [0]                                 
                                 [0]                                 
                       p(c_33) = [0]                                 
                                 [0]                                 
                       p(c_34) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(c_35) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(c_36) = [0]                                 
                                 [0]                                 
                       p(c_37) = [1 0] x1 + [0]                      
                                 [0 0]      [1]                      
                       p(c_38) = [0]                                 
                                 [0]                                 
                       p(c_39) = [0]                                 
                                 [0]                                 
                       p(c_40) = [0]                                 
                                 [0]                                 
                       p(c_41) = [0]                                 
                                 [0]                                 
                       p(c_42) = [0]                                 
                                 [0]                                 
                       p(c_43) = [0]                                 
                                 [0]                                 
                       p(c_44) = [0]                                 
                                 [0]                                 
                       p(c_45) = [0]                                 
                                 [0]                                 
                       p(c_46) = [0]                                 
                                 [0]                                 
                       p(c_47) = [0]                                 
                                 [0]                                 
                       p(c_48) = [0]                                 
                                 [0]                                 
                       p(c_49) = [0]                                 
                                 [0]                                 
                       p(c_50) = [0]                                 
                                 [0]                                 
                       p(c_51) = [0]                                 
                                 [0]                                 
                       p(c_52) = [0]                                 
                                 [0]                                 
                       p(c_53) = [0]                                 
                                 [0]                                 
                       p(c_54) = [0]                                 
                                 [0]                                 
                       p(c_55) = [0]                                 
                                 [0]                                 
                       p(c_56) = [0]                                 
                                 [0]                                 
                       p(c_57) = [0]                                 
                                 [0]                                 
                       p(c_58) = [0]                                 
                                 [0]                                 
                       p(c_59) = [0]                                 
                                 [0]                                 
                       p(c_60) = [0]                                 
                                 [0]                                 
                       p(c_61) = [0]                                 
                                 [0]                                 
                       p(c_62) = [0]                                 
                                 [0]                                 
                       p(c_63) = [0]                                 
                                 [0]                                 
                       p(c_64) = [0]                                 
                                 [0]                                 
                       p(c_65) = [0]                                 
                                 [0]                                 
                       p(c_66) = [0]                                 
                                 [0]                                 
                       p(c_67) = [0]                                 
                                 [0]                                 
                       p(c_68) = [0]                                 
                                 [0]                                 
                       p(c_69) = [0]                                 
                                 [0]                                 
                       p(c_70) = [0]                                 
                                 [0]                                 
                       p(c_71) = [0]                                 
                                 [0]                                 
                       p(c_72) = [0]                                 
                                 [0]                                 
                       p(c_73) = [0]                                 
                                 [0]                                 
                       p(c_74) = [0]                                 
                                 [0]                                 
                       p(c_75) = [0]                                 
                                 [0]                                 
                       p(c_76) = [0]                                 
                                 [0]                                 
                       p(c_77) = [0]                                 
                                 [0]                                 
                       p(c_78) = [0]                                 
                                 [0]                                 
        
        Following rules are strictly oriented:
        lineMult#(@l,@m2) = [0 1] @m2 + [1]          
                            [0 0]       [0]          
                          > [0 1] @m2 + [0]          
                            [0 0]       [0]          
                          = c_12(lineMult#1#(@m2,@l))
        
        
        Following rules are (at-least) weakly oriented:
                lineMult#1#(::(@x,@xs),@l) =  [0 0] @l + [0 0] @x + [0 1] @xs + [1]             
                                              [1 0]      [1 1]      [1 0]       [0]             
                                           >= [0 1] @xs + [1]                                   
                                              [0 0]       [0]                                   
                                           =  c_13(mult#(@l,@x),lineMult#(@l,@xs))              
        
                      matrixMult#(@m1,@m2) =  [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))     
        
                     matrixMult'#(@m1,@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#1#(@m1,@m2)                           
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#(@l,@m2)                                 
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@ls,@m2)                             
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [1 0]       [1 1]       [0]                       
                                           >= [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult#(@m1,@m2)                              
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [1 0]       [1 1]       [0]                       
                                           >= [1 1] @m3 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)              
        
                 matrixMultList#(@acc,@mm) =  [1 0] @mm + [1]                                   
                                              [0 0]       [1]                                   
                                           >= [1 0] @mm + [1]                                   
                                              [0 0]       [1]                                   
                                           =  matrixMultList#1#(@mm,@acc)                       
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 0] @ms + [1]                        
                                              [0 0]      [0 0]       [1]                        
                                           >= [1 1] @m + [1]                                    
                                              [0 0]      [0]                                    
                                           =  matrixMult#(@acc,@m)                              
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 0] @ms + [1]                        
                                              [0 0]      [0 0]       [1]                        
                                           >= [1 0] @ms + [1]                                   
                                              [0 0]       [1]                                   
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)          
        
                   matrixMultOld#(@m1,@m2) =  [0 0] @m1 + [1 0] @m2 + [1]                       
                                              [1 1]       [0 0]       [0]                       
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transpose(@m2))                  
        
                            mult#(@l1,@l2) =  [0 0] @l1 + [0 0] @l2 + [0]                       
                                              [1 1]       [1 1]       [0]                       
                                           >= [0 0] @l1 + [0 0] @l2 + [0]                       
                                              [1 1]       [1 0]       [0]                       
                                           =  c_34(mult#1#(@l1,@l2))                            
        
                   mult#1#(::(@x,@xs),@l2) =  [0 0] @l2 + [0 0] @x + [0 0] @xs + [0]            
                                              [1 0]       [1 1]      [1 1]       [1]            
                                           >= [0 0] @l2 + [0 0] @x + [0 0] @xs + [0]            
                                              [1 0]       [1 1]      [0 1]       [1]            
                                           =  c_35(mult#2#(@l2,@x,@xs))                         
        
                mult#2#(::(@y,@ys),@x,@xs) =  [0 0] @x + [0 0] @xs + [0 0] @y + [0 0] @ys + [0] 
                                              [1 1]      [0 1]       [1 1]      [1 0]       [1] 
                                           >= [0]                                               
                                              [1]                                               
                                           =  c_37(mult#(@xs,@ys))                              
        
                          attach(@line,@m) =  [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           >= [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           =  attach#1(@line,@m)                                
        
                   attach#1(::(@x,@xs),@m) =  [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           >= [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           =  attach#2(@m,@x,@xs)                               
        
                        attach#1(nil(),@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
               attach#2(::(@l,@ls),@x,@xs) =  [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           >= [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           =  ::(::(@x,@l),attach(@xs,@ls))                     
        
                    attach#2(nil(),@x,@xs) =  [1 1] @x + [1 1] @xs + [1]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                              makeBase(@m) =  [0 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [0 0] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  makeBase#1(@m)                                    
        
                    makeBase#1(::(@l,@m')) =  [0 0] @l + [0 0] @m' + [0]                        
                                              [1 1]      [1 0]       [0]                        
                                           >= [0 0] @l + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase(@l)                                        
        
                         makeBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                mkBase(@m) =  [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase#1(@m)                                      
        
                      mkBase#1(::(@l,@m')) =  [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           =  ::(nil(),mkBase(@m'))                             
        
                           mkBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                 split(@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  split#1(@m)                                       
        
                       split#1(::(@l,@ls)) =  [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           >= [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           =  split#2(@l,@ls)                                   
        
                            split#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
                   split#2(::(@x,@xs),@ls) =  [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           >= [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           =  split#3(split(@ls),@x,@xs)                        
        
                        split#2(nil(),@ls) =  [1 0] @ls + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
          split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           >= [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           =  tuple#2(::(@x,@ys),::(@xs,@m'))                   
        
                        transAcc(@m,@base) =  [1 1] @base + [1 0] @m + [0]                      
                                              [1 1]         [0 0]      [0]                      
                                           >= [1 1] @base + [1 0] @m + [0]                      
                                              [1 1]         [0 0]      [0]                      
                                           =  transAcc#1(@m,@base)                              
        
              transAcc#1(::(@l,@m'),@base) =  [1 1] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [1 1]         [0 0]      [0 0]       [0]          
                                           >= [1 1] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [1 1]         [0 0]      [0 0]       [0]          
                                           =  attach(@l,transAcc(@m',@base))                    
        
                   transAcc#1(nil(),@base) =  [1 1] @base + [0]                                 
                                              [1 1]         [0]                                 
                                           >= [1 0] @base + [0]                                 
                                              [0 1]         [0]                                 
                                           =  @base                                             
        
                             transpose(@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#1(@m,@m)                                
        
              transpose#1(::(@xs,@xss),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#2(split(@m))                            
        
                     transpose#1(nil(),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
              transpose#2(tuple#2(@l,@m')) =  [1 1] @l + [1 1] @m' + [0]                        
                                              [1 0]      [1 1]       [0]                        
                                           >= [1 1] @l + [1 1] @m' + [0]                        
                                              [0 0]      [1 1]       [0]                        
                                           =  transpose#3(@m',@l)                               
        
                transpose#3(::(@y,@ys),@l) =  [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 1]       [1]             
                                           >= [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 0]       [1]             
                                           =  ::(@l,transpose(::(@y,@ys)))                      
        
                     transpose#3(nil(),@l) =  [1 1] @l + [0]                                    
                                              [0 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
******* Step 8.b:3.a:3.b:1.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 8.b:3.a:3.b:1.b:1.b:1.b:1: DecomposeDG WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict DPs:
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        and a lower component
          mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        Further, following extension rules are added to the lower component.
          lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
          lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
          lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
          matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
******** Step 8.b:3.a:3.b:1.b:1.b:1.b:1.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          
        Consider the set of all dependency pairs
          1: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          2: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          3: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          4: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          5: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          6: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          7: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          8: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          9: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          10: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          11: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          12: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,7,8,12}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_12) = {1},
          uargs(c_13) = {2}
        
        Following symbols are considered usable:
          {attach,attach#1,attach#2,makeBase,makeBase#1,mkBase,mkBase#1,split,split#1,split#2,split#3,transAcc
          ,transAcc#1,transpose,transpose#1,transpose#2,transpose#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
          ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
          ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#
          ,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                 
                                 [0]                                 
                       p(#abs) = [0]                                 
                                 [0]                                 
                       p(#add) = [1 0] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 0]      [0]           
                      p(#mult) = [0 1] x2 + [0]                      
                                 [0 0]      [1]                      
                   p(#natmult) = [0 0] x2 + [1]                      
                                 [1 0]      [0]                      
                       p(#neg) = [0]                                 
                                 [0]                                 
                       p(#pos) = [1 1] x1 + [0]                      
                                 [0 0]      [1]                      
                      p(#pred) = [0]                                 
                                 [1]                                 
                         p(#s) = [1 0] x1 + [1]                      
                                 [0 0]      [0]                      
                      p(#succ) = [0 0] x1 + [1]                      
                                 [1 1]      [0]                      
                          p(*) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                          p(+) = [1 0] x1 + [1 1] x2 + [1]           
                                 [0 0]      [0 0]      [0]           
                         p(::) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                     p(attach) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#1) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#2) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [0]
                   p(lineMult) = [0 0] x1 + [1 0] x2 + [0]           
                                 [1 0]      [1 0]      [0]           
                 p(lineMult#1) = [1]                                 
                                 [0]                                 
                         p(m1) = [0]                                 
                                 [0]                                 
                         p(m2) = [0]                                 
                                 [0]                                 
                         p(m3) = [0]                                 
                                 [0]                                 
                         p(m4) = [0]                                 
                                 [0]                                 
                   p(makeBase) = [0 1] x1 + [0]                      
                                 [1 1]      [0]                      
                 p(makeBase#1) = [0 1] x1 + [0]                      
                                 [1 0]      [0]                      
                 p(matrixMult) = [0]                                 
                                 [0]                                 
                p(matrixMult') = [0]                                 
                                 [0]                                 
              p(matrixMult'#1) = [1 0] x1 + [0]                      
                                 [0 0]      [1]                      
                p(matrixMult3) = [0]                                 
                                 [0]                                 
             p(matrixMultList) = [0]                                 
                                 [0]                                 
           p(matrixMultList#1) = [0]                                 
                                 [0]                                 
              p(matrixMultOld) = [0]                                 
                                 [0]                                 
                     p(mkBase) = [0 0] x1 + [1]                      
                                 [0 1]      [0]                      
                   p(mkBase#1) = [0 0] x1 + [1]                      
                                 [0 1]      [0]                      
                       p(mult) = [0 0] x1 + [1 1] x2 + [1]           
                                 [1 0]      [0 0]      [1]           
                     p(mult#1) = [1]                                 
                                 [0]                                 
                     p(mult#2) = [0 0] x1 + [0]                      
                                 [0 1]      [1]                      
                        p(nil) = [0]                                 
                                 [0]                                 
                      p(split) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#1) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#2) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                    p(split#3) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [1]
                   p(transAcc) = [1 0] x1 + [1 1] x2 + [1]           
                                 [0 0]      [0 1]      [0]           
                 p(transAcc#1) = [1 0] x1 + [1 1] x2 + [1]           
                                 [0 0]      [0 1]      [0]           
                  p(transpose) = [1 1] x1 + [1]                      
                                 [1 0]      [0]                      
                p(transpose#1) = [1 1] x2 + [1]                      
                                 [1 0]      [0]                      
                p(transpose#2) = [1 1] x1 + [1]                      
                                 [1 0]      [0]                      
                p(transpose#3) = [1 1] x1 + [1 1] x2 + [1]           
                                 [1 1]      [0 0]      [0]           
                 p(transpose') = [0]                                 
                                 [0]                                 
                    p(tuple#2) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [0 0]      [0]           
                      p(#abs#) = [0]                                 
                                 [0]                                 
                      p(#add#) = [0]                                 
                                 [0]                                 
                     p(#mult#) = [0]                                 
                                 [0]                                 
                  p(#natmult#) = [0]                                 
                                 [0]                                 
                     p(#pred#) = [0]                                 
                                 [0]                                 
                     p(#succ#) = [0]                                 
                                 [0]                                 
                         p(*#) = [0]                                 
                                 [0]                                 
                         p(+#) = [0]                                 
                                 [0]                                 
                    p(attach#) = [0]                                 
                                 [0]                                 
                  p(attach#1#) = [0]                                 
                                 [0]                                 
                  p(attach#2#) = [0]                                 
                                 [0]                                 
                  p(lineMult#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
                p(lineMult#1#) = [0 1] x1 + [0 0] x2 + [1]           
                                 [0 1]      [1 0]      [1]           
                        p(m1#) = [0]                                 
                                 [0]                                 
                        p(m2#) = [0]                                 
                                 [0]                                 
                        p(m3#) = [0]                                 
                                 [0]                                 
                        p(m4#) = [0]                                 
                                 [0]                                 
                  p(makeBase#) = [0]                                 
                                 [0]                                 
                p(makeBase#1#) = [0]                                 
                                 [0]                                 
                p(matrixMult#) = [1 1] x2 + [1]                      
                                 [0 1]      [1]                      
               p(matrixMult'#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
             p(matrixMult'#1#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
               p(matrixMult3#) = [1 1] x2 + [1 1] x3 + [1]           
                                 [1 1]      [1 1]      [1]           
            p(matrixMultList#) = [1 1] x2 + [0]                      
                                 [1 0]      [1]                      
          p(matrixMultList#1#) = [1 1] x1 + [0]                      
                                 [1 0]      [1]                      
             p(matrixMultOld#) = [1 0] x2 + [1]                      
                                 [1 0]      [0]                      
                    p(mkBase#) = [0]                                 
                                 [0]                                 
                  p(mkBase#1#) = [0]                                 
                                 [0]                                 
                      p(mult#) = [0]                                 
                                 [0]                                 
                    p(mult#1#) = [0]                                 
                                 [0]                                 
                    p(mult#2#) = [0]                                 
                                 [0]                                 
                     p(split#) = [0]                                 
                                 [0]                                 
                   p(split#1#) = [0]                                 
                                 [0]                                 
                   p(split#2#) = [0]                                 
                                 [0]                                 
                   p(split#3#) = [0]                                 
                                 [0]                                 
                  p(transAcc#) = [0]                                 
                                 [0]                                 
                p(transAcc#1#) = [0]                                 
                                 [0]                                 
                 p(transpose#) = [0]                                 
                                 [0]                                 
               p(transpose#1#) = [0]                                 
                                 [0]                                 
               p(transpose#2#) = [0]                                 
                                 [0]                                 
               p(transpose#3#) = [0]                                 
                                 [0]                                 
                p(transpose'#) = [0]                                 
                                 [0]                                 
                        p(c_1) = [0]                                 
                                 [0]                                 
                        p(c_2) = [0]                                 
                                 [0]                                 
                        p(c_3) = [0]                                 
                                 [0]                                 
                        p(c_4) = [0]                                 
                                 [0]                                 
                        p(c_5) = [0]                                 
                                 [0]                                 
                        p(c_6) = [0]                                 
                                 [0]                                 
                        p(c_7) = [0]                                 
                                 [0]                                 
                        p(c_8) = [0]                                 
                                 [0]                                 
                        p(c_9) = [0]                                 
                                 [0]                                 
                       p(c_10) = [0]                                 
                                 [0]                                 
                       p(c_11) = [0]                                 
                                 [0]                                 
                       p(c_12) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_13) = [1 0] x2 + [0]                      
                                 [1 0]      [1]                      
                       p(c_14) = [0]                                 
                                 [0]                                 
                       p(c_15) = [0]                                 
                                 [0]                                 
                       p(c_16) = [0]                                 
                                 [0]                                 
                       p(c_17) = [0]                                 
                                 [0]                                 
                       p(c_18) = [0]                                 
                                 [0]                                 
                       p(c_19) = [0]                                 
                                 [0]                                 
                       p(c_20) = [0]                                 
                                 [0]                                 
                       p(c_21) = [0]                                 
                                 [0]                                 
                       p(c_22) = [0]                                 
                                 [0]                                 
                       p(c_23) = [0]                                 
                                 [0]                                 
                       p(c_24) = [0]                                 
                                 [0]                                 
                       p(c_25) = [0]                                 
                                 [0]                                 
                       p(c_26) = [0]                                 
                                 [0]                                 
                       p(c_27) = [0]                                 
                                 [0]                                 
                       p(c_28) = [0]                                 
                                 [0]                                 
                       p(c_29) = [0]                                 
                                 [0]                                 
                       p(c_30) = [0]                                 
                                 [0]                                 
                       p(c_31) = [0]                                 
                                 [0]                                 
                       p(c_32) = [0]                                 
                                 [0]                                 
                       p(c_33) = [0]                                 
                                 [0]                                 
                       p(c_34) = [0]                                 
                                 [0]                                 
                       p(c_35) = [0]                                 
                                 [0]                                 
                       p(c_36) = [0]                                 
                                 [0]                                 
                       p(c_37) = [0]                                 
                                 [0]                                 
                       p(c_38) = [0]                                 
                                 [0]                                 
                       p(c_39) = [0]                                 
                                 [0]                                 
                       p(c_40) = [0]                                 
                                 [0]                                 
                       p(c_41) = [0]                                 
                                 [0]                                 
                       p(c_42) = [0]                                 
                                 [0]                                 
                       p(c_43) = [0]                                 
                                 [0]                                 
                       p(c_44) = [0]                                 
                                 [0]                                 
                       p(c_45) = [0]                                 
                                 [0]                                 
                       p(c_46) = [0]                                 
                                 [0]                                 
                       p(c_47) = [0]                                 
                                 [0]                                 
                       p(c_48) = [0]                                 
                                 [0]                                 
                       p(c_49) = [0]                                 
                                 [0]                                 
                       p(c_50) = [0]                                 
                                 [0]                                 
                       p(c_51) = [0]                                 
                                 [0]                                 
                       p(c_52) = [0]                                 
                                 [0]                                 
                       p(c_53) = [0]                                 
                                 [0]                                 
                       p(c_54) = [0]                                 
                                 [0]                                 
                       p(c_55) = [0]                                 
                                 [0]                                 
                       p(c_56) = [0]                                 
                                 [0]                                 
                       p(c_57) = [0]                                 
                                 [0]                                 
                       p(c_58) = [0]                                 
                                 [0]                                 
                       p(c_59) = [0]                                 
                                 [0]                                 
                       p(c_60) = [0]                                 
                                 [0]                                 
                       p(c_61) = [0]                                 
                                 [0]                                 
                       p(c_62) = [0]                                 
                                 [0]                                 
                       p(c_63) = [0]                                 
                                 [0]                                 
                       p(c_64) = [0]                                 
                                 [0]                                 
                       p(c_65) = [0]                                 
                                 [0]                                 
                       p(c_66) = [0]                                 
                                 [0]                                 
                       p(c_67) = [0]                                 
                                 [0]                                 
                       p(c_68) = [0]                                 
                                 [0]                                 
                       p(c_69) = [0]                                 
                                 [0]                                 
                       p(c_70) = [0]                                 
                                 [0]                                 
                       p(c_71) = [0]                                 
                                 [0]                                 
                       p(c_72) = [0]                                 
                                 [0]                                 
                       p(c_73) = [0]                                 
                                 [0]                                 
                       p(c_74) = [0]                                 
                                 [0]                                 
                       p(c_75) = [0]                                 
                                 [0]                                 
                       p(c_76) = [0]                                 
                                 [0]                                 
                       p(c_77) = [0]                                 
                                 [0]                                 
                       p(c_78) = [0]                                 
                                 [0]                                 
        
        Following rules are strictly oriented:
        lineMult#1#(::(@x,@xs),@l) = [0 0] @l + [0 1] @xs + [2]          
                                     [1 0]      [0 1]       [2]          
                                   > [0 1] @xs + [1]                     
                                     [0 1]       [2]                     
                                   = c_13(mult#(@l,@x),lineMult#(@l,@xs))
        
        
        Following rules are (at-least) weakly oriented:
                         lineMult#(@l,@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  c_12(lineMult#1#(@m2,@l))                         
        
                      matrixMult#(@m1,@m2) =  [1 1] @m2 + [1]                                   
                                              [0 1]       [1]                                   
                                           >= [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))     
        
                     matrixMult'#(@m1,@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#1#(@m1,@m2)                           
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#(@l,@m2)                                 
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [0 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@ls,@m2)                             
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [1 1]       [1 1]       [1]                       
                                           >= [1 1] @m2 + [1]                                   
                                              [0 1]       [1]                                   
                                           =  matrixMult#(@m1,@m2)                              
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [1 1]       [1 1]       [1]                       
                                           >= [1 1] @m3 + [1]                                   
                                              [0 1]       [1]                                   
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)              
        
                 matrixMultList#(@acc,@mm) =  [1 1] @mm + [0]                                   
                                              [1 0]       [1]                                   
                                           >= [1 1] @mm + [0]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMultList#1#(@mm,@acc)                       
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [1]                        
                                              [1 1]      [1 0]       [1]                        
                                           >= [1 1] @m + [1]                                    
                                              [0 1]      [1]                                    
                                           =  matrixMult#(@acc,@m)                              
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [1]                        
                                              [1 1]      [1 0]       [1]                        
                                           >= [1 1] @ms + [0]                                   
                                              [1 0]       [1]                                   
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)          
        
                   matrixMultOld#(@m1,@m2) =  [1 0] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transpose(@m2))                  
        
                          attach(@line,@m) =  [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           >= [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           =  attach#1(@line,@m)                                
        
                   attach#1(::(@x,@xs),@m) =  [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           >= [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           =  attach#2(@m,@x,@xs)                               
        
                        attach#1(nil(),@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
               attach#2(::(@l,@ls),@x,@xs) =  [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           >= [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           =  ::(::(@x,@l),attach(@xs,@ls))                     
        
                    attach#2(nil(),@x,@xs) =  [1 1] @x + [1 1] @xs + [1]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                              makeBase(@m) =  [0 1] @m + [0]                                    
                                              [1 1]      [0]                                    
                                           >= [0 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  makeBase#1(@m)                                    
        
                    makeBase#1(::(@l,@m')) =  [0 0] @l + [0 1] @m' + [1]                        
                                              [1 1]      [1 0]       [0]                        
                                           >= [0 0] @l + [1]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase(@l)                                        
        
                         makeBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                mkBase(@m) =  [0 0] @m + [1]                                    
                                              [0 1]      [0]                                    
                                           >= [0 0] @m + [1]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase#1(@m)                                      
        
                      mkBase#1(::(@l,@m')) =  [0 0] @m' + [1]                                   
                                              [0 1]       [1]                                   
                                           >= [0 0] @m' + [1]                                   
                                              [0 1]       [1]                                   
                                           =  ::(nil(),mkBase(@m'))                             
        
                           mkBase#1(nil()) =  [1]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                 split(@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  split#1(@m)                                       
        
                       split#1(::(@l,@ls)) =  [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           >= [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           =  split#2(@l,@ls)                                   
        
                            split#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
                   split#2(::(@x,@xs),@ls) =  [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           >= [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           =  split#3(split(@ls),@x,@xs)                        
        
                        split#2(nil(),@ls) =  [1 0] @ls + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
          split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           >= [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           =  tuple#2(::(@x,@ys),::(@xs,@m'))                   
        
                        transAcc(@m,@base) =  [1 1] @base + [1 0] @m + [1]                      
                                              [0 1]         [0 0]      [0]                      
                                           >= [1 1] @base + [1 0] @m + [1]                      
                                              [0 1]         [0 0]      [0]                      
                                           =  transAcc#1(@m,@base)                              
        
              transAcc#1(::(@l,@m'),@base) =  [1 1] @base + [1 1] @l + [1 0] @m' + [1]          
                                              [0 1]         [0 0]      [0 0]       [0]          
                                           >= [1 1] @base + [1 1] @l + [1 0] @m' + [1]          
                                              [0 1]         [0 0]      [0 0]       [0]          
                                           =  attach(@l,transAcc(@m',@base))                    
        
                   transAcc#1(nil(),@base) =  [1 1] @base + [1]                                 
                                              [0 1]         [0]                                 
                                           >= [1 0] @base + [0]                                 
                                              [0 1]         [0]                                 
                                           =  @base                                             
        
                             transpose(@m) =  [1 1] @m + [1]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [1]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#1(@m,@m)                                
        
              transpose#1(::(@xs,@xss),@m) =  [1 1] @m + [1]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [1]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#2(split(@m))                            
        
                     transpose#1(nil(),@m) =  [1 1] @m + [1]                                    
                                              [1 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
              transpose#2(tuple#2(@l,@m')) =  [1 1] @l + [1 1] @m' + [1]                        
                                              [1 0]      [1 1]       [0]                        
                                           >= [1 1] @l + [1 1] @m' + [1]                        
                                              [0 0]      [1 1]       [0]                        
                                           =  transpose#3(@m',@l)                               
        
                transpose#3(::(@y,@ys),@l) =  [1 1] @l + [1 1] @y + [1 1] @ys + [2]             
                                              [0 0]      [1 1]      [1 1]       [1]             
                                           >= [1 1] @l + [1 1] @y + [1 1] @ys + [2]             
                                              [0 0]      [1 1]      [1 0]       [1]             
                                           =  ::(@l,transpose(::(@y,@ys)))                      
        
                     transpose#3(nil(),@l) =  [1 1] @l + [1]                                    
                                              [0 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):2
          
          2:W:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          3:W:matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):4
          
          4:W:matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2):6
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2):5
          
          5:W:matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):1
          
          6:W:matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):4
          
          7:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):3
          
          8:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):3
          
          9:W:matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms):11
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m):10
          
          10:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):3
          
          11:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
             -->_1 matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc):9
          
          12:W:matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          12: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          9: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          11: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          10: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          8: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          7: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          3: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          4: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          6: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          5: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          1: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          2: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

******** Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:1: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
        - Weak DPs:
            lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
            lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
            lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {2}
        by application of
          Pre({2}) = {1}.
        Here rules are labelled as follows:
          1: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          2: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          3: lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
          4: lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
          5: lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
          6: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          7: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          8: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          9: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          10: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          11: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          12: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          13: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          14: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          15: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          16: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
******** Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:2: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
        - Weak DPs:
            lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
            lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
            lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          
        Consider the set of all dependency pairs
          1: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          2: lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
          3: lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
          4: lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
          5: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          6: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          7: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          8: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          9: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          10: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          11: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          12: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          13: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          14: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          15: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
          16: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,9,10,14,15,16}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:2.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
        - Weak DPs:
            lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
            lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
            lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_34) = {1},
          uargs(c_35) = {1},
          uargs(c_37) = {1}
        
        Following symbols are considered usable:
          {attach,attach#1,attach#2,makeBase,makeBase#1,mkBase,mkBase#1,split,split#1,split#2,split#3,transAcc
          ,transAcc#1,transpose,transpose#1,transpose#2,transpose#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
          ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
          ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#
          ,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                 
                                 [0]                                 
                       p(#abs) = [0]                                 
                                 [0]                                 
                       p(#add) = [0 0] x1 + [0 0] x2 + [0]           
                                 [1 0]      [1 0]      [1]           
                      p(#mult) = [1]                                 
                                 [1]                                 
                   p(#natmult) = [0 1] x2 + [0]                      
                                 [0 0]      [0]                      
                       p(#neg) = [1 1] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(#pos) = [0]                                 
                                 [0]                                 
                      p(#pred) = [0]                                 
                                 [0]                                 
                         p(#s) = [0 1] x1 + [0]                      
                                 [0 1]      [0]                      
                      p(#succ) = [0]                                 
                                 [0]                                 
                          p(*) = [0]                                 
                                 [0]                                 
                          p(+) = [1]                                 
                                 [1]                                 
                         p(::) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                     p(attach) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#1) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                   p(attach#2) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [0]
                   p(lineMult) = [0 0] x1 + [1]                      
                                 [1 1]      [0]                      
                 p(lineMult#1) = [0]                                 
                                 [1]                                 
                         p(m1) = [0]                                 
                                 [0]                                 
                         p(m2) = [0]                                 
                                 [0]                                 
                         p(m3) = [0]                                 
                                 [0]                                 
                         p(m4) = [0]                                 
                                 [0]                                 
                   p(makeBase) = [0 0] x1 + [0]                      
                                 [1 0]      [1]                      
                 p(makeBase#1) = [0 0] x1 + [0]                      
                                 [1 0]      [1]                      
                 p(matrixMult) = [0]                                 
                                 [0]                                 
                p(matrixMult') = [0]                                 
                                 [1]                                 
              p(matrixMult'#1) = [0]                                 
                                 [1]                                 
                p(matrixMult3) = [0]                                 
                                 [0]                                 
             p(matrixMultList) = [0]                                 
                                 [0]                                 
           p(matrixMultList#1) = [0]                                 
                                 [0]                                 
              p(matrixMultOld) = [0]                                 
                                 [0]                                 
                     p(mkBase) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                   p(mkBase#1) = [0 0] x1 + [0]                      
                                 [0 1]      [0]                      
                       p(mult) = [0 0] x1 + [1 0] x2 + [1]           
                                 [1 0]      [0 0]      [0]           
                     p(mult#1) = [0 1] x1 + [1]                      
                                 [0 0]      [0]                      
                     p(mult#2) = [0]                                 
                                 [0]                                 
                        p(nil) = [0]                                 
                                 [0]                                 
                      p(split) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#1) = [1 0] x1 + [0]                      
                                 [0 1]      [0]                      
                    p(split#2) = [1 1] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [1]           
                    p(split#3) = [1 0] x1 + [1 1] x2 + [1 1] x3 + [1]
                                 [0 1]      [0 0]      [0 0]      [1]
                   p(transAcc) = [1 0] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                 p(transAcc#1) = [1 0] x1 + [1 0] x2 + [0]           
                                 [0 0]      [0 1]      [0]           
                  p(transpose) = [1 1] x1 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#1) = [1 1] x2 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#2) = [1 1] x1 + [0]                      
                                 [1 0]      [0]                      
                p(transpose#3) = [1 1] x1 + [1 1] x2 + [0]           
                                 [1 1]      [0 0]      [0]           
                 p(transpose') = [0]                                 
                                 [0]                                 
                    p(tuple#2) = [1 0] x1 + [1 1] x2 + [0]           
                                 [0 1]      [0 0]      [0]           
                      p(#abs#) = [0]                                 
                                 [0]                                 
                      p(#add#) = [0]                                 
                                 [0]                                 
                     p(#mult#) = [0]                                 
                                 [0]                                 
                  p(#natmult#) = [0]                                 
                                 [0]                                 
                     p(#pred#) = [0]                                 
                                 [0]                                 
                     p(#succ#) = [0]                                 
                                 [0]                                 
                         p(*#) = [0]                                 
                                 [0]                                 
                         p(+#) = [0]                                 
                                 [0]                                 
                    p(attach#) = [0]                                 
                                 [0]                                 
                  p(attach#1#) = [0]                                 
                                 [0]                                 
                  p(attach#2#) = [0]                                 
                                 [0]                                 
                  p(lineMult#) = [1 0] x2 + [1]                      
                                 [0 0]      [0]                      
                p(lineMult#1#) = [1 0] x1 + [1]                      
                                 [0 0]      [0]                      
                        p(m1#) = [0]                                 
                                 [0]                                 
                        p(m2#) = [0]                                 
                                 [0]                                 
                        p(m3#) = [0]                                 
                                 [0]                                 
                        p(m4#) = [0]                                 
                                 [0]                                 
                  p(makeBase#) = [0]                                 
                                 [0]                                 
                p(makeBase#1#) = [0]                                 
                                 [0]                                 
                p(matrixMult#) = [1 1] x2 + [1]                      
                                 [0 0]      [0]                      
               p(matrixMult'#) = [1 0] x2 + [1]                      
                                 [0 0]      [0]                      
             p(matrixMult'#1#) = [1 0] x2 + [1]                      
                                 [0 0]      [0]                      
               p(matrixMult3#) = [1 1] x2 + [1 1] x3 + [1]           
                                 [0 0]      [1 0]      [0]           
            p(matrixMultList#) = [1 1] x2 + [1]                      
                                 [0 0]      [0]                      
          p(matrixMultList#1#) = [1 1] x1 + [1]                      
                                 [0 0]      [0]                      
             p(matrixMultOld#) = [1 1] x2 + [1]                      
                                 [1 0]      [0]                      
                    p(mkBase#) = [0]                                 
                                 [0]                                 
                  p(mkBase#1#) = [0]                                 
                                 [0]                                 
                      p(mult#) = [0 1] x2 + [1]                      
                                 [0 0]      [0]                      
                    p(mult#1#) = [0 0] x1 + [0 1] x2 + [0]           
                                 [0 1]      [1 0]      [0]           
                    p(mult#2#) = [0 1] x1 + [0 0] x3 + [0]           
                                 [1 1]      [1 1]      [0]           
                     p(split#) = [0]                                 
                                 [0]                                 
                   p(split#1#) = [0]                                 
                                 [0]                                 
                   p(split#2#) = [0]                                 
                                 [0]                                 
                   p(split#3#) = [0]                                 
                                 [0]                                 
                  p(transAcc#) = [0]                                 
                                 [0]                                 
                p(transAcc#1#) = [0]                                 
                                 [0]                                 
                 p(transpose#) = [0]                                 
                                 [0]                                 
               p(transpose#1#) = [0]                                 
                                 [0]                                 
               p(transpose#2#) = [0]                                 
                                 [0]                                 
               p(transpose#3#) = [0]                                 
                                 [0]                                 
                p(transpose'#) = [0]                                 
                                 [0]                                 
                        p(c_1) = [0]                                 
                                 [0]                                 
                        p(c_2) = [0]                                 
                                 [0]                                 
                        p(c_3) = [0]                                 
                                 [0]                                 
                        p(c_4) = [0]                                 
                                 [0]                                 
                        p(c_5) = [0]                                 
                                 [0]                                 
                        p(c_6) = [0]                                 
                                 [0]                                 
                        p(c_7) = [0]                                 
                                 [0]                                 
                        p(c_8) = [0]                                 
                                 [0]                                 
                        p(c_9) = [0]                                 
                                 [0]                                 
                       p(c_10) = [0]                                 
                                 [0]                                 
                       p(c_11) = [0]                                 
                                 [0]                                 
                       p(c_12) = [0]                                 
                                 [0]                                 
                       p(c_13) = [0]                                 
                                 [0]                                 
                       p(c_14) = [0]                                 
                                 [0]                                 
                       p(c_15) = [0]                                 
                                 [0]                                 
                       p(c_16) = [0]                                 
                                 [0]                                 
                       p(c_17) = [0]                                 
                                 [0]                                 
                       p(c_18) = [0]                                 
                                 [0]                                 
                       p(c_19) = [0]                                 
                                 [0]                                 
                       p(c_20) = [0]                                 
                                 [0]                                 
                       p(c_21) = [0]                                 
                                 [0]                                 
                       p(c_22) = [0]                                 
                                 [0]                                 
                       p(c_23) = [0]                                 
                                 [0]                                 
                       p(c_24) = [0]                                 
                                 [0]                                 
                       p(c_25) = [0]                                 
                                 [0]                                 
                       p(c_26) = [0]                                 
                                 [0]                                 
                       p(c_27) = [0]                                 
                                 [0]                                 
                       p(c_28) = [0]                                 
                                 [0]                                 
                       p(c_29) = [0]                                 
                                 [0]                                 
                       p(c_30) = [0]                                 
                                 [0]                                 
                       p(c_31) = [0]                                 
                                 [0]                                 
                       p(c_32) = [0]                                 
                                 [0]                                 
                       p(c_33) = [0]                                 
                                 [0]                                 
                       p(c_34) = [1 0] x1 + [0]                      
                                 [0 0]      [0]                      
                       p(c_35) = [1 0] x1 + [0]                      
                                 [0 0]      [1]                      
                       p(c_36) = [0]                                 
                                 [0]                                 
                       p(c_37) = [1 0] x1 + [0]                      
                                 [1 0]      [0]                      
                       p(c_38) = [0]                                 
                                 [0]                                 
                       p(c_39) = [0]                                 
                                 [0]                                 
                       p(c_40) = [0]                                 
                                 [0]                                 
                       p(c_41) = [0]                                 
                                 [0]                                 
                       p(c_42) = [0]                                 
                                 [0]                                 
                       p(c_43) = [0]                                 
                                 [0]                                 
                       p(c_44) = [0]                                 
                                 [0]                                 
                       p(c_45) = [0]                                 
                                 [0]                                 
                       p(c_46) = [0]                                 
                                 [0]                                 
                       p(c_47) = [0]                                 
                                 [0]                                 
                       p(c_48) = [0]                                 
                                 [0]                                 
                       p(c_49) = [0]                                 
                                 [0]                                 
                       p(c_50) = [0]                                 
                                 [0]                                 
                       p(c_51) = [0]                                 
                                 [0]                                 
                       p(c_52) = [0]                                 
                                 [0]                                 
                       p(c_53) = [0]                                 
                                 [0]                                 
                       p(c_54) = [0]                                 
                                 [0]                                 
                       p(c_55) = [0]                                 
                                 [0]                                 
                       p(c_56) = [0]                                 
                                 [0]                                 
                       p(c_57) = [0]                                 
                                 [0]                                 
                       p(c_58) = [0]                                 
                                 [0]                                 
                       p(c_59) = [0]                                 
                                 [0]                                 
                       p(c_60) = [0]                                 
                                 [0]                                 
                       p(c_61) = [0]                                 
                                 [0]                                 
                       p(c_62) = [0]                                 
                                 [0]                                 
                       p(c_63) = [0]                                 
                                 [0]                                 
                       p(c_64) = [0]                                 
                                 [0]                                 
                       p(c_65) = [0]                                 
                                 [0]                                 
                       p(c_66) = [0]                                 
                                 [0]                                 
                       p(c_67) = [0]                                 
                                 [0]                                 
                       p(c_68) = [0]                                 
                                 [0]                                 
                       p(c_69) = [0]                                 
                                 [0]                                 
                       p(c_70) = [0]                                 
                                 [0]                                 
                       p(c_71) = [0]                                 
                                 [0]                                 
                       p(c_72) = [0]                                 
                                 [0]                                 
                       p(c_73) = [0]                                 
                                 [0]                                 
                       p(c_74) = [0]                                 
                                 [0]                                 
                       p(c_75) = [0]                                 
                                 [0]                                 
                       p(c_76) = [0]                                 
                                 [0]                                 
                       p(c_77) = [0]                                 
                                 [0]                                 
                       p(c_78) = [0]                                 
                                 [0]                                 
        
        Following rules are strictly oriented:
        mult#(@l1,@l2) = [0 1] @l2 + [1]       
                         [0 0]       [0]       
                       > [0 1] @l2 + [0]       
                         [0 0]       [0]       
                       = c_34(mult#1#(@l1,@l2))
        
        
        Following rules are (at-least) weakly oriented:
                         lineMult#(@l,@m2) =  [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#1#(@m2,@l)                               
        
                lineMult#1#(::(@x,@xs),@l) =  [1 1] @x + [1 0] @xs + [1]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [1 0] @xs + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#(@l,@xs)                                 
        
                lineMult#1#(::(@x,@xs),@l) =  [1 1] @x + [1 0] @xs + [1]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [0 1] @x + [1]                                    
                                              [0 0]      [0]                                    
                                           =  mult#(@l,@x)                                      
        
                      matrixMult#(@m1,@m2) =  [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))     
        
                     matrixMult'#(@m1,@m2) =  [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#1#(@m1,@m2)                           
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  lineMult#(@l,@m2)                                 
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 0] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@ls,@m2)                             
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [0 0]       [1 0]       [0]                       
                                           >= [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult#(@m1,@m2)                              
        
                 matrixMult3#(@m1,@m2,@m3) =  [1 1] @m2 + [1 1] @m3 + [1]                       
                                              [0 0]       [1 0]       [0]                       
                                           >= [1 1] @m3 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)              
        
                 matrixMultList#(@acc,@mm) =  [1 1] @mm + [1]                                   
                                              [0 0]       [0]                                   
                                           >= [1 1] @mm + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMultList#1#(@mm,@acc)                       
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [2]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [1 1] @m + [1]                                    
                                              [0 0]      [0]                                    
                                           =  matrixMult#(@acc,@m)                              
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1 1] @m + [1 1] @ms + [2]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [1 1] @ms + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)          
        
                   matrixMultOld#(@m1,@m2) =  [1 1] @m2 + [1]                                   
                                              [1 0]       [0]                                   
                                           >= [1 1] @m2 + [1]                                   
                                              [0 0]       [0]                                   
                                           =  matrixMult'#(@m1,transpose(@m2))                  
        
                   mult#1#(::(@x,@xs),@l2) =  [0 1] @l2 + [0 0] @xs + [0]                       
                                              [1 0]       [0 1]       [1]                       
                                           >= [0 1] @l2 + [0]                                   
                                              [0 0]       [1]                                   
                                           =  c_35(mult#2#(@l2,@x,@xs))                         
        
                mult#2#(::(@y,@ys),@x,@xs) =  [0 0] @xs + [0 0] @y + [0 1] @ys + [1]            
                                              [1 1]       [1 1]      [1 1]       [1]            
                                           >= [0 1] @ys + [1]                                   
                                              [0 1]       [1]                                   
                                           =  c_37(mult#(@xs,@ys))                              
        
                          attach(@line,@m) =  [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           >= [1 1] @line + [1 0] @m + [0]                      
                                              [0 0]         [0 1]      [0]                      
                                           =  attach#1(@line,@m)                                
        
                   attach#1(::(@x,@xs),@m) =  [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           >= [1 0] @m + [1 1] @x + [1 1] @xs + [1]             
                                              [0 1]      [0 0]      [0 0]       [0]             
                                           =  attach#2(@m,@x,@xs)                               
        
                        attach#1(nil(),@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
               attach#2(::(@l,@ls),@x,@xs) =  [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           >= [1 1] @l + [1 0] @ls + [1 1] @x + [1 1] @xs + [1] 
                                              [0 0]      [0 1]       [0 0]      [0 0]       [1] 
                                           =  ::(::(@x,@l),attach(@xs,@ls))                     
        
                    attach#2(nil(),@x,@xs) =  [1 1] @x + [1 1] @xs + [1]                        
                                              [0 0]      [0 0]       [0]                        
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                              makeBase(@m) =  [0 0] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           >= [0 0] @m + [0]                                    
                                              [1 0]      [1]                                    
                                           =  makeBase#1(@m)                                    
        
                    makeBase#1(::(@l,@m')) =  [0 0] @l + [0 0] @m' + [0]                        
                                              [1 1]      [1 0]       [1]                        
                                           >= [0 0] @l + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase(@l)                                        
        
                         makeBase#1(nil()) =  [0]                                               
                                              [1]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                mkBase(@m) =  [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [0 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  mkBase#1(@m)                                      
        
                      mkBase#1(::(@l,@m')) =  [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0 0] @m' + [0]                                   
                                              [0 1]       [1]                                   
                                           =  ::(nil(),mkBase(@m'))                             
        
                           mkBase#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
                                 split(@m) =  [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           >= [1 0] @m + [0]                                    
                                              [0 1]      [0]                                    
                                           =  split#1(@m)                                       
        
                       split#1(::(@l,@ls)) =  [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           >= [1 1] @l + [1 0] @ls + [0]                        
                                              [0 0]      [0 1]       [1]                        
                                           =  split#2(@l,@ls)                                   
        
                            split#1(nil()) =  [0]                                               
                                              [0]                                               
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
                   split#2(::(@x,@xs),@ls) =  [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           >= [1 0] @ls + [1 1] @x + [1 1] @xs + [1]            
                                              [0 1]       [0 0]      [0 0]       [1]            
                                           =  split#3(split(@ls),@x,@xs)                        
        
                        split#2(nil(),@ls) =  [1 0] @ls + [0]                                   
                                              [0 1]       [1]                                   
                                           >= [0]                                               
                                              [0]                                               
                                           =  tuple#2(nil(),nil())                              
        
          split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           >= [1 1] @m' + [1 1] @x + [1 1] @xs + [1 0] @ys + [1]
                                              [0 0]       [0 0]      [0 0]       [0 1]       [1]
                                           =  tuple#2(::(@x,@ys),::(@xs,@m'))                   
        
                        transAcc(@m,@base) =  [1 0] @base + [1 0] @m + [0]                      
                                              [0 1]         [0 0]      [0]                      
                                           >= [1 0] @base + [1 0] @m + [0]                      
                                              [0 1]         [0 0]      [0]                      
                                           =  transAcc#1(@m,@base)                              
        
              transAcc#1(::(@l,@m'),@base) =  [1 0] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [0 1]         [0 0]      [0 0]       [0]          
                                           >= [1 0] @base + [1 1] @l + [1 0] @m' + [0]          
                                              [0 1]         [0 0]      [0 0]       [0]          
                                           =  attach(@l,transAcc(@m',@base))                    
        
                   transAcc#1(nil(),@base) =  [1 0] @base + [0]                                 
                                              [0 1]         [0]                                 
                                           >= [1 0] @base + [0]                                 
                                              [0 1]         [0]                                 
                                           =  @base                                             
        
                             transpose(@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#1(@m,@m)                                
        
              transpose#1(::(@xs,@xss),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           =  transpose#2(split(@m))                            
        
                     transpose#1(nil(),@m) =  [1 1] @m + [0]                                    
                                              [1 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
              transpose#2(tuple#2(@l,@m')) =  [1 1] @l + [1 1] @m' + [0]                        
                                              [1 0]      [1 1]       [0]                        
                                           >= [1 1] @l + [1 1] @m' + [0]                        
                                              [0 0]      [1 1]       [0]                        
                                           =  transpose#3(@m',@l)                               
        
                transpose#3(::(@y,@ys),@l) =  [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 1]       [1]             
                                           >= [1 1] @l + [1 1] @y + [1 1] @ys + [1]             
                                              [0 0]      [1 1]      [1 0]       [1]             
                                           =  ::(@l,transpose(::(@y,@ys)))                      
        
                     transpose#3(nil(),@l) =  [1 1] @l + [0]                                    
                                              [0 0]      [0]                                    
                                           >= [0]                                               
                                              [0]                                               
                                           =  nil()                                             
        
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:2.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
            lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
            lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:2.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
            lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
            lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
            matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
            matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
             -->_1 lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x):3
             -->_1 lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs):2
          
          2:W:lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
             -->_1 lineMult#(@l,@m2) -> lineMult#1#(@m2,@l):1
          
          3:W:lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
          4:W:matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):5
          
          5:W:matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2):7
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2):6
          
          6:W:matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
             -->_1 lineMult#(@l,@m2) -> lineMult#1#(@m2,@l):1
          
          7:W:matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):5
          
          8:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):4
          
          9:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):4
          
          10:W:matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms):12
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m):11
          
          11:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
             -->_1 matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))):4
          
          12:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
             -->_1 matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc):10
          
          13:W:matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2):5
          
          14:W:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):15
          
          15:W:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):16
          
          16:W:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):14
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          13: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          10: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          12: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          11: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          9: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          8: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          4: matrixMult#(@m1,@m2) -> matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
          5: matrixMult'#(@m1,@m2) -> matrixMult'#1#(@m1,@m2)
          7: matrixMult'#1#(::(@l,@ls),@m2) -> matrixMult'#(@ls,@m2)
          6: matrixMult'#1#(::(@l,@ls),@m2) -> lineMult#(@l,@m2)
          1: lineMult#(@l,@m2) -> lineMult#1#(@m2,@l)
          2: lineMult#1#(::(@x,@xs),@l) -> lineMult#(@l,@xs)
          3: lineMult#1#(::(@x,@xs),@l) -> mult#(@l,@x)
          14: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          16: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          15: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
********* Step 8.b:3.a:3.b:1.b:1.b:1.b:1.b:2.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 8.b:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
            lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
            mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
            mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
            mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):2
          
          2:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          3:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          4:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):5
          
          5:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_1 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):22
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          6:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          7:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):8
          
          8:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):7
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          9:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          10:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):11
          
          11:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          12:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):13
          
          13:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):14
          
          14:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):12
          
          15:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):16
          
          16:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
          17:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):18
          
          18:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):19
             -->_2 split#(@m) -> c_39(split#1#(@m)):12
          
          19:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):20
          
          20:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
          
          21:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          22:W:lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
             -->_1 lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs)):23
          
          23:W:lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):24
             -->_2 lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l)):22
          
          24:W:mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
             -->_1 mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs)):25
          
          25:W:mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
             -->_1 mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys)):26
          
          26:W:mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
             -->_1 mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2)):24
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          22: lineMult#(@l,@m2) -> c_12(lineMult#1#(@m2,@l))
          23: lineMult#1#(::(@x,@xs),@l) -> c_13(mult#(@l,@x),lineMult#(@l,@xs))
          24: mult#(@l1,@l2) -> c_34(mult#1#(@l1,@l2))
          26: mult#2#(::(@y,@ys),@x,@xs) -> c_37(mult#(@xs,@ys))
          25: mult#1#(::(@x,@xs),@l2) -> c_35(mult#2#(@l2,@x,@xs))
*** Step 8.b:3.b:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/2,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):2
          
          2:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          3:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          4:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2)):5
          
          5:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(lineMult#(@l,@m2),matrixMult'#(@ls,@m2))
             -->_2 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          6:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          7:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):8
          
          8:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):7
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          9:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          10:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):11
          
          11:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          12:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):13
          
          13:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):14
          
          14:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):12
          
          15:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):16
          
          16:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
          17:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):18
          
          18:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):19
             -->_2 split#(@m) -> c_39(split#1#(@m)):12
          
          19:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):20
          
          20:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
          
          21:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
*** Step 8.b:3.b:3: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          - Weak DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
          - Weak DPs:
              makeBase#(@m) -> c_19(makeBase#1#(@m))
              makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
              mkBase#(@m) -> c_31(mkBase#1#(@m))
              mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/3,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
**** Step 8.b:3.b:3.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):2
          
          2:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          3:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          4:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):5
          
          5:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
          
          6:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          7:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):8
          
          8:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):7
          
          9:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):4
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
          
          10:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):11
          
          11:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          12:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):13
          
          13:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):14
          
          14:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):12
          
          15:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):16
          
          16:W:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
          17:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):18
          
          18:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):12
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):19
          
          19:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):20
          
          20:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):17
          
          21:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          17: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          20: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          19: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          18: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          12: split#(@m) -> c_39(split#1#(@m))
          14: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          13: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          4: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          5: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
          15: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          16: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
**** Step 8.b:3.b:3.a:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):2
          
          2:S:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          3:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          6:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
          
          7:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):8
          
          8:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):3
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):7
          
          10:S:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):11
          
          11:S:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):10
          
          21:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
          transpose'#(@m) -> c_54(makeBase#(@m))
**** Step 8.b:3.b:3.a:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          makeBase#(@m) -> c_19(makeBase#1#(@m))
          makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          mkBase#(@m) -> c_31(mkBase#1#(@m))
          mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          transpose'#(@m) -> c_54(makeBase#(@m))
**** Step 8.b:3.b:3.a:4: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          2: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          4: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          
        Consider the set of all dependency pairs
          1: makeBase#(@m) -> c_19(makeBase#1#(@m))
          2: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          3: mkBase#(@m) -> c_31(mkBase#1#(@m))
          4: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
          5: matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
          6: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          7: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          8: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          9: transpose'#(@m) -> c_54(makeBase#(@m))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {2,4}
        These cover all (indirect) predecessors of dependency pairs
          {2,3,4,6,9}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 8.b:3.b:3.a:4.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_31) = {1},
          uargs(c_32) = {1},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [1]                  
                       p(#abs) = [1] x1 + [7]         
                       p(#add) = [2] x2 + [0]         
                      p(#mult) = [2] x1 + [0]         
                   p(#natmult) = [1] x1 + [6] x2 + [0]
                       p(#neg) = [1] x1 + [2]         
                       p(#pos) = [0]                  
                      p(#pred) = [2] x1 + [3]         
                         p(#s) = [1] x1 + [2]         
                      p(#succ) = [3]                  
                          p(*) = [0]                  
                          p(+) = [0]                  
                         p(::) = [1] x1 + [1] x2 + [2]
                     p(attach) = [4] x2 + [0]         
                   p(attach#1) = [1] x1 + [0]         
                   p(attach#2) = [0]                  
                   p(lineMult) = [7] x1 + [1] x2 + [0]
                 p(lineMult#1) = [4] x1 + [0]         
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [0]                  
                 p(makeBase#1) = [5] x1 + [0]         
                 p(matrixMult) = [0]                  
                p(matrixMult') = [0]                  
              p(matrixMult'#1) = [0]                  
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [1]                  
                   p(mkBase#1) = [0]                  
                       p(mult) = [1] x1 + [0]         
                     p(mult#1) = [0]                  
                     p(mult#2) = [0]                  
                        p(nil) = [0]                  
                      p(split) = [0]                  
                    p(split#1) = [0]                  
                    p(split#2) = [0]                  
                    p(split#3) = [1] x1 + [0]         
                   p(transAcc) = [2] x2 + [0]         
                 p(transAcc#1) = [0]                  
                  p(transpose) = [1] x1 + [0]         
                p(transpose#1) = [0]                  
                p(transpose#2) = [0]                  
                p(transpose#3) = [0]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [1] x1 + [1] x2 + [0]
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [0]                  
                        p(m4#) = [0]                  
                  p(makeBase#) = [4] x1 + [0]         
                p(makeBase#1#) = [4] x1 + [0]         
                p(matrixMult#) = [4] x2 + [1]         
               p(matrixMult'#) = [0]                  
             p(matrixMult'#1#) = [0]                  
               p(matrixMult3#) = [4] x2 + [5] x3 + [6]
            p(matrixMultList#) = [4] x2 + [6]         
          p(matrixMultList#1#) = [4] x1 + [5]         
             p(matrixMultOld#) = [0]                  
                    p(mkBase#) = [4] x1 + [4]         
                  p(mkBase#1#) = [4] x1 + [4]         
                      p(mult#) = [0]                  
                    p(mult#1#) = [0]                  
                    p(mult#2#) = [0]                  
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [0]                  
                   p(split#3#) = [0]                  
                  p(transAcc#) = [0]                  
                p(transAcc#1#) = [0]                  
                 p(transpose#) = [0]                  
               p(transpose#1#) = [0]                  
               p(transpose#2#) = [0]                  
               p(transpose#3#) = [0]                  
                p(transpose'#) = [4] x1 + [0]         
                        p(c_1) = [0]                  
                        p(c_2) = [0]                  
                        p(c_3) = [0]                  
                        p(c_4) = [0]                  
                        p(c_5) = [0]                  
                        p(c_6) = [0]                  
                        p(c_7) = [0]                  
                        p(c_8) = [0]                  
                        p(c_9) = [0]                  
                       p(c_10) = [0]                  
                       p(c_11) = [0]                  
                       p(c_12) = [0]                  
                       p(c_13) = [0]                  
                       p(c_14) = [0]                  
                       p(c_15) = [0]                  
                       p(c_16) = [0]                  
                       p(c_17) = [0]                  
                       p(c_18) = [1] x2 + [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) = [0]                  
                       p(c_24) = [0]                  
                       p(c_25) = [0]                  
                       p(c_26) = [1] x1 + [1] x2 + [4]
                       p(c_27) = [1] x1 + [1]         
                       p(c_28) = [1] x1 + [1] x2 + [1]
                       p(c_29) = [0]                  
                       p(c_30) = [0]                  
                       p(c_31) = [1] x1 + [0]         
                       p(c_32) = [1] x1 + [4]         
                       p(c_33) = [0]                  
                       p(c_34) = [0]                  
                       p(c_35) = [0]                  
                       p(c_36) = [0]                  
                       p(c_37) = [4] x1 + [0]         
                       p(c_38) = [0]                  
                       p(c_39) = [4] x1 + [0]         
                       p(c_40) = [4] x1 + [0]         
                       p(c_41) = [0]                  
                       p(c_42) = [0]                  
                       p(c_43) = [0]                  
                       p(c_44) = [0]                  
                       p(c_45) = [2] x1 + [0]         
                       p(c_46) = [1] x1 + [0]         
                       p(c_47) = [0]                  
                       p(c_48) = [1] x1 + [0]         
                       p(c_49) = [4] x1 + [0]         
                       p(c_50) = [0]                  
                       p(c_51) = [1] x1 + [0]         
                       p(c_52) = [2] x1 + [0]         
                       p(c_53) = [0]                  
                       p(c_54) = [1] x1 + [0]         
                       p(c_55) = [0]                  
                       p(c_56) = [0]                  
                       p(c_57) = [1] x1 + [1] x2 + [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) = [4] x1 + [0]         
                       p(c_65) = [0]                  
                       p(c_66) = [0]                  
                       p(c_67) = [1] x1 + [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]                  
        
        Following rules are strictly oriented:
        makeBase#1#(::(@l,@m')) = [4] @l + [4] @m' + [8] 
                                > [4] @l + [4]           
                                = c_20(mkBase#(@l))      
        
          mkBase#1#(::(@l,@m')) = [4] @l + [4] @m' + [12]
                                > [4] @m' + [8]          
                                = c_32(mkBase#(@m'))     
        
        
        Following rules are (at-least) weakly oriented:
                             makeBase#(@m) =  [4] @m + [0]                                                       
                                           >= [4] @m + [0]                                                       
                                           =  c_19(makeBase#1#(@m))                                              
        
                      matrixMult#(@m1,@m2) =  [4] @m2 + [1]                                                      
                                           >= [4] @m2 + [0]                                                      
                                           =  c_22(makeBase#(@m2))                                               
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m2 + [5] @m3 + [6]                                            
                                           >= [4] @m2 + [4] @m3 + [6]                                            
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [4] @mm + [6]                                                      
                                           >= [4] @mm + [6]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [4] @m + [4] @ms + [13]                                            
                                           >= [4] @m + [4] @ms + [8]                                             
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                               mkBase#(@m) =  [4] @m + [4]                                                       
                                           >= [4] @m + [4]                                                       
                                           =  c_31(mkBase#1#(@m))                                                
        
                           transpose'#(@m) =  [4] @m + [0]                                                       
                                           >= [4] @m + [0]                                                       
                                           =  c_54(makeBase#(@m))                                                
        
***** Step 8.b:3.b:3.a:4.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
        - Weak DPs:
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 8.b:3.b:3.a:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
        - Weak DPs:
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):2
          
          2:W:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):7
          
          3:W:matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
             -->_1 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
          
          5:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
          
          7:W:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):8
          
          8:W:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):7
          
          9:W:transpose'#(@m) -> c_54(makeBase#(@m))
             -->_1 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          2: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          7: mkBase#(@m) -> c_31(mkBase#1#(@m))
          8: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
***** Step 8.b:3.b:3.a:4.b:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:makeBase#(@m) -> c_19(makeBase#1#(@m))
             
          
          3:W:matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
             -->_1 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
             -->_1 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
          
          5:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):3
          
          9:W:transpose'#(@m) -> c_54(makeBase#(@m))
             -->_1 makeBase#(@m) -> c_19(makeBase#1#(@m)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          makeBase#(@m) -> c_19()
***** Step 8.b:3.b:3.a:4.b:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19()
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/0,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: makeBase#(@m) -> c_19()
          
        Consider the set of all dependency pairs
          1: makeBase#(@m) -> c_19()
          2: matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
          3: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          5: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          6: transpose'#(@m) -> c_54(makeBase#(@m))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,3,6}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:3.b:3.a:4.b:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            makeBase#(@m) -> c_19()
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/0,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                  
                       p(#abs) = [0]                  
                       p(#add) = [1] x1 + [0]         
                      p(#mult) = [0]                  
                   p(#natmult) = [0]                  
                       p(#neg) = [5]                  
                       p(#pos) = [0]                  
                      p(#pred) = [0]                  
                         p(#s) = [1] x1 + [0]         
                      p(#succ) = [0]                  
                          p(*) = [0]                  
                          p(+) = [0]                  
                         p(::) = [1] x1 + [1] x2 + [1]
                     p(attach) = [6] x2 + [0]         
                   p(attach#1) = [1] x1 + [0]         
                   p(attach#2) = [0]                  
                   p(lineMult) = [0]                  
                 p(lineMult#1) = [1] x1 + [7]         
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [0]                  
                 p(makeBase#1) = [2] x1 + [0]         
                 p(matrixMult) = [0]                  
                p(matrixMult') = [0]                  
              p(matrixMult'#1) = [0]                  
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [0]                  
                   p(mkBase#1) = [0]                  
                       p(mult) = [3]                  
                     p(mult#1) = [4] x1 + [7]         
                     p(mult#2) = [0]                  
                        p(nil) = [2]                  
                      p(split) = [0]                  
                    p(split#1) = [0]                  
                    p(split#2) = [0]                  
                    p(split#3) = [0]                  
                   p(transAcc) = [2] x2 + [1]         
                 p(transAcc#1) = [6] x1 + [0]         
                  p(transpose) = [0]                  
                p(transpose#1) = [0]                  
                p(transpose#2) = [0]                  
                p(transpose#3) = [0]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [0]                  
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [0]                  
                        p(m4#) = [0]                  
                  p(makeBase#) = [1] x1 + [1]         
                p(makeBase#1#) = [0]                  
                p(matrixMult#) = [1] x2 + [1]         
               p(matrixMult'#) = [0]                  
             p(matrixMult'#1#) = [0]                  
               p(matrixMult3#) = [4] x2 + [1] x3 + [4]
            p(matrixMultList#) = [4] x2 + [1]         
          p(matrixMultList#1#) = [4] x1 + [1]         
             p(matrixMultOld#) = [0]                  
                    p(mkBase#) = [0]                  
                  p(mkBase#1#) = [0]                  
                      p(mult#) = [0]                  
                    p(mult#1#) = [0]                  
                    p(mult#2#) = [0]                  
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [0]                  
                   p(split#3#) = [0]                  
                  p(transAcc#) = [0]                  
                p(transAcc#1#) = [0]                  
                 p(transpose#) = [0]                  
               p(transpose#1#) = [0]                  
               p(transpose#2#) = [0]                  
               p(transpose#3#) = [0]                  
                p(transpose'#) = [1] x1 + [1]         
                        p(c_1) = [0]                  
                        p(c_2) = [0]                  
                        p(c_3) = [0]                  
                        p(c_4) = [0]                  
                        p(c_5) = [0]                  
                        p(c_6) = [0]                  
                        p(c_7) = [0]                  
                        p(c_8) = [0]                  
                        p(c_9) = [0]                  
                       p(c_10) = [0]                  
                       p(c_11) = [0]                  
                       p(c_12) = [0]                  
                       p(c_13) = [0]                  
                       p(c_14) = [0]                  
                       p(c_15) = [0]                  
                       p(c_16) = [0]                  
                       p(c_17) = [0]                  
                       p(c_18) = [0]                  
                       p(c_19) = [0]                  
                       p(c_20) = [0]                  
                       p(c_21) = [0]                  
                       p(c_22) = [1] x1 + [0]         
                       p(c_23) = [0]                  
                       p(c_24) = [0]                  
                       p(c_25) = [0]                  
                       p(c_26) = [1] x1 + [2] x2 + [1]
                       p(c_27) = [1] x1 + [0]         
                       p(c_28) = [1] x1 + [4] x2 + [0]
                       p(c_29) = [0]                  
                       p(c_30) = [1] x1 + [0]         
                       p(c_31) = [1] x1 + [0]         
                       p(c_32) = [1] x1 + [0]         
                       p(c_33) = [0]                  
                       p(c_34) = [0]                  
                       p(c_35) = [0]                  
                       p(c_36) = [0]                  
                       p(c_37) = [2] x1 + [0]         
                       p(c_38) = [0]                  
                       p(c_39) = [1] x1 + [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) = [1] x1 + [0]         
                       p(c_47) = [0]                  
                       p(c_48) = [0]                  
                       p(c_49) = [4] x2 + [0]         
                       p(c_50) = [0]                  
                       p(c_51) = [0]                  
                       p(c_52) = [1] x1 + [0]         
                       p(c_53) = [0]                  
                       p(c_54) = [1] x1 + [0]         
                       p(c_55) = [0]                  
                       p(c_56) = [1] x1 + [0]         
                       p(c_57) = [1] x2 + [0]         
                       p(c_58) = [0]                  
                       p(c_59) = [1] x1 + [0]         
                       p(c_60) = [0]                  
                       p(c_61) = [0]                  
                       p(c_62) = [0]                  
                       p(c_63) = [0]                  
                       p(c_64) = [0]                  
                       p(c_65) = [4] x1 + [0]         
                       p(c_66) = [0]                  
                       p(c_67) = [0]                  
                       p(c_68) = [1] x1 + [0]         
                       p(c_69) = [0]                  
                       p(c_70) = [1] x2 + [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]                  
        
        Following rules are strictly oriented:
        makeBase#(@m) = [1] @m + [1]
                      > [0]         
                      = c_19()      
        
        
        Following rules are (at-least) weakly oriented:
                      matrixMult#(@m1,@m2) =  [1] @m2 + [1]                                                      
                                           >= [1] @m2 + [1]                                                      
                                           =  c_22(makeBase#(@m2))                                               
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m2 + [1] @m3 + [4]                                            
                                           >= [2] @m2 + [1] @m3 + [4]                                            
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [4] @mm + [1]                                                      
                                           >= [4] @mm + [1]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [4] @m + [4] @ms + [5]                                             
                                           >= [4] @m + [4] @ms + [5]                                             
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                           transpose'#(@m) =  [1] @m + [1]                                                       
                                           >= [1] @m + [1]                                                       
                                           =  c_54(makeBase#(@m))                                                
        
****** Step 8.b:3.b:3.a:4.b:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            makeBase#(@m) -> c_19()
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/0,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:3.b:3.a:4.b:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            makeBase#(@m) -> c_19()
            matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/0,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:makeBase#(@m) -> c_19()
             
          
          2:W:matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
             -->_1 makeBase#(@m) -> c_19():1
          
          3:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):2
             -->_1 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):2
          
          4:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):5
          
          5:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):4
             -->_2 matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2)):2
          
          6:W:transpose'#(@m) -> c_54(makeBase#(@m))
             -->_1 makeBase#(@m) -> c_19():1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          6: transpose'#(@m) -> c_54(makeBase#(@m))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          5: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          3: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          2: matrixMult#(@m1,@m2) -> c_22(makeBase#(@m2))
          1: makeBase#(@m) -> c_19()
****** Step 8.b:3.b:3.a:4.b:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/0,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 8.b:3.b:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak DPs:
            makeBase#(@m) -> c_19(makeBase#1#(@m))
            makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
            mkBase#(@m) -> c_31(mkBase#1#(@m))
            mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_3 makeBase#(@m) -> c_19(makeBase#1#(@m)):18
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          2:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):3
          
          3:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          4:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
          
          5:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
          
          7:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          8:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):9
          
          9:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):10
          
          10:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):8
          
          11:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):12
          
          12:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          13:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):14
          
          14:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):15
             -->_2 split#(@m) -> c_39(split#1#(@m)):8
          
          15:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):16
          
          16:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
          
          17:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_2 makeBase#(@m) -> c_19(makeBase#1#(@m)):18
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          18:W:makeBase#(@m) -> c_19(makeBase#1#(@m))
             -->_1 makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l)):19
          
          19:W:makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):20
          
          20:W:mkBase#(@m) -> c_31(mkBase#1#(@m))
             -->_1 mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m')):21
          
          21:W:mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
             -->_1 mkBase#(@m) -> c_31(mkBase#1#(@m)):20
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          18: makeBase#(@m) -> c_19(makeBase#1#(@m))
          19: makeBase#1#(::(@l,@m')) -> c_20(mkBase#(@l))
          20: mkBase#(@m) -> c_31(mkBase#1#(@m))
          21: mkBase#1#(::(@l,@m')) -> c_32(mkBase#(@m'))
**** Step 8.b:3.b:3.b:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                        ,transAcc#(@m2,makeBase(@m2))
                                        ,makeBase#(@m2))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/3
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/2,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2))
                                          ,makeBase#(@m2))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          2:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):3
          
          3:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          4:S:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
          
          5:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))
                                               ,makeBase#(@m2)):1
          
          7:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          8:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):9
          
          9:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):10
          
          10:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):8
          
          11:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):12
          
          12:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          13:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):14
          
          14:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):15
             -->_2 split#(@m) -> c_39(split#1#(@m)):8
          
          15:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):16
          
          16:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
          
          17:S:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)),makeBase#(@m))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
**** Step 8.b:3.b:3.b:3: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          - Weak DPs:
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/2,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
              transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          - Weak DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
              transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
              transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/2,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
***** Step 8.b:3.b:3.b:3.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2)))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          2:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):3
          
          3:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
          
          5:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
          
          7:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
          
          8:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):9
          
          9:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):10
          
          10:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):8
          
          11:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):12
          
          12:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          13:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):14
          
          14:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):8
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):15
          
          15:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):16
          
          16:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):13
          
          17:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          13: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          16: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          15: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          14: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          8: split#(@m) -> c_39(split#1#(@m))
          10: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          9: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          2: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          3: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
***** Step 8.b:3.b:3.b:3.a:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                          ,transAcc#(@m2,makeBase(@m2)))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
          
          5:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):6
          
          6:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):1
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):5
          
          11:S:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):12
          
          12:S:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
          17:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):11
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
***** Step 8.b:3.b:3.b:3.a:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
***** Step 8.b:3.b:3.b:3.a:4: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          3: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          
        Consider the set of all dependency pairs
          1: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          2: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          3: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          4: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          5: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          6: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          7: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {3}
        These cover all (indirect) predecessors of dependency pairs
          {3,4,7}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:3.b:3.b:3.a:4.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_45) = {1},
          uargs(c_46) = {1},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [5]                  
                       p(#abs) = [0]                  
                       p(#add) = [0]                  
                      p(#mult) = [0]                  
                   p(#natmult) = [1] x1 + [3]         
                       p(#neg) = [1] x1 + [0]         
                       p(#pos) = [1]                  
                      p(#pred) = [4]                  
                         p(#s) = [4]                  
                      p(#succ) = [0]                  
                          p(*) = [0]                  
                          p(+) = [0]                  
                         p(::) = [1] x1 + [1] x2 + [2]
                     p(attach) = [0]                  
                   p(attach#1) = [0]                  
                   p(attach#2) = [1] x2 + [0]         
                   p(lineMult) = [1] x1 + [0]         
                 p(lineMult#1) = [1]                  
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [0]                  
                 p(makeBase#1) = [3]                  
                 p(matrixMult) = [0]                  
                p(matrixMult') = [0]                  
              p(matrixMult'#1) = [0]                  
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [2]                  
                   p(mkBase#1) = [1]                  
                       p(mult) = [2] x1 + [6]         
                     p(mult#1) = [0]                  
                     p(mult#2) = [3]                  
                        p(nil) = [0]                  
                      p(split) = [0]                  
                    p(split#1) = [0]                  
                    p(split#2) = [0]                  
                    p(split#3) = [0]                  
                   p(transAcc) = [0]                  
                 p(transAcc#1) = [2] x1 + [0]         
                  p(transpose) = [0]                  
                p(transpose#1) = [0]                  
                p(transpose#2) = [0]                  
                p(transpose#3) = [0]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [1] x1 + [1] x2 + [0]
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [0]                  
                        p(m4#) = [0]                  
                  p(makeBase#) = [0]                  
                p(makeBase#1#) = [0]                  
                p(matrixMult#) = [2] x2 + [1]         
               p(matrixMult'#) = [2] x2 + [0]         
             p(matrixMult'#1#) = [4] x1 + [1] x2 + [0]
               p(matrixMult3#) = [4] x2 + [2] x3 + [7]
            p(matrixMultList#) = [4] x2 + [0]         
          p(matrixMultList#1#) = [4] x1 + [0]         
             p(matrixMultOld#) = [0]                  
                    p(mkBase#) = [0]                  
                  p(mkBase#1#) = [0]                  
                      p(mult#) = [1] x2 + [0]         
                    p(mult#1#) = [0]                  
                    p(mult#2#) = [0]                  
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [0]                  
                   p(split#3#) = [0]                  
                  p(transAcc#) = [1] x1 + [1]         
                p(transAcc#1#) = [1] x1 + [1]         
                 p(transpose#) = [0]                  
               p(transpose#1#) = [0]                  
               p(transpose#2#) = [0]                  
               p(transpose#3#) = [0]                  
                p(transpose'#) = [1] x1 + [5]         
                        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) = [2] x2 + [0]         
                       p(c_14) = [0]                  
                       p(c_15) = [0]                  
                       p(c_16) = [0]                  
                       p(c_17) = [1] x3 + [0]         
                       p(c_18) = [0]                  
                       p(c_19) = [0]                  
                       p(c_20) = [0]                  
                       p(c_21) = [0]                  
                       p(c_22) = [1] x1 + [0]         
                       p(c_23) = [4] x1 + [0]         
                       p(c_24) = [1] x1 + [0]         
                       p(c_25) = [1]                  
                       p(c_26) = [1] x1 + [1] x2 + [5]
                       p(c_27) = [1] x1 + [0]         
                       p(c_28) = [1] x1 + [1] x2 + [1]
                       p(c_29) = [0]                  
                       p(c_30) = [0]                  
                       p(c_31) = [1] x1 + [0]         
                       p(c_32) = [1] x1 + [0]         
                       p(c_33) = [0]                  
                       p(c_34) = [0]                  
                       p(c_35) = [0]                  
                       p(c_36) = [0]                  
                       p(c_37) = [0]                  
                       p(c_38) = [0]                  
                       p(c_39) = [0]                  
                       p(c_40) = [0]                  
                       p(c_41) = [0]                  
                       p(c_42) = [0]                  
                       p(c_43) = [0]                  
                       p(c_44) = [0]                  
                       p(c_45) = [1] x1 + [0]         
                       p(c_46) = [1] x1 + [0]         
                       p(c_47) = [0]                  
                       p(c_48) = [0]                  
                       p(c_49) = [2] x1 + [2]         
                       p(c_50) = [0]                  
                       p(c_51) = [0]                  
                       p(c_52) = [0]                  
                       p(c_53) = [1]                  
                       p(c_54) = [1] x1 + [0]         
                       p(c_55) = [0]                  
                       p(c_56) = [1] x1 + [0]         
                       p(c_57) = [1] x1 + [1] x2 + [0]
                       p(c_58) = [0]                  
                       p(c_59) = [2] x2 + [0]         
                       p(c_60) = [0]                  
                       p(c_61) = [0]                  
                       p(c_62) = [0]                  
                       p(c_63) = [0]                  
                       p(c_64) = [0]                  
                       p(c_65) = [1] x1 + [0]         
                       p(c_66) = [0]                  
                       p(c_67) = [1] x1 + [0]         
                       p(c_68) = [1] x1 + [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]                  
        
        Following rules are strictly oriented:
        transAcc#1#(::(@l,@m'),@base) = [1] @l + [1] @m' + [3]    
                                      > [1] @m' + [1]             
                                      = c_46(transAcc#(@m',@base))
        
        
        Following rules are (at-least) weakly oriented:
                      matrixMult#(@m1,@m2) =  [2] @m2 + [1]                                                      
                                           >= [1] @m2 + [1]                                                      
                                           =  c_22(transAcc#(@m2,makeBase(@m2)))                                 
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m2 + [2] @m3 + [7]                                            
                                           >= [2] @m2 + [2] @m3 + [7]                                            
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [4] @mm + [0]                                                      
                                           >= [4] @mm + [0]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [4] @m + [4] @ms + [8]                                             
                                           >= [2] @m + [4] @ms + [2]                                             
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                       transAcc#(@m,@base) =  [1] @m + [1]                                                       
                                           >= [1] @m + [1]                                                       
                                           =  c_45(transAcc#1#(@m,@base))                                        
        
                           transpose'#(@m) =  [1] @m + [5]                                                       
                                           >= [1] @m + [1]                                                       
                                           =  c_54(transAcc#(@m,makeBase(@m)))                                   
        
****** Step 8.b:3.b:3.b:3.a:4.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:3.b:3.b:3.a:4.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          
        Consider the set of all dependency pairs
          1: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          2: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          3: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          5: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          6: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          7: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,3,7}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 8.b:3.b:3.b:3.a:4.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_45) = {1},
          uargs(c_46) = {1},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                             
                       p(#abs) = [0]                                             
                       p(#add) = [5] x1 + [0]                                    
                      p(#mult) = [0]                                             
                   p(#natmult) = [0]                                             
                       p(#neg) = [1] x1 + [0]                                    
                       p(#pos) = [2]                                             
                      p(#pred) = [1] x1 + [3]                                    
                         p(#s) = [2]                                             
                      p(#succ) = [0]                                             
                          p(*) = [0]                                             
                          p(+) = [0]                                             
                         p(::) = [1] x2 + [7]                                    
                     p(attach) = [4] x2 + [0]                                    
                   p(attach#1) = [0]                                             
                   p(attach#2) = [0]                                             
                   p(lineMult) = [0]                                             
                 p(lineMult#1) = [0]                                             
                         p(m1) = [0]                                             
                         p(m2) = [0]                                             
                         p(m3) = [0]                                             
                         p(m4) = [0]                                             
                   p(makeBase) = [0]                                             
                 p(makeBase#1) = [0]                                             
                 p(matrixMult) = [0]                                             
                p(matrixMult') = [0]                                             
              p(matrixMult'#1) = [0]                                             
                p(matrixMult3) = [0]                                             
             p(matrixMultList) = [0]                                             
           p(matrixMultList#1) = [0]                                             
              p(matrixMultOld) = [0]                                             
                     p(mkBase) = [0]                                             
                   p(mkBase#1) = [0]                                             
                       p(mult) = [0]                                             
                     p(mult#1) = [0]                                             
                     p(mult#2) = [0]                                             
                        p(nil) = [3]                                             
                      p(split) = [0]                                             
                    p(split#1) = [0]                                             
                    p(split#2) = [0]                                             
                    p(split#3) = [0]                                             
                   p(transAcc) = [3] x2 + [0]                                    
                 p(transAcc#1) = [1] x1 + [0]                                    
                  p(transpose) = [0]                                             
                p(transpose#1) = [0]                                             
                p(transpose#2) = [0]                                             
                p(transpose#3) = [0]                                             
                 p(transpose') = [0]                                             
                    p(tuple#2) = [1] x1 + [1] x2 + [0]                           
                      p(#abs#) = [0]                                             
                      p(#add#) = [0]                                             
                     p(#mult#) = [0]                                             
                  p(#natmult#) = [0]                                             
                     p(#pred#) = [0]                                             
                     p(#succ#) = [0]                                             
                         p(*#) = [0]                                             
                         p(+#) = [0]                                             
                    p(attach#) = [0]                                             
                  p(attach#1#) = [0]                                             
                  p(attach#2#) = [0]                                             
                  p(lineMult#) = [0]                                             
                p(lineMult#1#) = [0]                                             
                        p(m1#) = [0]                                             
                        p(m2#) = [0]                                             
                        p(m3#) = [0]                                             
                        p(m4#) = [0]                                             
                  p(makeBase#) = [0]                                             
                p(makeBase#1#) = [0]                                             
                p(matrixMult#) = [2]                                             
               p(matrixMult'#) = [0]                                             
             p(matrixMult'#1#) = [0]                                             
               p(matrixMult3#) = [7]                                             
            p(matrixMultList#) = [1] x2 + [1]                                    
          p(matrixMultList#1#) = [1] x1 + [1]                                    
             p(matrixMultOld#) = [0]                                             
                    p(mkBase#) = [0]                                             
                  p(mkBase#1#) = [0]                                             
                      p(mult#) = [0]                                             
                    p(mult#1#) = [0]                                             
                    p(mult#2#) = [0]                                             
                     p(split#) = [0]                                             
                   p(split#1#) = [0]                                             
                   p(split#2#) = [0]                                             
                   p(split#3#) = [0]                                             
                  p(transAcc#) = [0]                                             
                p(transAcc#1#) = [0]                                             
                 p(transpose#) = [0]                                             
               p(transpose#1#) = [0]                                             
               p(transpose#2#) = [0]                                             
               p(transpose#3#) = [0]                                             
                p(transpose'#) = [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) = [1] x2 + [1] x3 + [1] x4 + [2] x5 + [1] x6 + [0]
                       p(c_16) = [1] x1 + [1] x4 + [0]                           
                       p(c_17) = [2] x2 + [2] x3 + [4] x4 + [1] x5 + [4] x6 + [1]
                       p(c_18) = [0]                                             
                       p(c_19) = [1]                                             
                       p(c_20) = [0]                                             
                       p(c_21) = [0]                                             
                       p(c_22) = [4] x1 + [1]                                    
                       p(c_23) = [4] x1 + [1]                                    
                       p(c_24) = [2]                                             
                       p(c_25) = [1]                                             
                       p(c_26) = [2] x1 + [1] x2 + [1]                           
                       p(c_27) = [1] x1 + [0]                                    
                       p(c_28) = [1] x1 + [1] x2 + [3]                           
                       p(c_29) = [0]                                             
                       p(c_30) = [4] x1 + [1] x2 + [0]                           
                       p(c_31) = [1] x1 + [0]                                    
                       p(c_32) = [0]                                             
                       p(c_33) = [0]                                             
                       p(c_34) = [4] x1 + [0]                                    
                       p(c_35) = [1] x1 + [0]                                    
                       p(c_36) = [0]                                             
                       p(c_37) = [1] x1 + [0]                                    
                       p(c_38) = [1] x1 + [0]                                    
                       p(c_39) = [0]                                             
                       p(c_40) = [1] x1 + [0]                                    
                       p(c_41) = [0]                                             
                       p(c_42) = [1] x1 + [0]                                    
                       p(c_43) = [0]                                             
                       p(c_44) = [0]                                             
                       p(c_45) = [4] x1 + [0]                                    
                       p(c_46) = [4] x1 + [0]                                    
                       p(c_47) = [0]                                             
                       p(c_48) = [2] x1 + [0]                                    
                       p(c_49) = [4] x2 + [0]                                    
                       p(c_50) = [0]                                             
                       p(c_51) = [1] x1 + [0]                                    
                       p(c_52) = [1] x1 + [0]                                    
                       p(c_53) = [2]                                             
                       p(c_54) = [4] x1 + [0]                                    
                       p(c_55) = [0]                                             
                       p(c_56) = [0]                                             
                       p(c_57) = [0]                                             
                       p(c_58) = [1] x1 + [0]                                    
                       p(c_59) = [1] x1 + [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) = [1] x2 + [0]                                    
                       p(c_71) = [0]                                             
                       p(c_72) = [0]                                             
                       p(c_73) = [0]                                             
                       p(c_74) = [0]                                             
                       p(c_75) = [2]                                             
                       p(c_76) = [0]                                             
                       p(c_77) = [0]                                             
                       p(c_78) = [0]                                             
        
        Following rules are strictly oriented:
        matrixMult#(@m1,@m2) = [2]                               
                             > [1]                               
                             = c_22(transAcc#(@m2,makeBase(@m2)))
        
        
        Following rules are (at-least) weakly oriented:
                 matrixMult3#(@m1,@m2,@m3) =  [7]                                                                
                                           >= [7]                                                                
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [1] @mm + [1]                                                      
                                           >= [1] @mm + [1]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [1] @ms + [8]                                                      
                                           >= [1] @ms + [6]                                                      
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
                       transAcc#(@m,@base) =  [0]                                                                
                                           >= [0]                                                                
                                           =  c_45(transAcc#1#(@m,@base))                                        
        
             transAcc#1#(::(@l,@m'),@base) =  [0]                                                                
                                           >= [0]                                                                
                                           =  c_46(transAcc#(@m',@base))                                         
        
                           transpose'#(@m) =  [0]                                                                
                                           >= [0]                                                                
                                           =  c_54(transAcc#(@m,makeBase(@m)))                                   
        
******* Step 8.b:3.b:3.b:3.a:4.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 8.b:3.b:3.b:3.a:4.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          
        Consider the set of all dependency pairs
          1: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          2: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          3: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          5: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          6: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
          7: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,3,6,7}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:3.b:3.b:3.a:4.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_26) = {1,2},
          uargs(c_27) = {1},
          uargs(c_28) = {1,2},
          uargs(c_45) = {1},
          uargs(c_46) = {1},
          uargs(c_54) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                  
                       p(#abs) = [0]                  
                       p(#add) = [1] x1 + [0]         
                      p(#mult) = [4] x1 + [3]         
                   p(#natmult) = [0]                  
                       p(#neg) = [0]                  
                       p(#pos) = [3]                  
                      p(#pred) = [0]                  
                         p(#s) = [1] x1 + [0]         
                      p(#succ) = [0]                  
                          p(*) = [0]                  
                          p(+) = [0]                  
                         p(::) = [1] x1 + [1] x2 + [1]
                     p(attach) = [6] x2 + [0]         
                   p(attach#1) = [3]                  
                   p(attach#2) = [0]                  
                   p(lineMult) = [0]                  
                 p(lineMult#1) = [0]                  
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [1] x1 + [1]         
                 p(makeBase#1) = [0]                  
                 p(matrixMult) = [0]                  
                p(matrixMult') = [1] x1 + [0]         
              p(matrixMult'#1) = [0]                  
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [0]                  
                   p(mkBase#1) = [0]                  
                       p(mult) = [0]                  
                     p(mult#1) = [3]                  
                     p(mult#2) = [0]                  
                        p(nil) = [3]                  
                      p(split) = [0]                  
                    p(split#1) = [0]                  
                    p(split#2) = [0]                  
                    p(split#3) = [0]                  
                   p(transAcc) = [1] x2 + [1]         
                 p(transAcc#1) = [1] x1 + [0]         
                  p(transpose) = [0]                  
                p(transpose#1) = [0]                  
                p(transpose#2) = [2]                  
                p(transpose#3) = [0]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [1] x1 + [1] x2 + [0]
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [1] x1 + [2]         
                        p(m4#) = [1]                  
                  p(makeBase#) = [0]                  
                p(makeBase#1#) = [2] x1 + [0]         
                p(matrixMult#) = [1] x2 + [1]         
               p(matrixMult'#) = [1] x1 + [0]         
             p(matrixMult'#1#) = [1] x1 + [1]         
               p(matrixMult3#) = [1] x2 + [4] x3 + [5]
            p(matrixMultList#) = [2] x2 + [1]         
          p(matrixMultList#1#) = [2] x1 + [1]         
             p(matrixMultOld#) = [0]                  
                    p(mkBase#) = [0]                  
                  p(mkBase#1#) = [0]                  
                      p(mult#) = [0]                  
                    p(mult#1#) = [0]                  
                    p(mult#2#) = [0]                  
                     p(split#) = [2]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [0]                  
                   p(split#3#) = [0]                  
                  p(transAcc#) = [1] x1 + [1]         
                p(transAcc#1#) = [1] x1 + [0]         
                 p(transpose#) = [1] x1 + [0]         
               p(transpose#1#) = [0]                  
               p(transpose#2#) = [0]                  
               p(transpose#3#) = [0]                  
                p(transpose'#) = [4] x1 + [4]         
                        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] x3 + [0]         
                       p(c_17) = [1] x7 + [0]         
                       p(c_18) = [2]                  
                       p(c_19) = [0]                  
                       p(c_20) = [0]                  
                       p(c_21) = [1]                  
                       p(c_22) = [1] x1 + [0]         
                       p(c_23) = [0]                  
                       p(c_24) = [2]                  
                       p(c_25) = [0]                  
                       p(c_26) = [4] x1 + [1] x2 + [0]
                       p(c_27) = [1] x1 + [0]         
                       p(c_28) = [1] x1 + [2] x2 + [0]
                       p(c_29) = [0]                  
                       p(c_30) = [0]                  
                       p(c_31) = [0]                  
                       p(c_32) = [0]                  
                       p(c_33) = [0]                  
                       p(c_34) = [0]                  
                       p(c_35) = [0]                  
                       p(c_36) = [0]                  
                       p(c_37) = [0]                  
                       p(c_38) = [0]                  
                       p(c_39) = [0]                  
                       p(c_40) = [0]                  
                       p(c_41) = [0]                  
                       p(c_42) = [0]                  
                       p(c_43) = [0]                  
                       p(c_44) = [0]                  
                       p(c_45) = [1] x1 + [0]         
                       p(c_46) = [1] x1 + [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) = [1]                  
                       p(c_54) = [4] x1 + [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]                  
        
        Following rules are strictly oriented:
        transAcc#(@m,@base) = [1] @m + [1]               
                            > [1] @m + [0]               
                            = c_45(transAcc#1#(@m,@base))
        
        
        Following rules are (at-least) weakly oriented:
                      matrixMult#(@m1,@m2) =  [1] @m2 + [1]                                                      
                                           >= [1] @m2 + [1]                                                      
                                           =  c_22(transAcc#(@m2,makeBase(@m2)))                                 
        
                 matrixMult3#(@m1,@m2,@m3) =  [1] @m2 + [4] @m3 + [5]                                            
                                           >= [1] @m2 + [4] @m3 + [5]                                            
                                           =  c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))    
        
                 matrixMultList#(@acc,@mm) =  [2] @mm + [1]                                                      
                                           >= [2] @mm + [1]                                                      
                                           =  c_27(matrixMultList#1#(@mm,@acc))                                  
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [2] @m + [2] @ms + [3]                                             
                                           >= [2] @m + [2] @ms + [3]                                             
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        
             transAcc#1#(::(@l,@m'),@base) =  [1] @l + [1] @m' + [1]                                             
                                           >= [1] @m' + [1]                                                      
                                           =  c_46(transAcc#(@m',@base))                                         
        
                           transpose'#(@m) =  [4] @m + [4]                                                       
                                           >= [4] @m + [4]                                                       
                                           =  c_54(transAcc#(@m,makeBase(@m)))                                   
        
******** Step 8.b:3.b:3.b:3.a:4.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:3.b:3.b:3.a:4.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):5
          
          2:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):1
             -->_1 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):1
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):4
          
          4:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
             -->_2 matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2))):1
          
          5:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):6
          
          6:W:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):5
          
          7:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):5
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          3: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          4: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          2: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          1: matrixMult#(@m1,@m2) -> c_22(transAcc#(@m2,makeBase(@m2)))
          5: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          6: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
******** Step 8.b:3.b:3.b:3.a:4.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

***** Step 8.b:3.b:3.b:3.b:1: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {3,14}
        by application of
          Pre({3,14}) = {}.
        Here rules are labelled as follows:
          1: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          2: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
          3: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          5: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          6: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
          7: split#(@m) -> c_39(split#1#(@m))
          8: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          9: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          10: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          11: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          12: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          13: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          14: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          15: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
          16: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          17: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
***** Step 8.b:3.b:3.b:3.b:2: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
            transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
            transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):2
          
          2:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          3:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):4
          
          4:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          5:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          6:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):7
          
          7:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):8
          
          8:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):6
          
          9:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):10
          
          10:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):11
             -->_2 split#(@m) -> c_39(split#1#(@m)):6
          
          11:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):12
          
          12:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
          
          13:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                           ,transAcc#(@m2,makeBase(@m2)))
             -->_2 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          14:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
          
          15:W:transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
             -->_1 transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base)):16
          
          16:W:transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
          17:W:transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
             -->_1 transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base)):15
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          17: transpose'#(@m) -> c_54(transAcc#(@m,makeBase(@m)))
          15: transAcc#(@m,@base) -> c_45(transAcc#1#(@m,@base))
          16: transAcc#1#(::(@l,@m'),@base) -> c_46(transAcc#(@m',@base))
***** Step 8.b:3.b:3.b:3.b:3: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))),transAcc#(@m2,makeBase(@m2)))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/2
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):2
          
          2:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          3:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):4
          
          4:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          5:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          6:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):7
          
          7:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):8
          
          8:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):6
          
          9:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):10
          
          10:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):11
             -->_2 split#(@m) -> c_39(split#1#(@m)):6
          
          11:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):12
          
          12:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
          
          13:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                           ,transAcc#(@m2,makeBase(@m2)))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          14:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))
                                               ,transAcc#(@m2,makeBase(@m2))):13
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
***** Step 8.b:3.b:3.b:3.b:4: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
          - Weak DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
              matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          - Weak DPs:
              matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
              matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
              matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
              matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
              transpose(@m) -> transpose#1(@m,@m)
              transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
              transpose#1(nil(),@m) -> nil()
              transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
              transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
              transpose#3(nil(),@l) -> nil()
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
****** Step 8.b:3.b:3.b:3.b:4.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):2
          
          2:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):4
          
          4:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
          
          5:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
          
          6:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):7
          
          7:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):8
          
          8:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):6
          
          9:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):10
          
          10:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):6
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):11
          
          11:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):12
          
          12:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):9
          
          13:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          14:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          12: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          11: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          10: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          6: split#(@m) -> c_39(split#1#(@m))
          8: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          7: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
****** Step 8.b:3.b:3.b:3.b:4.a:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):2
          
          2:S:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):4
          
          4:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
          
          5:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          13:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):1
          
          14:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):13
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
****** Step 8.b:3.b:3.b:3.b:4.a:3: DecomposeDG WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        and a lower component
          matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        Further, following extension rules are added to the lower component.
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
******* Step 8.b:3.b:3.b:3.b:4.a:3.a:1: PredecessorEstimation WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,3}
        by application of
          Pre({1,3}) = {}.
        Here rules are labelled as follows:
          1: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
          3: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
          4: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
******* Step 8.b:3.b:3.b:3.b:4.a:3.a:2: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        - Weak DPs:
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          2:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):1
          
          4:W:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)))
          2: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
******* Step 8.b:3.b:3.b:3.b:4.a:3.a:3: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):3
          
          3:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******* Step 8.b:3.b:3.b:3.b:4.a:3.a:4: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******* Step 8.b:3.b:3.b:3.b:4.a:3.a:5: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          
        Consider the set of all dependency pairs
          1: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          2: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:3.b:3.b:3.b:4.a:3.a:5.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_27) = {1},
          uargs(c_28) = {1}
        
        Following symbols are considered usable:
          {matrixMult,matrixMult',matrixMult'#1,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [1]                  
                       p(#abs) = [0]                  
                       p(#add) = [1] x1 + [1]         
                      p(#mult) = [0]                  
                   p(#natmult) = [0]                  
                       p(#neg) = [0]                  
                       p(#pos) = [1] x1 + [0]         
                      p(#pred) = [4] x1 + [0]         
                         p(#s) = [1] x1 + [0]         
                      p(#succ) = [1] x1 + [0]         
                          p(*) = [0]                  
                          p(+) = [0]                  
                         p(::) = [1] x2 + [2]         
                     p(attach) = [0]                  
                   p(attach#1) = [0]                  
                   p(attach#2) = [0]                  
                   p(lineMult) = [3]                  
                 p(lineMult#1) = [0]                  
                         p(m1) = [0]                  
                         p(m2) = [0]                  
                         p(m3) = [0]                  
                         p(m4) = [0]                  
                   p(makeBase) = [0]                  
                 p(makeBase#1) = [0]                  
                 p(matrixMult) = [1] x1 + [1]         
                p(matrixMult') = [1] x1 + [0]         
              p(matrixMult'#1) = [1] x1 + [0]         
                p(matrixMult3) = [0]                  
             p(matrixMultList) = [0]                  
           p(matrixMultList#1) = [0]                  
              p(matrixMultOld) = [0]                  
                     p(mkBase) = [0]                  
                   p(mkBase#1) = [0]                  
                       p(mult) = [0]                  
                     p(mult#1) = [0]                  
                     p(mult#2) = [0]                  
                        p(nil) = [0]                  
                      p(split) = [0]                  
                    p(split#1) = [0]                  
                    p(split#2) = [0]                  
                    p(split#3) = [0]                  
                   p(transAcc) = [0]                  
                 p(transAcc#1) = [0]                  
                  p(transpose) = [0]                  
                p(transpose#1) = [0]                  
                p(transpose#2) = [0]                  
                p(transpose#3) = [0]                  
                 p(transpose') = [0]                  
                    p(tuple#2) = [1] x1 + [1] x2 + [0]
                      p(#abs#) = [0]                  
                      p(#add#) = [0]                  
                     p(#mult#) = [0]                  
                  p(#natmult#) = [0]                  
                     p(#pred#) = [0]                  
                     p(#succ#) = [0]                  
                         p(*#) = [0]                  
                         p(+#) = [0]                  
                    p(attach#) = [0]                  
                  p(attach#1#) = [0]                  
                  p(attach#2#) = [0]                  
                  p(lineMult#) = [0]                  
                p(lineMult#1#) = [0]                  
                        p(m1#) = [0]                  
                        p(m2#) = [0]                  
                        p(m3#) = [0]                  
                        p(m4#) = [0]                  
                  p(makeBase#) = [0]                  
                p(makeBase#1#) = [0]                  
                p(matrixMult#) = [0]                  
               p(matrixMult'#) = [0]                  
             p(matrixMult'#1#) = [0]                  
               p(matrixMult3#) = [0]                  
            p(matrixMultList#) = [4] x1 + [4] x2 + [5]
          p(matrixMultList#1#) = [4] x1 + [4] x2 + [3]
             p(matrixMultOld#) = [0]                  
                    p(mkBase#) = [0]                  
                  p(mkBase#1#) = [0]                  
                      p(mult#) = [0]                  
                    p(mult#1#) = [0]                  
                    p(mult#2#) = [0]                  
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
                   p(split#2#) = [0]                  
                   p(split#3#) = [0]                  
                  p(transAcc#) = [0]                  
                p(transAcc#1#) = [0]                  
                 p(transpose#) = [0]                  
               p(transpose#1#) = [0]                  
               p(transpose#2#) = [0]                  
               p(transpose#3#) = [0]                  
                p(transpose'#) = [0]                  
                        p(c_1) = [0]                  
                        p(c_2) = [0]                  
                        p(c_3) = [0]                  
                        p(c_4) = [0]                  
                        p(c_5) = [0]                  
                        p(c_6) = [0]                  
                        p(c_7) = [0]                  
                        p(c_8) = [0]                  
                        p(c_9) = [0]                  
                       p(c_10) = [0]                  
                       p(c_11) = [0]                  
                       p(c_12) = [0]                  
                       p(c_13) = [0]                  
                       p(c_14) = [0]                  
                       p(c_15) = [0]                  
                       p(c_16) = [0]                  
                       p(c_17) = [0]                  
                       p(c_18) = [0]                  
                       p(c_19) = [0]                  
                       p(c_20) = [0]                  
                       p(c_21) = [0]                  
                       p(c_22) = [0]                  
                       p(c_23) = [0]                  
                       p(c_24) = [0]                  
                       p(c_25) = [0]                  
                       p(c_26) = [0]                  
                       p(c_27) = [1] x1 + [2]         
                       p(c_28) = [1] x1 + [0]         
                       p(c_29) = [0]                  
                       p(c_30) = [0]                  
                       p(c_31) = [1] x1 + [0]         
                       p(c_32) = [0]                  
                       p(c_33) = [0]                  
                       p(c_34) = [0]                  
                       p(c_35) = [1] x1 + [0]         
                       p(c_36) = [0]                  
                       p(c_37) = [0]                  
                       p(c_38) = [0]                  
                       p(c_39) = [2] x1 + [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) = [2] x1 + [0]         
                       p(c_47) = [0]                  
                       p(c_48) = [0]                  
                       p(c_49) = [0]                  
                       p(c_50) = [0]                  
                       p(c_51) = [1] x1 + [0]         
                       p(c_52) = [2] x1 + [0]         
                       p(c_53) = [0]                  
                       p(c_54) = [0]                  
                       p(c_55) = [0]                  
                       p(c_56) = [0]                  
                       p(c_57) = [1] x2 + [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) = [1] x1 + [0]         
                       p(c_66) = [0]                  
                       p(c_67) = [4] x1 + [0]         
                       p(c_68) = [0]                  
                       p(c_69) = [0]                  
                       p(c_70) = [1] x2 + [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]                  
        
        Following rules are strictly oriented:
        matrixMultList#1#(::(@m,@ms),@acc) = [4] @acc + [4] @ms + [11]                     
                                           > [4] @acc + [4] @ms + [9]                      
                                           = c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        
        
        Following rules are (at-least) weakly oriented:
            matrixMultList#(@acc,@mm) =  [4] @acc + [4] @mm + [5]                    
                                      >= [4] @acc + [4] @mm + [5]                    
                                      =  c_27(matrixMultList#1#(@mm,@acc))           
        
                  matrixMult(@m1,@m2) =  [1] @m1 + [1]                               
                                      >= [1] @m1 + [0]                               
                                      =  matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
        
                 matrixMult'(@m1,@m2) =  [1] @m1 + [0]                               
                                      >= [1] @m1 + [0]                               
                                      =  matrixMult'#1(@m1,@m2)                      
        
        matrixMult'#1(::(@l,@ls),@m2) =  [1] @ls + [2]                               
                                      >= [1] @ls + [2]                               
                                      =  ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))   
        
             matrixMult'#1(nil(),@m2) =  [0]                                         
                                      >= [0]                                         
                                      =  nil()                                       
        
******** Step 8.b:3.b:3.b:3.b:4.a:3.a:5.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:3.b:3.b:3.b:4.a:3.a:5.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)):2
          
          2:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******** Step 8.b:3.b:3.b:3.b:4.a:3.a:5.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

******* Step 8.b:3.b:3.b:3.b:4.a:3.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          
        Consider the set of all dependency pairs
          1: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          2: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
          3: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          4: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          5: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          6: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          7: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          8: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          9: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,4,5,9}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:3.b:3.b:3.b:4.a:3.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_22) = {1},
          uargs(c_23) = {1},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {matrixMult,matrixMult',matrixMult'#1,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                    
                       p(#abs) = [0]                                    
                       p(#add) = [2] x1 + [4] x2 + [1]                  
                      p(#mult) = [1] x1 + [1]                           
                   p(#natmult) = [3] x1 + [2] x2 + [0]                  
                       p(#neg) = [6]                                    
                       p(#pos) = [1] x1 + [0]                           
                      p(#pred) = [2]                                    
                         p(#s) = [1] x1 + [0]                           
                      p(#succ) = [0]                                    
                          p(*) = [0]                                    
                          p(+) = [3] x2 + [0]                           
                         p(::) = [1] x2 + [2]                           
                     p(attach) = [0]                                    
                   p(attach#1) = [5] x1 + [0]                           
                   p(attach#2) = [1] x3 + [0]                           
                   p(lineMult) = [3] x2 + [0]                           
                 p(lineMult#1) = [3] x1 + [0]                           
                         p(m1) = [0]                                    
                         p(m2) = [0]                                    
                         p(m3) = [0]                                    
                         p(m4) = [0]                                    
                   p(makeBase) = [0]                                    
                 p(makeBase#1) = [0]                                    
                 p(matrixMult) = [1] x1 + [0]                           
                p(matrixMult') = [1] x1 + [0]                           
              p(matrixMult'#1) = [1] x1 + [0]                           
                p(matrixMult3) = [0]                                    
             p(matrixMultList) = [0]                                    
           p(matrixMultList#1) = [0]                                    
              p(matrixMultOld) = [0]                                    
                     p(mkBase) = [0]                                    
                   p(mkBase#1) = [0]                                    
                       p(mult) = [3] x1 + [0]                           
                     p(mult#1) = [0]                                    
                     p(mult#2) = [0]                                    
                        p(nil) = [0]                                    
                      p(split) = [2]                                    
                    p(split#1) = [0]                                    
                    p(split#2) = [0]                                    
                    p(split#3) = [4] x1 + [0]                           
                   p(transAcc) = [0]                                    
                 p(transAcc#1) = [0]                                    
                  p(transpose) = [0]                                    
                p(transpose#1) = [0]                                    
                p(transpose#2) = [4] x1 + [0]                           
                p(transpose#3) = [0]                                    
                 p(transpose') = [0]                                    
                    p(tuple#2) = [1] x1 + [0]                           
                      p(#abs#) = [0]                                    
                      p(#add#) = [0]                                    
                     p(#mult#) = [1] x1 + [0]                           
                  p(#natmult#) = [0]                                    
                     p(#pred#) = [0]                                    
                     p(#succ#) = [0]                                    
                         p(*#) = [0]                                    
                         p(+#) = [0]                                    
                    p(attach#) = [0]                                    
                  p(attach#1#) = [0]                                    
                  p(attach#2#) = [0]                                    
                  p(lineMult#) = [0]                                    
                p(lineMult#1#) = [0]                                    
                        p(m1#) = [0]                                    
                        p(m2#) = [0]                                    
                        p(m3#) = [0]                                    
                        p(m4#) = [0]                                    
                  p(makeBase#) = [0]                                    
                p(makeBase#1#) = [0]                                    
                p(matrixMult#) = [2] x1 + [2]                           
               p(matrixMult'#) = [1] x1 + [1]                           
             p(matrixMult'#1#) = [1] x1 + [0]                           
               p(matrixMult3#) = [4] x1 + [7]                           
            p(matrixMultList#) = [2] x1 + [1] x2 + [0]                  
          p(matrixMultList#1#) = [1] x1 + [2] x2 + [0]                  
             p(matrixMultOld#) = [1] x1 + [1]                           
                    p(mkBase#) = [4] x1 + [0]                           
                  p(mkBase#1#) = [1] x1 + [0]                           
                      p(mult#) = [0]                                    
                    p(mult#1#) = [2] x2 + [0]                           
                    p(mult#2#) = [1] x1 + [1] x3 + [0]                  
                     p(split#) = [0]                                    
                   p(split#1#) = [0]                                    
                   p(split#2#) = [0]                                    
                   p(split#3#) = [4] x3 + [0]                           
                  p(transAcc#) = [0]                                    
                p(transAcc#1#) = [0]                                    
                 p(transpose#) = [0]                                    
               p(transpose#1#) = [1] x2 + [0]                           
               p(transpose#2#) = [0]                                    
               p(transpose#3#) = [2] x2 + [0]                           
                p(transpose'#) = [1] x1 + [0]                           
                        p(c_1) = [0]                                    
                        p(c_2) = [0]                                    
                        p(c_3) = [0]                                    
                        p(c_4) = [0]                                    
                        p(c_5) = [0]                                    
                        p(c_6) = [1] x1 + [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) = [1]                                    
                       p(c_14) = [0]                                    
                       p(c_15) = [1] x1 + [1] x3 + [1] x4 + [1] x5 + [1]
                       p(c_16) = [2] x1 + [1] x2 + [4] x5 + [0]         
                       p(c_17) = [1] x5 + [1]                           
                       p(c_18) = [2] x2 + [1] x3 + [2] x4 + [1]         
                       p(c_19) = [1] x1 + [0]                           
                       p(c_20) = [1] x1 + [1]                           
                       p(c_21) = [4]                                    
                       p(c_22) = [2] x1 + [0]                           
                       p(c_23) = [1] x1 + [0]                           
                       p(c_24) = [1] x1 + [1]                           
                       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) = [2] x1 + [0]                           
                       p(c_32) = [1] x1 + [0]                           
                       p(c_33) = [0]                                    
                       p(c_34) = [0]                                    
                       p(c_35) = [0]                                    
                       p(c_36) = [1] x1 + [0]                           
                       p(c_37) = [0]                                    
                       p(c_38) = [1] x1 + [0]                           
                       p(c_39) = [1] x1 + [0]                           
                       p(c_40) = [0]                                    
                       p(c_41) = [0]                                    
                       p(c_42) = [1] x1 + [0]                           
                       p(c_43) = [0]                                    
                       p(c_44) = [0]                                    
                       p(c_45) = [1] x1 + [0]                           
                       p(c_46) = [0]                                    
                       p(c_47) = [0]                                    
                       p(c_48) = [1] x1 + [0]                           
                       p(c_49) = [1] x1 + [0]                           
                       p(c_50) = [2]                                    
                       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]                                    
        
        Following rules are strictly oriented:
        matrixMult'#(@m1,@m2) = [1] @m1 + [1]                
                              > [1] @m1 + [0]                
                              = c_23(matrixMult'#1#(@m1,@m2))
        
        
        Following rules are (at-least) weakly oriented:
                      matrixMult#(@m1,@m2) =  [2] @m1 + [2]                                      
                                           >= [2] @m1 + [2]                                      
                                           =  c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
        
            matrixMult'#1#(::(@l,@ls),@m2) =  [1] @ls + [2]                                      
                                           >= [1] @ls + [2]                                      
                                           =  c_24(matrixMult'#(@ls,@m2))                        
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m1 + [7]                                      
                                           >= [2] @m1 + [2]                                      
                                           =  matrixMult#(@m1,@m2)                               
        
                 matrixMult3#(@m1,@m2,@m3) =  [4] @m1 + [7]                                      
                                           >= [2] @m1 + [2]                                      
                                           =  matrixMult#(matrixMult(@m1,@m2),@m3)               
        
                 matrixMultList#(@acc,@mm) =  [2] @acc + [1] @mm + [0]                           
                                           >= [2] @acc + [1] @mm + [0]                           
                                           =  matrixMultList#1#(@mm,@acc)                        
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [2] @acc + [1] @ms + [2]                           
                                           >= [2] @acc + [2]                                     
                                           =  matrixMult#(@acc,@m)                               
        
        matrixMultList#1#(::(@m,@ms),@acc) =  [2] @acc + [1] @ms + [2]                           
                                           >= [2] @acc + [1] @ms + [0]                           
                                           =  matrixMultList#(matrixMult(@acc,@m),@ms)           
        
                   matrixMultOld#(@m1,@m2) =  [1] @m1 + [1]                                      
                                           >= [1] @m1 + [1]                                      
                                           =  matrixMult'#(@m1,transpose(@m2))                   
        
                       matrixMult(@m1,@m2) =  [1] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))       
        
                      matrixMult'(@m1,@m2) =  [1] @m1 + [0]                                      
                                           >= [1] @m1 + [0]                                      
                                           =  matrixMult'#1(@m1,@m2)                             
        
             matrixMult'#1(::(@l,@ls),@m2) =  [1] @ls + [2]                                      
                                           >= [1] @ls + [2]                                      
                                           =  ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))          
        
                  matrixMult'#1(nil(),@m2) =  [0]                                                
                                           >= [0]                                                
                                           =  nil()                                              
        
******** Step 8.b:3.b:3.b:3.b:4.a:3.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:3.b:3.b:3.b:4.a:3.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
            matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
            matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
            matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
            matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          2:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):3
          
          3:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
          4:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          5:W:matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          6:W:matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms):8
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m):7
          
          7:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):1
          
          8:W:matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
             -->_1 matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc):6
          
          9:W:matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):2
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: matrixMultOld#(@m1,@m2) -> matrixMult'#(@m1,transpose(@m2))
          6: matrixMultList#(@acc,@mm) -> matrixMultList#1#(@mm,@acc)
          8: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMultList#(matrixMult(@acc,@m),@ms)
          7: matrixMultList#1#(::(@m,@ms),@acc) -> matrixMult#(@acc,@m)
          5: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(matrixMult(@m1,@m2),@m3)
          4: matrixMult3#(@m1,@m2,@m3) -> matrixMult#(@m1,@m2)
          1: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          2: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          3: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
******** Step 8.b:3.b:3.b:3.b:4.a:3.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

****** Step 8.b:3.b:3.b:3.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
            matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
            matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
            matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):2
          
          2:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):11
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
          3:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):12
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
          4:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):5
          
          5:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):6
          
          6:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):4
          
          7:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):8
          
          8:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):9
             -->_2 split#(@m) -> c_39(split#1#(@m)):4
          
          9:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):10
          
          10:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
          11:W:matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):12
          
          12:W:matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
             -->_1 matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2)):13
          
          13:W:matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
             -->_1 matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2)):12
          
          14:W:matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
             -->_2 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):11
             -->_1 matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2)))):11
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          14: matrixMult3#(@m1,@m2,@m3) -> c_26(matrixMult#(matrixMult(@m1,@m2),@m3),matrixMult#(@m1,@m2))
          11: matrixMult#(@m1,@m2) -> c_22(matrixMult'#(@m1,transAcc(@m2,makeBase(@m2))))
          12: matrixMult'#(@m1,@m2) -> c_23(matrixMult'#1#(@m1,@m2))
          13: matrixMult'#1#(::(@l,@ls),@m2) -> c_24(matrixMult'#(@ls,@m2))
****** Step 8.b:3.b:3.b:3.b:4.b:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms),matrixMult#(@acc,@m))
            matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/2,c_29/0,c_30/2,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                             ,matrixMult#(@acc,@m)):2
          
          2:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)
                                                        ,matrixMult#(@acc,@m))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
          3:S:matrixMultOld#(@m1,@m2) -> c_30(matrixMult'#(@m1,transpose(@m2)),transpose#(@m2))
             -->_2 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
          4:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):5
          
          5:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):6
          
          6:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):4
          
          7:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):8
          
          8:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):9
             -->_2 split#(@m) -> c_39(split#1#(@m)):4
          
          9:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):10
          
          10:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
****** Step 8.b:3.b:3.b:3.b:4.b:3: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
            transpose(@m) -> transpose#1(@m,@m)
            transpose#1(::(@xs,@xss),@m) -> transpose#2(split(@m))
            transpose#1(nil(),@m) -> nil()
            transpose#2(tuple#2(@l,@m')) -> transpose#3(@m',@l)
            transpose#3(::(@y,@ys),@l) -> ::(@l,transpose(::(@y,@ys)))
            transpose#3(nil(),@l) -> nil()
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          split(@m) -> split#1(@m)
          split#1(::(@l,@ls)) -> split#2(@l,@ls)
          split#1(nil()) -> tuple#2(nil(),nil())
          split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
          split#2(nil(),@ls) -> tuple#2(nil(),nil())
          split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          split#(@m) -> c_39(split#1#(@m))
          split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          transpose#(@m) -> c_48(transpose#1#(@m,@m))
          transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
****** Step 8.b:3.b:3.b:3.b:4.b:4: Decompose WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          - Weak DPs:
              matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
              split#(@m) -> c_39(split#1#(@m))
              split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
              split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
              transpose#(@m) -> c_48(transpose#1#(@m,@m))
              transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
              transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
              transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          - Weak DPs:
              matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
              matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
          - Weak TRS:
              #abs(#0()) -> #0()
              #add(#0(),@y) -> @y
              #add(#neg(#s(#0())),@y) -> #pred(@y)
              #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
              #add(#pos(#s(#0())),@y) -> #succ(@y)
              #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
              #mult(#0(),#0()) -> #0()
              #mult(#0(),#neg(@y)) -> #0()
              #mult(#0(),#pos(@y)) -> #0()
              #mult(#neg(@x),#0()) -> #0()
              #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
              #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#0()) -> #0()
              #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
              #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
              #natmult(#0(),@y) -> #0()
              #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
              #pred(#0()) -> #neg(#s(#0()))
              #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
              #pred(#pos(#s(#0()))) -> #0()
              #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
              #succ(#0()) -> #pos(#s(#0()))
              #succ(#neg(#s(#0()))) -> #0()
              #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
              #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
              *(@x,@y) -> #mult(@x,@y)
              +(@x,@y) -> #add(@x,@y)
              attach(@line,@m) -> attach#1(@line,@m)
              attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
              attach#1(nil(),@m) -> nil()
              attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
              attach#2(nil(),@x,@xs) -> nil()
              lineMult(@l,@m2) -> lineMult#1(@m2,@l)
              lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
              lineMult#1(nil(),@l) -> nil()
              makeBase(@m) -> makeBase#1(@m)
              makeBase#1(::(@l,@m')) -> mkBase(@l)
              makeBase#1(nil()) -> nil()
              matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
              matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
              matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
              matrixMult'#1(nil(),@m2) -> nil()
              mkBase(@m) -> mkBase#1(@m)
              mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
              mkBase#1(nil()) -> nil()
              mult(@l1,@l2) -> mult#1(@l1,@l2)
              mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
              mult#1(nil(),@l2) -> #abs(#0())
              mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
              mult#2(nil(),@x,@xs) -> #abs(#0())
              split(@m) -> split#1(@m)
              split#1(::(@l,@ls)) -> split#2(@l,@ls)
              split#1(nil()) -> tuple#2(nil(),nil())
              split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
              split#2(nil(),@ls) -> tuple#2(nil(),nil())
              split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
              transAcc(@m,@base) -> transAcc#1(@m,@base)
              transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
              transAcc#1(nil(),@base) -> @base
          - Signature:
              {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
              ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
              ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
              ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
              ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
              ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
              ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
              ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1
              ,split#1#/1,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1
              ,transpose#3#/2,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0
              ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1
              ,c_20/1,c_21/0,c_22/1,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1
              ,c_35/1,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2
              ,c_50/0,c_51/1,c_52/1,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1
              ,c_65/1,c_66/0,c_67/1,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#
              ,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#
              ,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#
              ,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#
              ,transpose#1#,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
******* Step 8.b:3.b:3.b:3.b:4.b:4.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)):2
          
          2:S:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
          3:W:matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
          4:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):5
          
          5:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):6
          
          6:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):4
          
          7:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):8
          
          8:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_2 split#(@m) -> c_39(split#1#(@m)):4
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):9
          
          9:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):10
          
          10:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):7
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          7: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          10: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          9: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          8: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          4: split#(@m) -> c_39(split#1#(@m))
          6: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          5: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
******* Step 8.b:3.b:3.b:3.b:4.b:4.a:2: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #abs(#0()) -> #0()
          #add(#0(),@y) -> @y
          #add(#neg(#s(#0())),@y) -> #pred(@y)
          #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
          #add(#pos(#s(#0())),@y) -> #succ(@y)
          #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
          #mult(#0(),#0()) -> #0()
          #mult(#0(),#neg(@y)) -> #0()
          #mult(#0(),#pos(@y)) -> #0()
          #mult(#neg(@x),#0()) -> #0()
          #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
          #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#0()) -> #0()
          #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
          #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
          #natmult(#0(),@y) -> #0()
          #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
          #pred(#0()) -> #neg(#s(#0()))
          #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
          #pred(#pos(#s(#0()))) -> #0()
          #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
          #succ(#0()) -> #pos(#s(#0()))
          #succ(#neg(#s(#0()))) -> #0()
          #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
          #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
          *(@x,@y) -> #mult(@x,@y)
          +(@x,@y) -> #add(@x,@y)
          attach(@line,@m) -> attach#1(@line,@m)
          attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
          attach#1(nil(),@m) -> nil()
          attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
          attach#2(nil(),@x,@xs) -> nil()
          lineMult(@l,@m2) -> lineMult#1(@m2,@l)
          lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
          lineMult#1(nil(),@l) -> nil()
          makeBase(@m) -> makeBase#1(@m)
          makeBase#1(::(@l,@m')) -> mkBase(@l)
          makeBase#1(nil()) -> nil()
          matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
          matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
          matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
          matrixMult'#1(nil(),@m2) -> nil()
          mkBase(@m) -> mkBase#1(@m)
          mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
          mkBase#1(nil()) -> nil()
          mult(@l1,@l2) -> mult#1(@l1,@l2)
          mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
          mult#1(nil(),@l2) -> #abs(#0())
          mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
          mult#2(nil(),@x,@xs) -> #abs(#0())
          transAcc(@m,@base) -> transAcc#1(@m,@base)
          transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
          transAcc#1(nil(),@base) -> @base
          matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******* Step 8.b:3.b:3.b:3.b:4.b:4.a:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          
        Consider the set of all dependency pairs
          1: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:3.b:3.b:3.b:4.b:4.a:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_27) = {1},
          uargs(c_28) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#
          ,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#,matrixMult'#1#,matrixMult3#,matrixMultList#
          ,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#
          ,transAcc#,transAcc#1#,transpose#,transpose#1#,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [4]                           
                       p(#abs) = [0]                           
                       p(#add) = [1] x1 + [7]                  
                      p(#mult) = [1] x1 + [0]                  
                   p(#natmult) = [5]                           
                       p(#neg) = [1] x1 + [1]                  
                       p(#pos) = [1] x1 + [2]                  
                      p(#pred) = [1] x1 + [0]                  
                         p(#s) = [1] x1 + [2]                  
                      p(#succ) = [5]                           
                          p(*) = [0]                           
                          p(+) = [1] x2 + [2]                  
                         p(::) = [1] x1 + [1] x2 + [2]         
                     p(attach) = [2] x1 + [0]                  
                   p(attach#1) = [0]                           
                   p(attach#2) = [0]                           
                   p(lineMult) = [4] x2 + [3]                  
                 p(lineMult#1) = [3] x1 + [0]                  
                         p(m1) = [0]                           
                         p(m2) = [0]                           
                         p(m3) = [0]                           
                         p(m4) = [0]                           
                   p(makeBase) = [2] x1 + [5]                  
                 p(makeBase#1) = [5]                           
                 p(matrixMult) = [0]                           
                p(matrixMult') = [0]                           
              p(matrixMult'#1) = [7]                           
                p(matrixMult3) = [0]                           
             p(matrixMultList) = [0]                           
           p(matrixMultList#1) = [0]                           
              p(matrixMultOld) = [0]                           
                     p(mkBase) = [1] x1 + [0]                  
                   p(mkBase#1) = [0]                           
                       p(mult) = [1] x1 + [1]                  
                     p(mult#1) = [1] x2 + [0]                  
                     p(mult#2) = [0]                           
                        p(nil) = [3]                           
                      p(split) = [0]                           
                    p(split#1) = [0]                           
                    p(split#2) = [0]                           
                    p(split#3) = [0]                           
                   p(transAcc) = [2] x2 + [0]                  
                 p(transAcc#1) = [0]                           
                  p(transpose) = [0]                           
                p(transpose#1) = [2]                           
                p(transpose#2) = [0]                           
                p(transpose#3) = [0]                           
                 p(transpose') = [4] x1 + [0]                  
                    p(tuple#2) = [0]                           
                      p(#abs#) = [1] x1 + [0]                  
                      p(#add#) = [2] x2 + [0]                  
                     p(#mult#) = [2] x1 + [0]                  
                  p(#natmult#) = [2] x1 + [2] x2 + [0]         
                     p(#pred#) = [0]                           
                     p(#succ#) = [0]                           
                         p(*#) = [2] x2 + [0]                  
                         p(+#) = [4] x1 + [0]                  
                    p(attach#) = [2] x1 + [0]                  
                  p(attach#1#) = [0]                           
                  p(attach#2#) = [4] x1 + [1] x2 + [0]         
                  p(lineMult#) = [4] x1 + [0]                  
                p(lineMult#1#) = [1] x2 + [0]                  
                        p(m1#) = [2] x1 + [0]                  
                        p(m2#) = [1] x1 + [0]                  
                        p(m3#) = [0]                           
                        p(m4#) = [0]                           
                  p(makeBase#) = [0]                           
                p(makeBase#1#) = [0]                           
                p(matrixMult#) = [0]                           
               p(matrixMult'#) = [0]                           
             p(matrixMult'#1#) = [4] x1 + [1] x2 + [0]         
               p(matrixMult3#) = [2] x1 + [1] x2 + [4] x3 + [0]
            p(matrixMultList#) = [1] x2 + [1]                  
          p(matrixMultList#1#) = [1] x1 + [0]                  
             p(matrixMultOld#) = [4] x1 + [2] x2 + [0]         
                    p(mkBase#) = [0]                           
                  p(mkBase#1#) = [1] x1 + [0]                  
                      p(mult#) = [1] x1 + [0]                  
                    p(mult#1#) = [0]                           
                    p(mult#2#) = [0]                           
                     p(split#) = [0]                           
                   p(split#1#) = [0]                           
                   p(split#2#) = [0]                           
                   p(split#3#) = [0]                           
                  p(transAcc#) = [0]                           
                p(transAcc#1#) = [0]                           
                 p(transpose#) = [0]                           
               p(transpose#1#) = [0]                           
               p(transpose#2#) = [0]                           
               p(transpose#3#) = [0]                           
                p(transpose'#) = [0]                           
                        p(c_1) = [0]                           
                        p(c_2) = [0]                           
                        p(c_3) = [0]                           
                        p(c_4) = [0]                           
                        p(c_5) = [0]                           
                        p(c_6) = [0]                           
                        p(c_7) = [0]                           
                        p(c_8) = [0]                           
                        p(c_9) = [0]                           
                       p(c_10) = [0]                           
                       p(c_11) = [0]                           
                       p(c_12) = [0]                           
                       p(c_13) = [0]                           
                       p(c_14) = [0]                           
                       p(c_15) = [0]                           
                       p(c_16) = [0]                           
                       p(c_17) = [2]                           
                       p(c_18) = [0]                           
                       p(c_19) = [0]                           
                       p(c_20) = [0]                           
                       p(c_21) = [0]                           
                       p(c_22) = [0]                           
                       p(c_23) = [0]                           
                       p(c_24) = [0]                           
                       p(c_25) = [0]                           
                       p(c_26) = [0]                           
                       p(c_27) = [1] x1 + [0]                  
                       p(c_28) = [1] x1 + [1]                  
                       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) = [2]                           
                       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) = [2]                           
                       p(c_74) = [0]                           
                       p(c_75) = [0]                           
                       p(c_76) = [0]                           
                       p(c_77) = [0]                           
                       p(c_78) = [0]                           
        
        Following rules are strictly oriented:
        matrixMultList#(@acc,@mm) = [1] @mm + [1]                    
                                  > [1] @mm + [0]                    
                                  = c_27(matrixMultList#1#(@mm,@acc))
        
        
        Following rules are (at-least) weakly oriented:
        matrixMultList#1#(::(@m,@ms),@acc) =  [1] @m + [1] @ms + [2]                        
                                           >= [1] @ms + [2]                                 
                                           =  c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        
******** Step 8.b:3.b:3.b:3.b:4.b:4.a:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:3.b:3.b:3.b:4.b:4.a:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)):2
          
          2:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          2: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******** Step 8.b:3.b:3.b:3.b:4.b:4.a:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

******* Step 8.b:3.b:3.b:3.b:4.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
            matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):5
          
          2:S:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):3
          
          3:S:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):4
          
          4:S:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):2
          
          5:S:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):6
          
          6:S:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):7
             -->_2 split#(@m) -> c_39(split#1#(@m)):2
          
          7:S:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):8
          
          8:S:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):5
          
          9:W:matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
             -->_1 matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms)):10
          
          10:W:matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
             -->_1 matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc)):9
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: matrixMultList#(@acc,@mm) -> c_27(matrixMultList#1#(@mm,@acc))
          10: matrixMultList#1#(::(@m,@ms),@acc) -> c_28(matrixMultList#(matrixMult(@acc,@m),@ms))
******* Step 8.b:3.b:3.b:3.b:4.b:4.b:2: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            #abs(#0()) -> #0()
            #add(#0(),@y) -> @y
            #add(#neg(#s(#0())),@y) -> #pred(@y)
            #add(#neg(#s(#s(@x))),@y) -> #pred(#add(#pos(#s(@x)),@y))
            #add(#pos(#s(#0())),@y) -> #succ(@y)
            #add(#pos(#s(#s(@x))),@y) -> #succ(#add(#pos(#s(@x)),@y))
            #mult(#0(),#0()) -> #0()
            #mult(#0(),#neg(@y)) -> #0()
            #mult(#0(),#pos(@y)) -> #0()
            #mult(#neg(@x),#0()) -> #0()
            #mult(#neg(@x),#neg(@y)) -> #pos(#natmult(@x,@y))
            #mult(#neg(@x),#pos(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#0()) -> #0()
            #mult(#pos(@x),#neg(@y)) -> #neg(#natmult(@x,@y))
            #mult(#pos(@x),#pos(@y)) -> #pos(#natmult(@x,@y))
            #natmult(#0(),@y) -> #0()
            #natmult(#s(@x),@y) -> #add(#pos(@y),#natmult(@x,@y))
            #pred(#0()) -> #neg(#s(#0()))
            #pred(#neg(#s(@x))) -> #neg(#s(#s(@x)))
            #pred(#pos(#s(#0()))) -> #0()
            #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x))
            #succ(#0()) -> #pos(#s(#0()))
            #succ(#neg(#s(#0()))) -> #0()
            #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x))
            #succ(#pos(#s(@x))) -> #pos(#s(#s(@x)))
            *(@x,@y) -> #mult(@x,@y)
            +(@x,@y) -> #add(@x,@y)
            attach(@line,@m) -> attach#1(@line,@m)
            attach#1(::(@x,@xs),@m) -> attach#2(@m,@x,@xs)
            attach#1(nil(),@m) -> nil()
            attach#2(::(@l,@ls),@x,@xs) -> ::(::(@x,@l),attach(@xs,@ls))
            attach#2(nil(),@x,@xs) -> nil()
            lineMult(@l,@m2) -> lineMult#1(@m2,@l)
            lineMult#1(::(@x,@xs),@l) -> ::(mult(@l,@x),lineMult(@l,@xs))
            lineMult#1(nil(),@l) -> nil()
            makeBase(@m) -> makeBase#1(@m)
            makeBase#1(::(@l,@m')) -> mkBase(@l)
            makeBase#1(nil()) -> nil()
            matrixMult(@m1,@m2) -> matrixMult'(@m1,transAcc(@m2,makeBase(@m2)))
            matrixMult'(@m1,@m2) -> matrixMult'#1(@m1,@m2)
            matrixMult'#1(::(@l,@ls),@m2) -> ::(lineMult(@l,@m2),matrixMult'(@ls,@m2))
            matrixMult'#1(nil(),@m2) -> nil()
            mkBase(@m) -> mkBase#1(@m)
            mkBase#1(::(@l,@m')) -> ::(nil(),mkBase(@m'))
            mkBase#1(nil()) -> nil()
            mult(@l1,@l2) -> mult#1(@l1,@l2)
            mult#1(::(@x,@xs),@l2) -> mult#2(@l2,@x,@xs)
            mult#1(nil(),@l2) -> #abs(#0())
            mult#2(::(@y,@ys),@x,@xs) -> +(*(@x,@y),mult(@xs,@ys))
            mult#2(nil(),@x,@xs) -> #abs(#0())
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
            transAcc(@m,@base) -> transAcc#1(@m,@base)
            transAcc#1(::(@l,@m'),@base) -> attach(@l,transAcc(@m',@base))
            transAcc#1(nil(),@base) -> @base
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          split(@m) -> split#1(@m)
          split#1(::(@l,@ls)) -> split#2(@l,@ls)
          split#1(nil()) -> tuple#2(nil(),nil())
          split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
          split#2(nil(),@ls) -> tuple#2(nil(),nil())
          split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
          matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          split#(@m) -> c_39(split#1#(@m))
          split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          transpose#(@m) -> c_48(transpose#1#(@m,@m))
          transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
******* Step 8.b:3.b:3.b:3.b:4.b:4.b:3: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          3: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          
        Consider the set of all dependency pairs
          1: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          2: split#(@m) -> c_39(split#1#(@m))
          3: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          4: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          5: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          6: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          7: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          8: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1,3}
        These cover all (indirect) predecessors of dependency pairs
          {1,3,4}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_30) = {1},
          uargs(c_39) = {1},
          uargs(c_40) = {1},
          uargs(c_42) = {1},
          uargs(c_48) = {1},
          uargs(c_49) = {1,2},
          uargs(c_51) = {1},
          uargs(c_52) = {1}
        
        Following symbols are considered usable:
          {split,split#1,split#2,split#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#abs) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#add) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#mult) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(#natmult) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#neg) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#pos) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#pred) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(#s) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#succ) = [0]                          
                                 [0]                          
                                 [0]                          
                          p(*) = [0]                          
                                 [0]                          
                                 [0]                          
                          p(+) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(::) = [0 1 0]      [1 0 0]      [0]
                                 [0 0 0] x1 + [0 1 0] x2 + [1]
                                 [0 0 0]      [0 0 0]      [0]
                     p(attach) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(attach#1) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(attach#2) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(lineMult) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(lineMult#1) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m1) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m2) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m3) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m4) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(makeBase) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(makeBase#1) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(matrixMult) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult') = [0]                          
                                 [0]                          
                                 [0]                          
              p(matrixMult'#1) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult3) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMultList) = [0]                          
                                 [0]                          
                                 [0]                          
           p(matrixMultList#1) = [0]                          
                                 [0]                          
                                 [0]                          
              p(matrixMultOld) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mkBase) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(mkBase#1) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(mult) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mult#1) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mult#2) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(nil) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(split) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [0]             
                    p(split#1) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [0]             
                    p(split#2) = [0 1 0]      [1 0 0]      [0]
                                 [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                    p(split#3) = [1 0 0]      [0 1 0]      [1]
                                 [0 0 0] x1 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                   p(transAcc) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transAcc#1) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(transpose) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#1) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#2) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#3) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transpose') = [0]                          
                                 [0]                          
                                 [0]                          
                    p(tuple#2) = [1 1 0]      [0]             
                                 [0 0 0] x2 + [0]             
                                 [0 0 0]      [0]             
                      p(#abs#) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#add#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#mult#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(#natmult#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#pred#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#succ#) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(*#) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(+#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(attach#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(attach#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(attach#2#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(lineMult#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(lineMult#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m1#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m2#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m3#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m4#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(makeBase#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(makeBase#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult#) = [0]                          
                                 [0]                          
                                 [0]                          
               p(matrixMult'#) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMult'#1#) = [0]                          
                                 [0]                          
                                 [0]                          
               p(matrixMult3#) = [0]                          
                                 [0]                          
                                 [0]                          
            p(matrixMultList#) = [0]                          
                                 [0]                          
                                 [0]                          
          p(matrixMultList#1#) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMultOld#) = [1 1 1]      [1]             
                                 [1 0 0] x2 + [0]             
                                 [1 1 0]      [1]             
                    p(mkBase#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(mkBase#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(mult#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(mult#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(mult#2#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(split#) = [0 1 0]      [0]             
                                 [0 1 0] x1 + [1]             
                                 [0 0 0]      [1]             
                   p(split#1#) = [0 1 0]      [0]             
                                 [1 1 0] x1 + [0]             
                                 [1 1 0]      [1]             
                   p(split#2#) = [0 0 0]      [0 1 0]      [0]
                                 [0 1 0] x1 + [0 1 0] x2 + [0]
                                 [0 0 0]      [1 0 0]      [1]
                   p(split#3#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(transAcc#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transAcc#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transpose#) = [1 1 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 1 0]      [1]             
               p(transpose#1#) = [0 0 0]      [1 1 0]      [0]
                                 [0 1 0] x1 + [0 0 0] x2 + [0]
                                 [0 1 0]      [0 1 0]      [1]
               p(transpose#2#) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [1]             
               p(transpose#3#) = [1 1 0]      [0]             
                                 [1 1 0] x1 + [1]             
                                 [0 1 0]      [1]             
                p(transpose'#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_1) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_2) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_3) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_4) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_5) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_6) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_7) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_8) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_9) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_10) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_11) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_12) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_13) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_14) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_15) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_16) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_17) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_18) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_19) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_20) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_21) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_22) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_23) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_24) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_25) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_26) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_27) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_28) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_29) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_30) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 1]      [0]             
                       p(c_31) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_32) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_33) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_34) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_35) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_36) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_37) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_38) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_39) = [1 0 0]      [0]             
                                 [1 0 0] x1 + [1]             
                                 [0 0 0]      [0]             
                       p(c_40) = [1 0 0]      [0]             
                                 [0 1 0] x1 + [1]             
                                 [0 1 1]      [1]             
                       p(c_41) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_42) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [0]             
                       p(c_43) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_44) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_45) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_46) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_47) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_48) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [0]             
                       p(c_49) = [1 0 0]      [1 0 0]      [0]
                                 [0 0 0] x1 + [0 0 1] x2 + [0]
                                 [0 0 0]      [1 0 0]      [0]
                       p(c_50) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_51) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [0]             
                       p(c_52) = [1 0 0]      [0]             
                                 [1 0 0] x1 + [0]             
                                 [0 0 1]      [0]             
                       p(c_53) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_54) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_55) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_56) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_57) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_58) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_59) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_60) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_61) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_62) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_63) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_64) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_65) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_66) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_67) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_68) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_69) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_70) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_71) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_72) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_73) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_74) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_75) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_76) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_77) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_78) = [0]                          
                                 [0]                          
                                 [0]                          
        
        Following rules are strictly oriented:
        matrixMultOld#(@m1,@m2) = [1 1 1]       [1]             
                                  [1 0 0] @m2 + [0]             
                                  [1 1 0]       [1]             
                                > [1 1 0]       [0]             
                                  [0 0 0] @m2 + [0]             
                                  [0 1 0]       [1]             
                                = c_30(transpose#(@m2))         
        
           split#1#(::(@l,@ls)) = [0 0 0]      [0 1 0]       [1]
                                  [0 1 0] @l + [1 1 0] @ls + [1]
                                  [0 1 0]      [1 1 0]       [2]
                                > [0 0 0]      [0 1 0]       [0]
                                  [0 1 0] @l + [0 1 0] @ls + [1]
                                  [0 1 0]      [1 1 0]       [2]
                                = c_40(split#2#(@l,@ls))        
        
        
        Following rules are (at-least) weakly oriented:
                              split#(@m) =  [0 1 0]      [0]                        
                                            [0 1 0] @m + [1]                        
                                            [0 0 0]      [1]                        
                                         >= [0 1 0]      [0]                        
                                            [0 1 0] @m + [1]                        
                                            [0 0 0]      [0]                        
                                         =  c_39(split#1#(@m))                      
        
                split#2#(::(@x,@xs),@ls) =  [0 1 0]       [0 0 0]       [0]         
                                            [0 1 0] @ls + [0 1 0] @xs + [1]         
                                            [1 0 0]       [0 0 0]       [1]         
                                         >= [0 1 0]       [0]                       
                                            [0 0 0] @ls + [0]                       
                                            [0 0 0]       [0]                       
                                         =  c_42(split#(@ls))                       
        
                          transpose#(@m) =  [1 1 0]      [0]                        
                                            [0 0 0] @m + [0]                        
                                            [0 1 0]      [1]                        
                                         >= [1 1 0]      [0]                        
                                            [0 0 0] @m + [0]                        
                                            [0 0 0]      [0]                        
                                         =  c_48(transpose#1#(@m,@m))               
        
           transpose#1#(::(@xs,@xss),@m) =  [1 1 0]      [0 0 0]        [0]         
                                            [0 0 0] @m + [0 1 0] @xss + [1]         
                                            [0 1 0]      [0 1 0]        [2]         
                                         >= [1 1 0]      [0]                        
                                            [0 0 0] @m + [1]                        
                                            [0 1 0]      [0]                        
                                         =  c_49(transpose#2#(split(@m)),split#(@m))
        
           transpose#2#(tuple#2(@l,@m')) =  [1 1 0]       [0]                       
                                            [0 0 0] @m' + [0]                       
                                            [0 0 0]       [1]                       
                                         >= [1 1 0]       [0]                       
                                            [0 0 0] @m' + [0]                       
                                            [0 0 0]       [0]                       
                                         =  c_51(transpose#3#(@m',@l))              
        
             transpose#3#(::(@y,@ys),@l) =  [0 1 0]      [1 1 0]       [1]          
                                            [0 1 0] @y + [1 1 0] @ys + [2]          
                                            [0 0 0]      [0 1 0]       [2]          
                                         >= [0 1 0]      [1 1 0]       [1]          
                                            [0 1 0] @y + [1 1 0] @ys + [1]          
                                            [0 0 0]      [0 1 0]       [2]          
                                         =  c_52(transpose#(::(@y,@ys)))            
        
                               split(@m) =  [1 0 0]      [0]                        
                                            [0 0 0] @m + [0]                        
                                            [0 0 0]      [0]                        
                                         >= [1 0 0]      [0]                        
                                            [0 0 0] @m + [0]                        
                                            [0 0 0]      [0]                        
                                         =  split#1(@m)                             
        
                     split#1(::(@l,@ls)) =  [0 1 0]      [1 0 0]       [0]          
                                            [0 0 0] @l + [0 0 0] @ls + [0]          
                                            [0 0 0]      [0 0 0]       [0]          
                                         >= [0 1 0]      [1 0 0]       [0]          
                                            [0 0 0] @l + [0 0 0] @ls + [0]          
                                            [0 0 0]      [0 0 0]       [0]          
                                         =  split#2(@l,@ls)                         
        
                          split#1(nil()) =  [0]                                     
                                            [0]                                     
                                            [0]                                     
                                         >= [0]                                     
                                            [0]                                     
                                            [0]                                     
                                         =  tuple#2(nil(),nil())                    
        
                 split#2(::(@x,@xs),@ls) =  [1 0 0]       [0 1 0]       [1]         
                                            [0 0 0] @ls + [0 0 0] @xs + [0]         
                                            [0 0 0]       [0 0 0]       [0]         
                                         >= [1 0 0]       [0 1 0]       [1]         
                                            [0 0 0] @ls + [0 0 0] @xs + [0]         
                                            [0 0 0]       [0 0 0]       [0]         
                                         =  split#3(split(@ls),@x,@xs)              
        
                      split#2(nil(),@ls) =  [1 0 0]       [0]                       
                                            [0 0 0] @ls + [0]                       
                                            [0 0 0]       [0]                       
                                         >= [0]                                     
                                            [0]                                     
                                            [0]                                     
                                         =  tuple#2(nil(),nil())                    
        
        split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1 0]       [0 1 0]       [1]         
                                            [0 0 0] @m' + [0 0 0] @xs + [0]         
                                            [0 0 0]       [0 0 0]       [0]         
                                         >= [1 1 0]       [0 1 0]       [1]         
                                            [0 0 0] @m' + [0 0 0] @xs + [0]         
                                            [0 0 0]       [0 0 0]       [0]         
                                         =  tuple#2(::(@x,@ys),::(@xs,@m'))         
        
******** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          4: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          
        Consider the set of all dependency pairs
          1: split#(@m) -> c_39(split#1#(@m))
          2: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          3: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          4: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          5: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          6: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          7: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          8: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
        Processor NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {4}
        These cover all (indirect) predecessors of dependency pairs
          {2,3,4,5,6}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
********* Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 1 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_30) = {1},
          uargs(c_39) = {1},
          uargs(c_40) = {1},
          uargs(c_42) = {1},
          uargs(c_48) = {1},
          uargs(c_49) = {1,2},
          uargs(c_51) = {1},
          uargs(c_52) = {1}
        
        Following symbols are considered usable:
          {split,split#1,split#2,split#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(#abs) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(#add) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                      p(#mult) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(#natmult) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(#neg) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(#pos) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                      p(#pred) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(#s) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                      p(#succ) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                          p(*) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                          p(+) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(::) = [0 0 0]      [0 0 0]      [0]             
                                 [0 0 1] x1 + [0 0 0] x2 + [0]             
                                 [0 0 1]      [0 0 1]      [1]             
                     p(attach) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(attach#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(attach#2) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(lineMult) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(lineMult#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(m1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(m2) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(m3) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(m4) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(makeBase) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(makeBase#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(matrixMult) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(matrixMult') = [0]                                       
                                 [0]                                       
                                 [0]                                       
              p(matrixMult'#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(matrixMult3) = [0]                                       
                                 [0]                                       
                                 [0]                                       
             p(matrixMultList) = [0]                                       
                                 [0]                                       
                                 [0]                                       
           p(matrixMultList#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
              p(matrixMultOld) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(mkBase) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                   p(mkBase#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(mult) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(mult#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(mult#2) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(nil) = [1]                                       
                                 [0]                                       
                                 [1]                                       
                      p(split) = [1 1 0]      [0]                          
                                 [0 0 1] x1 + [0]                          
                                 [0 0 0]      [1]                          
                    p(split#1) = [1 1 0]      [0]                          
                                 [0 0 1] x1 + [0]                          
                                 [0 0 0]      [0]                          
                    p(split#2) = [0 0 1]      [0 0 0]      [0]             
                                 [0 0 1] x1 + [0 0 1] x2 + [1]             
                                 [0 0 0]      [0 0 0]      [0]             
                    p(split#3) = [0 0 0]      [0 0 0]      [0 0 1]      [1]
                                 [0 1 1] x1 + [0 0 1] x2 + [0 0 1] x3 + [1]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                   p(transAcc) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(transAcc#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(transpose) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(transpose#1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(transpose#2) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(transpose#3) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(transpose') = [0]                                       
                                 [0]                                       
                                 [0]                                       
                    p(tuple#2) = [0 0 0]      [0 1 0]      [1]             
                                 [0 0 1] x1 + [0 0 0] x2 + [0]             
                                 [0 0 0]      [0 0 0]      [0]             
                      p(#abs#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                      p(#add#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(#mult#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(#natmult#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(#pred#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(#succ#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(*#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                         p(+#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                    p(attach#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(attach#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(attach#2#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(lineMult#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(lineMult#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(m1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(m2#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(m3#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(m4#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(makeBase#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(makeBase#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(matrixMult#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
               p(matrixMult'#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
             p(matrixMult'#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
               p(matrixMult3#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
            p(matrixMultList#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
          p(matrixMultList#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
             p(matrixMultOld#) = [1 1 1]      [1]                          
                                 [0 0 0] x2 + [1]                          
                                 [1 1 0]      [0]                          
                    p(mkBase#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(mkBase#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                      p(mult#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                    p(mult#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                    p(mult#2#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                     p(split#) = [0 0 0]      [0]                          
                                 [0 0 0] x1 + [1]                          
                                 [1 1 1]      [1]                          
                   p(split#1#) = [0 0 0]      [0]                          
                                 [0 1 1] x1 + [0]                          
                                 [0 1 1]      [0]                          
                   p(split#2#) = [0 0 0]      [0]                          
                                 [0 0 1] x2 + [1]                          
                                 [1 0 0]      [0]                          
                   p(split#3#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                  p(transAcc#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                p(transAcc#1#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                 p(transpose#) = [1 1 0]      [0]                          
                                 [0 0 1] x1 + [1]                          
                                 [1 1 0]      [1]                          
               p(transpose#1#) = [0 0 0]      [1 1 0]      [0]             
                                 [0 1 1] x1 + [0 0 1] x2 + [1]             
                                 [0 0 0]      [1 1 1]      [1]             
               p(transpose#2#) = [1 0 0]      [0]                          
                                 [0 0 0] x1 + [1]                          
                                 [0 0 0]      [0]                          
               p(transpose#3#) = [0 1 0]      [0]                          
                                 [0 0 0] x1 + [0]                          
                                 [0 0 0]      [1]                          
                p(transpose'#) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_1) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_2) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_3) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_4) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_5) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_6) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_7) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_8) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                        p(c_9) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_10) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_11) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_12) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_13) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_14) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_15) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_16) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_17) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_18) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_19) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_20) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_21) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_22) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_23) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_24) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_25) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_26) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_27) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_28) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_29) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_30) = [1 1 0]      [0]                          
                                 [0 0 0] x1 + [0]                          
                                 [1 0 0]      [0]                          
                       p(c_31) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_32) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_33) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_34) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_35) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_36) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_37) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_38) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_39) = [1 0 0]      [0]                          
                                 [0 0 0] x1 + [1]                          
                                 [0 0 1]      [1]                          
                       p(c_40) = [1 0 0]      [0]                          
                                 [0 1 0] x1 + [0]                          
                                 [0 0 0]      [1]                          
                       p(c_41) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_42) = [1 0 0]      [0]                          
                                 [0 1 0] x1 + [0]                          
                                 [0 0 0]      [0]                          
                       p(c_43) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_44) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_45) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_46) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_47) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_48) = [1 0 0]      [0]                          
                                 [0 0 0] x1 + [0]                          
                                 [1 0 0]      [0]                          
                       p(c_49) = [1 0 0]      [1 0 0]      [0]             
                                 [0 1 0] x1 + [0 0 0] x2 + [1]             
                                 [0 0 0]      [0 0 1]      [0]             
                       p(c_50) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_51) = [1 0 0]      [0]                          
                                 [0 0 1] x1 + [0]                          
                                 [0 0 0]      [0]                          
                       p(c_52) = [1 0 0]      [0]                          
                                 [0 0 0] x1 + [0]                          
                                 [0 0 0]      [1]                          
                       p(c_53) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_54) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_55) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_56) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_57) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_58) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_59) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_60) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_61) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_62) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_63) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_64) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_65) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_66) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_67) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_68) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_69) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_70) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_71) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_72) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_73) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_74) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_75) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_76) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_77) = [0]                                       
                                 [0]                                       
                                 [0]                                       
                       p(c_78) = [0]                                       
                                 [0]                                       
                                 [0]                                       
        
        Following rules are strictly oriented:
        transpose#2#(tuple#2(@l,@m')) = [0 1 0]       [1]         
                                        [0 0 0] @m' + [1]         
                                        [0 0 0]       [0]         
                                      > [0 1 0]       [0]         
                                        [0 0 0] @m' + [1]         
                                        [0 0 0]       [0]         
                                      = c_51(transpose#3#(@m',@l))
        
        
        Following rules are (at-least) weakly oriented:
                 matrixMultOld#(@m1,@m2) =  [1 1 1]       [1]                            
                                            [0 0 0] @m2 + [1]                            
                                            [1 1 0]       [0]                            
                                         >= [1 1 1]       [1]                            
                                            [0 0 0] @m2 + [0]                            
                                            [1 1 0]       [0]                            
                                         =  c_30(transpose#(@m2))                        
        
                              split#(@m) =  [0 0 0]      [0]                             
                                            [0 0 0] @m + [1]                             
                                            [1 1 1]      [1]                             
                                         >= [0 0 0]      [0]                             
                                            [0 0 0] @m + [1]                             
                                            [0 1 1]      [1]                             
                                         =  c_39(split#1#(@m))                           
        
                    split#1#(::(@l,@ls)) =  [0 0 0]      [0 0 0]       [0]               
                                            [0 0 2] @l + [0 0 1] @ls + [1]               
                                            [0 0 2]      [0 0 1]       [1]               
                                         >= [0 0 0]       [0]                            
                                            [0 0 1] @ls + [1]                            
                                            [0 0 0]       [1]                            
                                         =  c_40(split#2#(@l,@ls))                       
        
                split#2#(::(@x,@xs),@ls) =  [0 0 0]       [0]                            
                                            [0 0 1] @ls + [1]                            
                                            [1 0 0]       [0]                            
                                         >= [0]                                          
                                            [1]                                          
                                            [0]                                          
                                         =  c_42(split#(@ls))                            
        
                          transpose#(@m) =  [1 1 0]      [0]                             
                                            [0 0 1] @m + [1]                             
                                            [1 1 0]      [1]                             
                                         >= [1 1 0]      [0]                             
                                            [0 0 0] @m + [0]                             
                                            [1 1 0]      [0]                             
                                         =  c_48(transpose#1#(@m,@m))                    
        
           transpose#1#(::(@xs,@xss),@m) =  [1 1 0]      [0 0 0]       [0 0 0]        [0]
                                            [0 0 1] @m + [0 0 2] @xs + [0 0 1] @xss + [2]
                                            [1 1 1]      [0 0 0]       [0 0 0]        [1]
                                         >= [1 1 0]      [0]                             
                                            [0 0 0] @m + [2]                             
                                            [1 1 1]      [1]                             
                                         =  c_49(transpose#2#(split(@m)),split#(@m))     
        
             transpose#3#(::(@y,@ys),@l) =  [0 0 1]      [0]                             
                                            [0 0 0] @y + [0]                             
                                            [0 0 0]      [1]                             
                                         >= [0 0 1]      [0]                             
                                            [0 0 0] @y + [0]                             
                                            [0 0 0]      [1]                             
                                         =  c_52(transpose#(::(@y,@ys)))                 
        
                               split(@m) =  [1 1 0]      [0]                             
                                            [0 0 1] @m + [0]                             
                                            [0 0 0]      [1]                             
                                         >= [1 1 0]      [0]                             
                                            [0 0 1] @m + [0]                             
                                            [0 0 0]      [0]                             
                                         =  split#1(@m)                                  
        
                     split#1(::(@l,@ls)) =  [0 0 1]      [0 0 0]       [0]               
                                            [0 0 1] @l + [0 0 1] @ls + [1]               
                                            [0 0 0]      [0 0 0]       [0]               
                                         >= [0 0 1]      [0 0 0]       [0]               
                                            [0 0 1] @l + [0 0 1] @ls + [1]               
                                            [0 0 0]      [0 0 0]       [0]               
                                         =  split#2(@l,@ls)                              
        
                          split#1(nil()) =  [1]                                          
                                            [1]                                          
                                            [0]                                          
                                         >= [1]                                          
                                            [1]                                          
                                            [0]                                          
                                         =  tuple#2(nil(),nil())                         
        
                 split#2(::(@x,@xs),@ls) =  [0 0 0]       [0 0 1]      [0 0 1]       [1] 
                                            [0 0 1] @ls + [0 0 1] @x + [0 0 1] @xs + [2] 
                                            [0 0 0]       [0 0 0]      [0 0 0]       [0] 
                                         >= [0 0 0]       [0 0 0]      [0 0 1]       [1] 
                                            [0 0 1] @ls + [0 0 1] @x + [0 0 1] @xs + [2] 
                                            [0 0 0]       [0 0 0]      [0 0 0]       [0] 
                                         =  split#3(split(@ls),@x,@xs)                   
        
                      split#2(nil(),@ls) =  [0 0 0]       [1]                            
                                            [0 0 1] @ls + [2]                            
                                            [0 0 0]       [0]                            
                                         >= [1]                                          
                                            [1]                                          
                                            [0]                                          
                                         =  tuple#2(nil(),nil())                         
        
        split#3(tuple#2(@ys,@m'),@x,@xs) =  [0 0 0]      [0 0 1]       [0 0 0]       [1] 
                                            [0 0 1] @x + [0 0 1] @xs + [0 0 1] @ys + [1] 
                                            [0 0 0]      [0 0 0]       [0 0 0]       [0] 
                                         >= [0 0 0]      [0 0 1]       [0 0 0]       [1] 
                                            [0 0 1] @x + [0 0 0] @xs + [0 0 1] @ys + [1] 
                                            [0 0 0]      [0 0 0]       [0 0 0]       [0] 
                                         =  tuple#2(::(@x,@ys),::(@xs,@m'))              
        
********* Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

********* Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: split#(@m) -> c_39(split#1#(@m))
          
        Consider the set of all dependency pairs
          1: split#(@m) -> c_39(split#1#(@m))
          2: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          3: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
          4: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          5: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          6: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          7: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          8: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
********** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            split#(@m) -> c_39(split#1#(@m))
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_30) = {1},
          uargs(c_39) = {1},
          uargs(c_40) = {1},
          uargs(c_42) = {1},
          uargs(c_48) = {1},
          uargs(c_49) = {1,2},
          uargs(c_51) = {1},
          uargs(c_52) = {1}
        
        Following symbols are considered usable:
          {split,split#1,split#2,split#3,#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#,attach#1#
          ,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
          ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
          ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
          ,transpose#2#,transpose#3#,transpose'#}
        TcT has computed the following interpretation:
                         p(#0) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#abs) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#add) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#mult) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(#natmult) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#neg) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(#pos) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#pred) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(#s) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#succ) = [0]                          
                                 [0]                          
                                 [0]                          
                          p(*) = [0]                          
                                 [0]                          
                                 [0]                          
                          p(+) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(::) = [0 1 1]      [1 0 0]      [0]
                                 [0 0 0] x1 + [0 1 1] x2 + [1]
                                 [0 0 0]      [0 0 0]      [1]
                     p(attach) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(attach#1) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(attach#2) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(lineMult) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(lineMult#1) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m1) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m2) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m3) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(m4) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(makeBase) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(makeBase#1) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(matrixMult) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult') = [0]                          
                                 [0]                          
                                 [0]                          
              p(matrixMult'#1) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult3) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMultList) = [0]                          
                                 [0]                          
                                 [0]                          
           p(matrixMultList#1) = [0]                          
                                 [0]                          
                                 [0]                          
              p(matrixMultOld) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mkBase) = [0]                          
                                 [0]                          
                                 [0]                          
                   p(mkBase#1) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(mult) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mult#1) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(mult#2) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(nil) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(split) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [1]             
                    p(split#1) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 0 0]      [1]             
                    p(split#2) = [0 1 1]      [1 0 0]      [0]
                                 [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [1]
                    p(split#3) = [1 0 1]      [0 1 1]      [1]
                                 [0 0 0] x1 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [1]
                   p(transAcc) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transAcc#1) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(transpose) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#1) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#2) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transpose#3) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transpose') = [0]                          
                                 [0]                          
                                 [0]                          
                    p(tuple#2) = [1 1 1]      [0]             
                                 [0 0 0] x2 + [0]             
                                 [0 0 0]      [1]             
                      p(#abs#) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(#add#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#mult#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(#natmult#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#pred#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(#succ#) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(*#) = [0]                          
                                 [0]                          
                                 [0]                          
                         p(+#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(attach#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(attach#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(attach#2#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(lineMult#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(lineMult#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m1#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m2#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m3#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(m4#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(makeBase#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(makeBase#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(matrixMult#) = [0]                          
                                 [0]                          
                                 [0]                          
               p(matrixMult'#) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMult'#1#) = [0]                          
                                 [0]                          
                                 [0]                          
               p(matrixMult3#) = [0]                          
                                 [0]                          
                                 [0]                          
            p(matrixMultList#) = [0]                          
                                 [0]                          
                                 [0]                          
          p(matrixMultList#1#) = [0]                          
                                 [0]                          
                                 [0]                          
             p(matrixMultOld#) = [1 1 1]      [1]             
                                 [1 0 1] x2 + [1]             
                                 [1 1 1]      [1]             
                    p(mkBase#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(mkBase#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                      p(mult#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(mult#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                    p(mult#2#) = [0]                          
                                 [0]                          
                                 [0]                          
                     p(split#) = [0 1 0]      [1]             
                                 [1 0 0] x1 + [0]             
                                 [0 0 1]      [1]             
                   p(split#1#) = [0 1 0]      [0]             
                                 [0 0 1] x1 + [0]             
                                 [0 1 1]      [1]             
                   p(split#2#) = [0 0 0]      [0 1 1]      [1]
                                 [0 0 1] x1 + [1 1 1] x2 + [0]
                                 [0 1 0]      [1 0 1]      [0]
                   p(split#3#) = [0]                          
                                 [0]                          
                                 [0]                          
                  p(transAcc#) = [0]                          
                                 [0]                          
                                 [0]                          
                p(transAcc#1#) = [0]                          
                                 [0]                          
                                 [0]                          
                 p(transpose#) = [1 1 0]      [1]             
                                 [1 0 0] x1 + [1]             
                                 [1 0 1]      [1]             
               p(transpose#1#) = [0 0 0]      [1 1 0]      [1]
                                 [0 0 1] x1 + [1 0 0] x2 + [1]
                                 [1 0 0]      [1 0 1]      [1]
               p(transpose#2#) = [1 0 0]      [0]             
                                 [0 0 1] x1 + [1]             
                                 [1 0 0]      [0]             
               p(transpose#3#) = [1 1 1]      [0]             
                                 [0 0 1] x1 + [1]             
                                 [1 1 1]      [1]             
                p(transpose'#) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_1) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_2) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_3) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_4) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_5) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_6) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_7) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_8) = [0]                          
                                 [0]                          
                                 [0]                          
                        p(c_9) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_10) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_11) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_12) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_13) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_14) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_15) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_16) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_17) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_18) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_19) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_20) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_21) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_22) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_23) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_24) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_25) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_26) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_27) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_28) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_29) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_30) = [1 0 0]      [0]             
                                 [0 1 0] x1 + [0]             
                                 [0 0 0]      [1]             
                       p(c_31) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_32) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_33) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_34) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_35) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_36) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_37) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_38) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_39) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [0]             
                                 [0 1 0]      [0]             
                       p(c_40) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [1]             
                                 [1 0 0]      [0]             
                       p(c_41) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_42) = [1 0 0]      [0]             
                                 [0 0 1] x1 + [0]             
                                 [0 1 1]      [0]             
                       p(c_43) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_44) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_45) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_46) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_47) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_48) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [1]             
                                 [0 1 0]      [0]             
                       p(c_49) = [1 0 0]      [1 0 0]      [0]
                                 [1 1 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 1 1]      [0]
                       p(c_50) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_51) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [1]             
                                 [0 0 0]      [0]             
                       p(c_52) = [1 0 0]      [0]             
                                 [0 0 0] x1 + [1]             
                                 [0 1 0]      [1]             
                       p(c_53) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_54) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_55) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_56) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_57) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_58) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_59) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_60) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_61) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_62) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_63) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_64) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_65) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_66) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_67) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_68) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_69) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_70) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_71) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_72) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_73) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_74) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_75) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_76) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_77) = [0]                          
                                 [0]                          
                                 [0]                          
                       p(c_78) = [0]                          
                                 [0]                          
                                 [0]                          
        
        Following rules are strictly oriented:
        split#(@m) = [0 1 0]      [1]  
                     [1 0 0] @m + [0]  
                     [0 0 1]      [1]  
                   > [0 1 0]      [0]  
                     [0 0 0] @m + [0]  
                     [0 0 1]      [0]  
                   = c_39(split#1#(@m))
        
        
        Following rules are (at-least) weakly oriented:
                 matrixMultOld#(@m1,@m2) =  [1 1 1]       [1]                            
                                            [1 0 1] @m2 + [1]                            
                                            [1 1 1]       [1]                            
                                         >= [1 1 0]       [1]                            
                                            [1 0 0] @m2 + [1]                            
                                            [0 0 0]       [1]                            
                                         =  c_30(transpose#(@m2))                        
        
                    split#1#(::(@l,@ls)) =  [0 1 1]       [1]                            
                                            [0 0 0] @ls + [1]                            
                                            [0 1 1]       [3]                            
                                         >= [0 1 1]       [1]                            
                                            [0 0 0] @ls + [1]                            
                                            [0 1 1]       [1]                            
                                         =  c_40(split#2#(@l,@ls))                       
        
                split#2#(::(@x,@xs),@ls) =  [0 1 1]       [0 0 0]       [1]              
                                            [1 1 1] @ls + [0 0 0] @xs + [1]              
                                            [1 0 1]       [0 1 1]       [1]              
                                         >= [0 1 0]       [1]                            
                                            [0 0 1] @ls + [1]                            
                                            [1 0 1]       [1]                            
                                         =  c_42(split#(@ls))                            
        
                          transpose#(@m) =  [1 1 0]      [1]                             
                                            [1 0 0] @m + [1]                             
                                            [1 0 1]      [1]                             
                                         >= [1 1 0]      [1]                             
                                            [0 0 0] @m + [1]                             
                                            [1 0 1]      [1]                             
                                         =  c_48(transpose#1#(@m,@m))                    
        
           transpose#1#(::(@xs,@xss),@m) =  [1 1 0]      [0 0 0]       [0 0 0]        [1]
                                            [1 0 0] @m + [0 0 0] @xs + [0 0 0] @xss + [2]
                                            [1 0 1]      [0 1 1]       [1 0 0]        [1]
                                         >= [1 1 0]      [1]                             
                                            [1 0 0] @m + [2]                             
                                            [1 0 1]      [1]                             
                                         =  c_49(transpose#2#(split(@m)),split#(@m))     
        
           transpose#2#(tuple#2(@l,@m')) =  [1 1 1]       [0]                            
                                            [0 0 0] @m' + [2]                            
                                            [1 1 1]       [0]                            
                                         >= [1 1 1]       [0]                            
                                            [0 0 0] @m' + [1]                            
                                            [0 0 0]       [0]                            
                                         =  c_51(transpose#3#(@m',@l))                   
        
             transpose#3#(::(@y,@ys),@l) =  [0 1 1]      [1 1 1]       [2]               
                                            [0 0 0] @y + [0 0 0] @ys + [2]               
                                            [0 1 1]      [1 1 1]       [3]               
                                         >= [0 1 1]      [1 1 1]       [2]               
                                            [0 0 0] @y + [0 0 0] @ys + [1]               
                                            [0 1 1]      [1 0 0]       [2]               
                                         =  c_52(transpose#(::(@y,@ys)))                 
        
                               split(@m) =  [1 0 0]      [0]                             
                                            [0 0 0] @m + [0]                             
                                            [0 0 0]      [1]                             
                                         >= [1 0 0]      [0]                             
                                            [0 0 0] @m + [0]                             
                                            [0 0 0]      [1]                             
                                         =  split#1(@m)                                  
        
                     split#1(::(@l,@ls)) =  [0 1 1]      [1 0 0]       [0]               
                                            [0 0 0] @l + [0 0 0] @ls + [0]               
                                            [0 0 0]      [0 0 0]       [1]               
                                         >= [0 1 1]      [1 0 0]       [0]               
                                            [0 0 0] @l + [0 0 0] @ls + [0]               
                                            [0 0 0]      [0 0 0]       [1]               
                                         =  split#2(@l,@ls)                              
        
                          split#1(nil()) =  [0]                                          
                                            [0]                                          
                                            [1]                                          
                                         >= [0]                                          
                                            [0]                                          
                                            [1]                                          
                                         =  tuple#2(nil(),nil())                         
        
                 split#2(::(@x,@xs),@ls) =  [1 0 0]       [0 1 1]       [2]              
                                            [0 0 0] @ls + [0 0 0] @xs + [0]              
                                            [0 0 0]       [0 0 0]       [1]              
                                         >= [1 0 0]       [0 1 1]       [2]              
                                            [0 0 0] @ls + [0 0 0] @xs + [0]              
                                            [0 0 0]       [0 0 0]       [1]              
                                         =  split#3(split(@ls),@x,@xs)                   
        
                      split#2(nil(),@ls) =  [1 0 0]       [0]                            
                                            [0 0 0] @ls + [0]                            
                                            [0 0 0]       [1]                            
                                         >= [0]                                          
                                            [0]                                          
                                            [1]                                          
                                         =  tuple#2(nil(),nil())                         
        
        split#3(tuple#2(@ys,@m'),@x,@xs) =  [1 1 1]       [0 1 1]       [2]              
                                            [0 0 0] @m' + [0 0 0] @xs + [0]              
                                            [0 0 0]       [0 0 0]       [1]              
                                         >= [1 1 1]       [0 1 1]       [2]              
                                            [0 0 0] @m' + [0 0 0] @xs + [0]              
                                            [0 0 0]       [0 0 0]       [1]              
                                         =  tuple#2(::(@x,@ys),::(@xs,@m'))              
        
********** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

********** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
            split#(@m) -> c_39(split#1#(@m))
            split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
            split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
            transpose#(@m) -> c_48(transpose#1#(@m,@m))
            transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
            transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
            transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):5
          
          2:W:split#(@m) -> c_39(split#1#(@m))
             -->_1 split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls)):3
          
          3:W:split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
             -->_1 split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls)):4
          
          4:W:split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
             -->_1 split#(@m) -> c_39(split#1#(@m)):2
          
          5:W:transpose#(@m) -> c_48(transpose#1#(@m,@m))
             -->_1 transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m)):6
          
          6:W:transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
             -->_1 transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l)):7
             -->_2 split#(@m) -> c_39(split#1#(@m)):2
          
          7:W:transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
             -->_1 transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys))):8
          
          8:W:transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
             -->_1 transpose#(@m) -> c_48(transpose#1#(@m,@m)):5
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          1: matrixMultOld#(@m1,@m2) -> c_30(transpose#(@m2))
          5: transpose#(@m) -> c_48(transpose#1#(@m,@m))
          8: transpose#3#(::(@y,@ys),@l) -> c_52(transpose#(::(@y,@ys)))
          7: transpose#2#(tuple#2(@l,@m')) -> c_51(transpose#3#(@m',@l))
          6: transpose#1#(::(@xs,@xss),@m) -> c_49(transpose#2#(split(@m)),split#(@m))
          2: split#(@m) -> c_39(split#1#(@m))
          4: split#2#(::(@x,@xs),@ls) -> c_42(split#(@ls))
          3: split#1#(::(@l,@ls)) -> c_40(split#2#(@l,@ls))
********** Step 8.b:3.b:3.b:3.b:4.b:4.b:3.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            split(@m) -> split#1(@m)
            split#1(::(@l,@ls)) -> split#2(@l,@ls)
            split#1(nil()) -> tuple#2(nil(),nil())
            split#2(::(@x,@xs),@ls) -> split#3(split(@ls),@x,@xs)
            split#2(nil(),@ls) -> tuple#2(nil(),nil())
            split#3(tuple#2(@ys,@m'),@x,@xs) -> tuple#2(::(@x,@ys),::(@xs,@m'))
        - Signature:
            {#abs/1,#add/2,#mult/2,#natmult/2,#pred/1,#succ/1,*/2,+/2,attach/2,attach#1/2,attach#2/3,lineMult/2
            ,lineMult#1/2,m1/1,m2/1,m3/1,m4/1,makeBase/1,makeBase#1/1,matrixMult/2,matrixMult'/2,matrixMult'#1/2
            ,matrixMult3/3,matrixMultList/2,matrixMultList#1/2,matrixMultOld/2,mkBase/1,mkBase#1/1,mult/2,mult#1/2
            ,mult#2/3,split/1,split#1/1,split#2/2,split#3/3,transAcc/2,transAcc#1/2,transpose/1,transpose#1/2
            ,transpose#2/1,transpose#3/2,transpose'/1,#abs#/1,#add#/2,#mult#/2,#natmult#/2,#pred#/1,#succ#/1,*#/2,+#/2
            ,attach#/2,attach#1#/2,attach#2#/3,lineMult#/2,lineMult#1#/2,m1#/1,m2#/1,m3#/1,m4#/1,makeBase#/1
            ,makeBase#1#/1,matrixMult#/2,matrixMult'#/2,matrixMult'#1#/2,matrixMult3#/3,matrixMultList#/2
            ,matrixMultList#1#/2,matrixMultOld#/2,mkBase#/1,mkBase#1#/1,mult#/2,mult#1#/2,mult#2#/3,split#/1,split#1#/1
            ,split#2#/2,split#3#/3,transAcc#/2,transAcc#1#/2,transpose#/1,transpose#1#/2,transpose#2#/1,transpose#3#/2
            ,transpose'#/1} / {#0/0,#neg/1,#pos/1,#s/1,::/2,nil/0,tuple#2/2,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/1,c_7/1
            ,c_8/1,c_9/0,c_10/1,c_11/0,c_12/1,c_13/2,c_14/0,c_15/6,c_16/6,c_17/8,c_18/4,c_19/1,c_20/1,c_21/0,c_22/1
            ,c_23/1,c_24/1,c_25/0,c_26/2,c_27/1,c_28/1,c_29/0,c_30/1,c_31/1,c_32/1,c_33/0,c_34/1,c_35/1,c_36/1,c_37/1
            ,c_38/1,c_39/1,c_40/1,c_41/0,c_42/1,c_43/0,c_44/0,c_45/1,c_46/1,c_47/0,c_48/1,c_49/2,c_50/0,c_51/1,c_52/1
            ,c_53/0,c_54/1,c_55/0,c_56/1,c_57/2,c_58/1,c_59/2,c_60/0,c_61/0,c_62/0,c_63/0,c_64/1,c_65/1,c_66/0,c_67/1
            ,c_68/1,c_69/0,c_70/2,c_71/0,c_72/0,c_73/0,c_74/0,c_75/0,c_76/0,c_77/0,c_78/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#mult#,#natmult#,#pred#,#succ#,*#,+#,attach#
            ,attach#1#,attach#2#,lineMult#,lineMult#1#,m1#,m2#,m3#,m4#,makeBase#,makeBase#1#,matrixMult#,matrixMult'#
            ,matrixMult'#1#,matrixMult3#,matrixMultList#,matrixMultList#1#,matrixMultOld#,mkBase#,mkBase#1#,mult#
            ,mult#1#,mult#2#,split#,split#1#,split#2#,split#3#,transAcc#,transAcc#1#,transpose#,transpose#1#
            ,transpose#2#,transpose#3#,transpose'#} and constructors {#0,#neg,#pos,#s,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^5))