WORST_CASE(?,O(n^2))
* Step 1: DependencyPairs WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            #abs(#0()) -> #0()
            #abs(#neg(@x)) -> #pos(@x)
            #abs(#pos(@x)) -> #pos(@x)
            #abs(#s(@x)) -> #pos(#s(@x))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            +(@x,@y) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #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,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs,#add,#and,#ckgt,#compare,#eq,#equal,#greater,#pred
            ,#succ,+,firstline,firstline#1,lcs,lcs#1,lcs#2,lcs#3,lcstable,lcstable#1,lcstable#2,lcstable#3,max,max#1
            ,newline,newline#1,newline#2,newline#3,newline#4,newline#5,newline#6,newline#7,right
            ,right#1} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + 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()
          #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          +#(@x,@y) -> c_7(#add#(@x,@y))
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          firstline#1#(nil()) -> c_10()
          lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          lcs#1#(@m) -> c_12(lcs#2#(@m))
          lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          lcs#2#(nil()) -> c_14(#abs#(#0()))
          lcs#3#(::(@len,@_@1)) -> c_15()
          lcs#3#(nil()) -> c_16(#abs#(#0()))
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          lcstable#3#(nil(),@l2,@x) -> c_22()
          max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          max#1#(#false(),@a,@b) -> c_24()
          max#1#(#true(),@a,@b) -> c_25()
          newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          newline#1#(nil(),@lastline,@y) -> c_28()
          newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                           ,@belowVal
                                                                           ,@lastline'
                                                                           ,@x
                                                                           ,@y)
                                                                ,newline#(@y,@lastline',@xs))
          newline#2#(nil(),@x,@xs,@y) -> c_30()
          newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                            ,right#(@nl))
          newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                 ,@belowVal
                                                                                 ,@nl
                                                                                 ,@rightVal
                                                                                 ,@x
                                                                                 ,@y)
                                                                      ,right#(@lastline'))
          newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                         ,@belowVal
                                                                                         ,@diagVal
                                                                                         ,@rightVal)
                                                                               ,@nl)
                                                                    ,newline#7#(#equal(@x,@y)
                                                                               ,@belowVal
                                                                               ,@diagVal
                                                                               ,@rightVal)
                                                                    ,#equal#(@x,@y))
          newline#6#(@elem,@nl) -> c_34()
          newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          right#(@l) -> c_37(right#1#(@l))
          right#1#(::(@x,@xs)) -> c_38()
          right#1#(nil()) -> c_39(#abs#(#0()))
        Weak DPs
          #add#(#0(),@y) -> c_40()
          #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          #and#(#false(),#false()) -> c_45()
          #and#(#false(),#true()) -> c_46()
          #and#(#true(),#false()) -> c_47()
          #and#(#true(),#true()) -> c_48()
          #ckgt#(#EQ()) -> c_49()
          #ckgt#(#GT()) -> c_50()
          #ckgt#(#LT()) -> c_51()
          #compare#(#0(),#0()) -> c_52()
          #compare#(#0(),#neg(@y)) -> c_53()
          #compare#(#0(),#pos(@y)) -> c_54()
          #compare#(#0(),#s(@y)) -> c_55()
          #compare#(#neg(@x),#0()) -> c_56()
          #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          #compare#(#neg(@x),#pos(@y)) -> c_58()
          #compare#(#pos(@x),#0()) -> c_59()
          #compare#(#pos(@x),#neg(@y)) -> c_60()
          #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          #compare#(#s(@x),#0()) -> c_62()
          #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          #eq#(#0(),#0()) -> c_64()
          #eq#(#0(),#neg(@y)) -> c_65()
          #eq#(#0(),#pos(@y)) -> c_66()
          #eq#(#0(),#s(@y)) -> c_67()
          #eq#(#neg(@x),#0()) -> c_68()
          #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          #eq#(#neg(@x),#pos(@y)) -> c_70()
          #eq#(#pos(@x),#0()) -> c_71()
          #eq#(#pos(@x),#neg(@y)) -> c_72()
          #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          #eq#(#s(@x),#0()) -> c_74()
          #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                   ,#eq#(@x_1,@y_1)
                                                   ,#eq#(@x_2,@y_2))
          #eq#(::(@x_1,@x_2),nil()) -> c_77()
          #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          #eq#(nil(),nil()) -> c_79()
          #pred#(#0()) -> c_80()
          #pred#(#neg(#s(@x))) -> c_81()
          #pred#(#pos(#s(#0()))) -> c_82()
          #pred#(#pos(#s(#s(@x)))) -> c_83()
          #succ#(#0()) -> c_84()
          #succ#(#neg(#s(#0()))) -> c_85()
          #succ#(#neg(#s(#s(@x)))) -> c_86()
          #succ#(#pos(#s(@x))) -> c_87()
        
        and mark the set of starting terms.
* Step 2: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            #abs#(#0()) -> c_1()
            #abs#(#neg(@x)) -> c_2()
            #abs#(#pos(@x)) -> c_3()
            #abs#(#s(@x)) -> c_4()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            firstline#1#(nil()) -> c_10()
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - Weak DPs:
            #add#(#0(),@y) -> c_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,2,3,4,5,6,7,10,15,22,24,25,28,30,34,38}
        by application of
          Pre({1,2,3,4,5,6,7,10,15,22,24,25,28,30,34,38}) = {8,9,13,14,16,20,23,26,27,33,36,37,39}.
        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: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          6: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          7: +#(@x,@y) -> c_7(#add#(@x,@y))
          8: firstline#(@l) -> c_8(firstline#1#(@l))
          9: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          10: firstline#1#(nil()) -> c_10()
          11: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          12: lcs#1#(@m) -> c_12(lcs#2#(@m))
          13: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          14: lcs#2#(nil()) -> c_14(#abs#(#0()))
          15: lcs#3#(::(@len,@_@1)) -> c_15()
          16: lcs#3#(nil()) -> c_16(#abs#(#0()))
          17: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          18: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          19: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          20: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          21: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          22: lcstable#3#(nil(),@l2,@x) -> c_22()
          23: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          24: max#1#(#false(),@a,@b) -> c_24()
          25: max#1#(#true(),@a,@b) -> c_25()
          26: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          27: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          28: newline#1#(nil(),@lastline,@y) -> c_28()
          29: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          30: newline#2#(nil(),@x,@xs,@y) -> c_30()
          31: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          32: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          33: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          34: newline#6#(@elem,@nl) -> c_34()
          35: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          36: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          37: right#(@l) -> c_37(right#1#(@l))
          38: right#1#(::(@x,@xs)) -> c_38()
          39: right#1#(nil()) -> c_39(#abs#(#0()))
          40: #add#(#0(),@y) -> c_40()
          41: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          42: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          43: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          44: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          45: #and#(#false(),#false()) -> c_45()
          46: #and#(#false(),#true()) -> c_46()
          47: #and#(#true(),#false()) -> c_47()
          48: #and#(#true(),#true()) -> c_48()
          49: #ckgt#(#EQ()) -> c_49()
          50: #ckgt#(#GT()) -> c_50()
          51: #ckgt#(#LT()) -> c_51()
          52: #compare#(#0(),#0()) -> c_52()
          53: #compare#(#0(),#neg(@y)) -> c_53()
          54: #compare#(#0(),#pos(@y)) -> c_54()
          55: #compare#(#0(),#s(@y)) -> c_55()
          56: #compare#(#neg(@x),#0()) -> c_56()
          57: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          58: #compare#(#neg(@x),#pos(@y)) -> c_58()
          59: #compare#(#pos(@x),#0()) -> c_59()
          60: #compare#(#pos(@x),#neg(@y)) -> c_60()
          61: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          62: #compare#(#s(@x),#0()) -> c_62()
          63: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          64: #eq#(#0(),#0()) -> c_64()
          65: #eq#(#0(),#neg(@y)) -> c_65()
          66: #eq#(#0(),#pos(@y)) -> c_66()
          67: #eq#(#0(),#s(@y)) -> c_67()
          68: #eq#(#neg(@x),#0()) -> c_68()
          69: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          70: #eq#(#neg(@x),#pos(@y)) -> c_70()
          71: #eq#(#pos(@x),#0()) -> c_71()
          72: #eq#(#pos(@x),#neg(@y)) -> c_72()
          73: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          74: #eq#(#s(@x),#0()) -> c_74()
          75: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          76: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          77: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          78: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          79: #eq#(nil(),nil()) -> c_79()
          80: #pred#(#0()) -> c_80()
          81: #pred#(#neg(#s(@x))) -> c_81()
          82: #pred#(#pos(#s(#0()))) -> c_82()
          83: #pred#(#pos(#s(#s(@x)))) -> c_83()
          84: #succ#(#0()) -> c_84()
          85: #succ#(#neg(#s(#0()))) -> c_85()
          86: #succ#(#neg(#s(#s(@x)))) -> c_86()
          87: #succ#(#pos(#s(@x))) -> c_87()
* Step 3: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#6#(@elem,@nl) -> c_34()
            right#1#(::(@x,@xs)) -> c_38()
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {6,7,13,21,23}
        by application of
          Pre({6,7,13,21,23}) = {4,5,19,20,22}.
        Here rules are labelled as follows:
          1: firstline#(@l) -> c_8(firstline#1#(@l))
          2: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          3: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          4: lcs#1#(@m) -> c_12(lcs#2#(@m))
          5: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          6: lcs#2#(nil()) -> c_14(#abs#(#0()))
          7: lcs#3#(nil()) -> c_16(#abs#(#0()))
          8: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          9: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          10: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          11: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          12: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          13: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          14: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          15: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          16: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          17: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          18: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          19: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          20: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          21: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          22: right#(@l) -> c_37(right#1#(@l))
          23: right#1#(nil()) -> c_39(#abs#(#0()))
          24: #abs#(#0()) -> c_1()
          25: #abs#(#neg(@x)) -> c_2()
          26: #abs#(#pos(@x)) -> c_3()
          27: #abs#(#s(@x)) -> c_4()
          28: #add#(#0(),@y) -> c_40()
          29: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          30: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          31: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          32: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          33: #and#(#false(),#false()) -> c_45()
          34: #and#(#false(),#true()) -> c_46()
          35: #and#(#true(),#false()) -> c_47()
          36: #and#(#true(),#true()) -> c_48()
          37: #ckgt#(#EQ()) -> c_49()
          38: #ckgt#(#GT()) -> c_50()
          39: #ckgt#(#LT()) -> c_51()
          40: #compare#(#0(),#0()) -> c_52()
          41: #compare#(#0(),#neg(@y)) -> c_53()
          42: #compare#(#0(),#pos(@y)) -> c_54()
          43: #compare#(#0(),#s(@y)) -> c_55()
          44: #compare#(#neg(@x),#0()) -> c_56()
          45: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          46: #compare#(#neg(@x),#pos(@y)) -> c_58()
          47: #compare#(#pos(@x),#0()) -> c_59()
          48: #compare#(#pos(@x),#neg(@y)) -> c_60()
          49: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          50: #compare#(#s(@x),#0()) -> c_62()
          51: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          52: #eq#(#0(),#0()) -> c_64()
          53: #eq#(#0(),#neg(@y)) -> c_65()
          54: #eq#(#0(),#pos(@y)) -> c_66()
          55: #eq#(#0(),#s(@y)) -> c_67()
          56: #eq#(#neg(@x),#0()) -> c_68()
          57: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          58: #eq#(#neg(@x),#pos(@y)) -> c_70()
          59: #eq#(#pos(@x),#0()) -> c_71()
          60: #eq#(#pos(@x),#neg(@y)) -> c_72()
          61: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          62: #eq#(#s(@x),#0()) -> c_74()
          63: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          64: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          65: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          66: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          67: #eq#(nil(),nil()) -> c_79()
          68: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          69: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          70: #pred#(#0()) -> c_80()
          71: #pred#(#neg(#s(@x))) -> c_81()
          72: #pred#(#pos(#s(#0()))) -> c_82()
          73: #pred#(#pos(#s(#s(@x)))) -> c_83()
          74: #succ#(#0()) -> c_84()
          75: #succ#(#neg(#s(#0()))) -> c_85()
          76: #succ#(#neg(#s(#s(@x)))) -> c_86()
          77: #succ#(#pos(#s(@x))) -> c_87()
          78: +#(@x,@y) -> c_7(#add#(@x,@y))
          79: firstline#1#(nil()) -> c_10()
          80: lcs#3#(::(@len,@_@1)) -> c_15()
          81: lcstable#3#(nil(),@l2,@x) -> c_22()
          82: max#1#(#false(),@a,@b) -> c_24()
          83: max#1#(#true(),@a,@b) -> c_25()
          84: newline#1#(nil(),@lastline,@y) -> c_28()
          85: newline#2#(nil(),@x,@xs,@y) -> c_30()
          86: newline#6#(@elem,@nl) -> c_34()
          87: right#1#(::(@x,@xs)) -> c_38()
* Step 4: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            right#(@l) -> c_37(right#1#(@l))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {5,17,18}
        by application of
          Pre({5,17,18}) = {4,14,15,16}.
        Here rules are labelled as follows:
          1: firstline#(@l) -> c_8(firstline#1#(@l))
          2: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          3: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          4: lcs#1#(@m) -> c_12(lcs#2#(@m))
          5: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          6: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          7: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          8: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          9: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          10: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          11: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          12: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          13: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          14: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          15: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          16: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          17: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          18: right#(@l) -> c_37(right#1#(@l))
          19: #abs#(#0()) -> c_1()
          20: #abs#(#neg(@x)) -> c_2()
          21: #abs#(#pos(@x)) -> c_3()
          22: #abs#(#s(@x)) -> c_4()
          23: #add#(#0(),@y) -> c_40()
          24: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          25: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          26: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          27: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          28: #and#(#false(),#false()) -> c_45()
          29: #and#(#false(),#true()) -> c_46()
          30: #and#(#true(),#false()) -> c_47()
          31: #and#(#true(),#true()) -> c_48()
          32: #ckgt#(#EQ()) -> c_49()
          33: #ckgt#(#GT()) -> c_50()
          34: #ckgt#(#LT()) -> c_51()
          35: #compare#(#0(),#0()) -> c_52()
          36: #compare#(#0(),#neg(@y)) -> c_53()
          37: #compare#(#0(),#pos(@y)) -> c_54()
          38: #compare#(#0(),#s(@y)) -> c_55()
          39: #compare#(#neg(@x),#0()) -> c_56()
          40: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          41: #compare#(#neg(@x),#pos(@y)) -> c_58()
          42: #compare#(#pos(@x),#0()) -> c_59()
          43: #compare#(#pos(@x),#neg(@y)) -> c_60()
          44: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          45: #compare#(#s(@x),#0()) -> c_62()
          46: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          47: #eq#(#0(),#0()) -> c_64()
          48: #eq#(#0(),#neg(@y)) -> c_65()
          49: #eq#(#0(),#pos(@y)) -> c_66()
          50: #eq#(#0(),#s(@y)) -> c_67()
          51: #eq#(#neg(@x),#0()) -> c_68()
          52: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          53: #eq#(#neg(@x),#pos(@y)) -> c_70()
          54: #eq#(#pos(@x),#0()) -> c_71()
          55: #eq#(#pos(@x),#neg(@y)) -> c_72()
          56: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          57: #eq#(#s(@x),#0()) -> c_74()
          58: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          59: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          60: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          61: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          62: #eq#(nil(),nil()) -> c_79()
          63: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          64: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          65: #pred#(#0()) -> c_80()
          66: #pred#(#neg(#s(@x))) -> c_81()
          67: #pred#(#pos(#s(#0()))) -> c_82()
          68: #pred#(#pos(#s(#s(@x)))) -> c_83()
          69: #succ#(#0()) -> c_84()
          70: #succ#(#neg(#s(#0()))) -> c_85()
          71: #succ#(#neg(#s(#s(@x)))) -> c_86()
          72: #succ#(#pos(#s(@x))) -> c_87()
          73: +#(@x,@y) -> c_7(#add#(@x,@y))
          74: firstline#1#(nil()) -> c_10()
          75: lcs#2#(nil()) -> c_14(#abs#(#0()))
          76: lcs#3#(::(@len,@_@1)) -> c_15()
          77: lcs#3#(nil()) -> c_16(#abs#(#0()))
          78: lcstable#3#(nil(),@l2,@x) -> c_22()
          79: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          80: max#1#(#false(),@a,@b) -> c_24()
          81: max#1#(#true(),@a,@b) -> c_25()
          82: newline#1#(nil(),@lastline,@y) -> c_28()
          83: newline#2#(nil(),@x,@xs,@y) -> c_30()
          84: newline#6#(@elem,@nl) -> c_34()
          85: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          86: right#1#(::(@x,@xs)) -> c_38()
          87: right#1#(nil()) -> c_39(#abs#(#0()))
* Step 5: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {4,15}
        by application of
          Pre({4,15}) = {3,14}.
        Here rules are labelled as follows:
          1: firstline#(@l) -> c_8(firstline#1#(@l))
          2: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          3: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          4: lcs#1#(@m) -> c_12(lcs#2#(@m))
          5: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          6: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          7: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          8: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          9: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          10: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          11: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          12: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          13: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          14: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          15: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          16: #abs#(#0()) -> c_1()
          17: #abs#(#neg(@x)) -> c_2()
          18: #abs#(#pos(@x)) -> c_3()
          19: #abs#(#s(@x)) -> c_4()
          20: #add#(#0(),@y) -> c_40()
          21: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          22: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          23: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          24: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          25: #and#(#false(),#false()) -> c_45()
          26: #and#(#false(),#true()) -> c_46()
          27: #and#(#true(),#false()) -> c_47()
          28: #and#(#true(),#true()) -> c_48()
          29: #ckgt#(#EQ()) -> c_49()
          30: #ckgt#(#GT()) -> c_50()
          31: #ckgt#(#LT()) -> c_51()
          32: #compare#(#0(),#0()) -> c_52()
          33: #compare#(#0(),#neg(@y)) -> c_53()
          34: #compare#(#0(),#pos(@y)) -> c_54()
          35: #compare#(#0(),#s(@y)) -> c_55()
          36: #compare#(#neg(@x),#0()) -> c_56()
          37: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          38: #compare#(#neg(@x),#pos(@y)) -> c_58()
          39: #compare#(#pos(@x),#0()) -> c_59()
          40: #compare#(#pos(@x),#neg(@y)) -> c_60()
          41: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          42: #compare#(#s(@x),#0()) -> c_62()
          43: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          44: #eq#(#0(),#0()) -> c_64()
          45: #eq#(#0(),#neg(@y)) -> c_65()
          46: #eq#(#0(),#pos(@y)) -> c_66()
          47: #eq#(#0(),#s(@y)) -> c_67()
          48: #eq#(#neg(@x),#0()) -> c_68()
          49: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          50: #eq#(#neg(@x),#pos(@y)) -> c_70()
          51: #eq#(#pos(@x),#0()) -> c_71()
          52: #eq#(#pos(@x),#neg(@y)) -> c_72()
          53: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          54: #eq#(#s(@x),#0()) -> c_74()
          55: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          56: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          57: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          58: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          59: #eq#(nil(),nil()) -> c_79()
          60: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          61: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          62: #pred#(#0()) -> c_80()
          63: #pred#(#neg(#s(@x))) -> c_81()
          64: #pred#(#pos(#s(#0()))) -> c_82()
          65: #pred#(#pos(#s(#s(@x)))) -> c_83()
          66: #succ#(#0()) -> c_84()
          67: #succ#(#neg(#s(#0()))) -> c_85()
          68: #succ#(#neg(#s(#s(@x)))) -> c_86()
          69: #succ#(#pos(#s(@x))) -> c_87()
          70: +#(@x,@y) -> c_7(#add#(@x,@y))
          71: firstline#1#(nil()) -> c_10()
          72: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          73: lcs#2#(nil()) -> c_14(#abs#(#0()))
          74: lcs#3#(::(@len,@_@1)) -> c_15()
          75: lcs#3#(nil()) -> c_16(#abs#(#0()))
          76: lcstable#3#(nil(),@l2,@x) -> c_22()
          77: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          78: max#1#(#false(),@a,@b) -> c_24()
          79: max#1#(#true(),@a,@b) -> c_25()
          80: newline#1#(nil(),@lastline,@y) -> c_28()
          81: newline#2#(nil(),@x,@xs,@y) -> c_30()
          82: newline#6#(@elem,@nl) -> c_34()
          83: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          84: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          85: right#(@l) -> c_37(right#1#(@l))
          86: right#1#(::(@x,@xs)) -> c_38()
          87: right#1#(nil()) -> c_39(#abs#(#0()))
* Step 6: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {13}
        by application of
          Pre({13}) = {12}.
        Here rules are labelled as follows:
          1: firstline#(@l) -> c_8(firstline#1#(@l))
          2: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          3: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          4: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          5: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          6: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          7: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          8: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          9: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          10: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          11: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          12: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          13: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          14: #abs#(#0()) -> c_1()
          15: #abs#(#neg(@x)) -> c_2()
          16: #abs#(#pos(@x)) -> c_3()
          17: #abs#(#s(@x)) -> c_4()
          18: #add#(#0(),@y) -> c_40()
          19: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          20: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          21: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          22: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          23: #and#(#false(),#false()) -> c_45()
          24: #and#(#false(),#true()) -> c_46()
          25: #and#(#true(),#false()) -> c_47()
          26: #and#(#true(),#true()) -> c_48()
          27: #ckgt#(#EQ()) -> c_49()
          28: #ckgt#(#GT()) -> c_50()
          29: #ckgt#(#LT()) -> c_51()
          30: #compare#(#0(),#0()) -> c_52()
          31: #compare#(#0(),#neg(@y)) -> c_53()
          32: #compare#(#0(),#pos(@y)) -> c_54()
          33: #compare#(#0(),#s(@y)) -> c_55()
          34: #compare#(#neg(@x),#0()) -> c_56()
          35: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          36: #compare#(#neg(@x),#pos(@y)) -> c_58()
          37: #compare#(#pos(@x),#0()) -> c_59()
          38: #compare#(#pos(@x),#neg(@y)) -> c_60()
          39: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          40: #compare#(#s(@x),#0()) -> c_62()
          41: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          42: #eq#(#0(),#0()) -> c_64()
          43: #eq#(#0(),#neg(@y)) -> c_65()
          44: #eq#(#0(),#pos(@y)) -> c_66()
          45: #eq#(#0(),#s(@y)) -> c_67()
          46: #eq#(#neg(@x),#0()) -> c_68()
          47: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          48: #eq#(#neg(@x),#pos(@y)) -> c_70()
          49: #eq#(#pos(@x),#0()) -> c_71()
          50: #eq#(#pos(@x),#neg(@y)) -> c_72()
          51: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          52: #eq#(#s(@x),#0()) -> c_74()
          53: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          54: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          55: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          56: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          57: #eq#(nil(),nil()) -> c_79()
          58: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          59: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          60: #pred#(#0()) -> c_80()
          61: #pred#(#neg(#s(@x))) -> c_81()
          62: #pred#(#pos(#s(#0()))) -> c_82()
          63: #pred#(#pos(#s(#s(@x)))) -> c_83()
          64: #succ#(#0()) -> c_84()
          65: #succ#(#neg(#s(#0()))) -> c_85()
          66: #succ#(#neg(#s(#s(@x)))) -> c_86()
          67: #succ#(#pos(#s(@x))) -> c_87()
          68: +#(@x,@y) -> c_7(#add#(@x,@y))
          69: firstline#1#(nil()) -> c_10()
          70: lcs#1#(@m) -> c_12(lcs#2#(@m))
          71: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          72: lcs#2#(nil()) -> c_14(#abs#(#0()))
          73: lcs#3#(::(@len,@_@1)) -> c_15()
          74: lcs#3#(nil()) -> c_16(#abs#(#0()))
          75: lcstable#3#(nil(),@l2,@x) -> c_22()
          76: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          77: max#1#(#false(),@a,@b) -> c_24()
          78: max#1#(#true(),@a,@b) -> c_25()
          79: newline#1#(nil(),@lastline,@y) -> c_28()
          80: newline#2#(nil(),@x,@xs,@y) -> c_30()
          81: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          82: newline#6#(@elem,@nl) -> c_34()
          83: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          84: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          85: right#(@l) -> c_37(right#1#(@l))
          86: right#1#(::(@x,@xs)) -> c_38()
          87: right#1#(nil()) -> c_39(#abs#(#0()))
* Step 7: PredecessorEstimation WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {12}
        by application of
          Pre({12}) = {11}.
        Here rules are labelled as follows:
          1: firstline#(@l) -> c_8(firstline#1#(@l))
          2: firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
          3: lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
          4: lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          5: lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          6: lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          7: lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          8: lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          9: newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          10: newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          11: newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                               ,@belowVal
                                                                               ,@lastline'
                                                                               ,@x
                                                                               ,@y)
                                                                    ,newline#(@y,@lastline',@xs))
          12: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          13: #abs#(#0()) -> c_1()
          14: #abs#(#neg(@x)) -> c_2()
          15: #abs#(#pos(@x)) -> c_3()
          16: #abs#(#s(@x)) -> c_4()
          17: #add#(#0(),@y) -> c_40()
          18: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          19: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          20: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          21: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          22: #and#(#false(),#false()) -> c_45()
          23: #and#(#false(),#true()) -> c_46()
          24: #and#(#true(),#false()) -> c_47()
          25: #and#(#true(),#true()) -> c_48()
          26: #ckgt#(#EQ()) -> c_49()
          27: #ckgt#(#GT()) -> c_50()
          28: #ckgt#(#LT()) -> c_51()
          29: #compare#(#0(),#0()) -> c_52()
          30: #compare#(#0(),#neg(@y)) -> c_53()
          31: #compare#(#0(),#pos(@y)) -> c_54()
          32: #compare#(#0(),#s(@y)) -> c_55()
          33: #compare#(#neg(@x),#0()) -> c_56()
          34: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          35: #compare#(#neg(@x),#pos(@y)) -> c_58()
          36: #compare#(#pos(@x),#0()) -> c_59()
          37: #compare#(#pos(@x),#neg(@y)) -> c_60()
          38: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          39: #compare#(#s(@x),#0()) -> c_62()
          40: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          41: #eq#(#0(),#0()) -> c_64()
          42: #eq#(#0(),#neg(@y)) -> c_65()
          43: #eq#(#0(),#pos(@y)) -> c_66()
          44: #eq#(#0(),#s(@y)) -> c_67()
          45: #eq#(#neg(@x),#0()) -> c_68()
          46: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          47: #eq#(#neg(@x),#pos(@y)) -> c_70()
          48: #eq#(#pos(@x),#0()) -> c_71()
          49: #eq#(#pos(@x),#neg(@y)) -> c_72()
          50: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          51: #eq#(#s(@x),#0()) -> c_74()
          52: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          53: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          54: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          55: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          56: #eq#(nil(),nil()) -> c_79()
          57: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          58: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          59: #pred#(#0()) -> c_80()
          60: #pred#(#neg(#s(@x))) -> c_81()
          61: #pred#(#pos(#s(#0()))) -> c_82()
          62: #pred#(#pos(#s(#s(@x)))) -> c_83()
          63: #succ#(#0()) -> c_84()
          64: #succ#(#neg(#s(#0()))) -> c_85()
          65: #succ#(#neg(#s(#s(@x)))) -> c_86()
          66: #succ#(#pos(#s(@x))) -> c_87()
          67: +#(@x,@y) -> c_7(#add#(@x,@y))
          68: firstline#1#(nil()) -> c_10()
          69: lcs#1#(@m) -> c_12(lcs#2#(@m))
          70: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          71: lcs#2#(nil()) -> c_14(#abs#(#0()))
          72: lcs#3#(::(@len,@_@1)) -> c_15()
          73: lcs#3#(nil()) -> c_16(#abs#(#0()))
          74: lcstable#3#(nil(),@l2,@x) -> c_22()
          75: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          76: max#1#(#false(),@a,@b) -> c_24()
          77: max#1#(#true(),@a,@b) -> c_25()
          78: newline#1#(nil(),@lastline,@y) -> c_28()
          79: newline#2#(nil(),@x,@xs,@y) -> c_30()
          80: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          81: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          82: newline#6#(@elem,@nl) -> c_34()
          83: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          84: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          85: right#(@l) -> c_37(right#1#(@l))
          86: right#1#(::(@x,@xs)) -> c_38()
          87: right#1#(nil()) -> c_39(#abs#(#0()))
* Step 8: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
        - 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_40()
            #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
            #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
            #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
            #and#(#false(),#false()) -> c_45()
            #and#(#false(),#true()) -> c_46()
            #and#(#true(),#false()) -> c_47()
            #and#(#true(),#true()) -> c_48()
            #ckgt#(#EQ()) -> c_49()
            #ckgt#(#GT()) -> c_50()
            #ckgt#(#LT()) -> c_51()
            #compare#(#0(),#0()) -> c_52()
            #compare#(#0(),#neg(@y)) -> c_53()
            #compare#(#0(),#pos(@y)) -> c_54()
            #compare#(#0(),#s(@y)) -> c_55()
            #compare#(#neg(@x),#0()) -> c_56()
            #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_58()
            #compare#(#pos(@x),#0()) -> c_59()
            #compare#(#pos(@x),#neg(@y)) -> c_60()
            #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_62()
            #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_64()
            #eq#(#0(),#neg(@y)) -> c_65()
            #eq#(#0(),#pos(@y)) -> c_66()
            #eq#(#0(),#s(@y)) -> c_67()
            #eq#(#neg(@x),#0()) -> c_68()
            #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_70()
            #eq#(#pos(@x),#0()) -> c_71()
            #eq#(#pos(@x),#neg(@y)) -> c_72()
            #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_74()
            #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_77()
            #eq#(nil(),::(@y_1,@y_2)) -> c_78()
            #eq#(nil(),nil()) -> c_79()
            #equal#(@x,@y) -> c_5(#eq#(@x,@y))
            #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            #pred#(#0()) -> c_80()
            #pred#(#neg(#s(@x))) -> c_81()
            #pred#(#pos(#s(#0()))) -> c_82()
            #pred#(#pos(#s(#s(@x)))) -> c_83()
            #succ#(#0()) -> c_84()
            #succ#(#neg(#s(#0()))) -> c_85()
            #succ#(#neg(#s(#s(@x)))) -> c_86()
            #succ#(#pos(#s(@x))) -> c_87()
            +#(@x,@y) -> c_7(#add#(@x,@y))
            firstline#1#(nil()) -> c_10()
            lcs#1#(@m) -> c_12(lcs#2#(@m))
            lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
            lcs#2#(nil()) -> c_14(#abs#(#0()))
            lcs#3#(::(@len,@_@1)) -> c_15()
            lcs#3#(nil()) -> c_16(#abs#(#0()))
            lcstable#3#(nil(),@l2,@x) -> c_22()
            max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
            max#1#(#false(),@a,@b) -> c_24()
            max#1#(#true(),@a,@b) -> c_25()
            newline#1#(nil(),@lastline,@y) -> c_28()
            newline#2#(nil(),@x,@xs,@y) -> c_30()
            newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                              ,right#(@nl))
            newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                   ,@belowVal
                                                                                   ,@nl
                                                                                   ,@rightVal
                                                                                   ,@x
                                                                                   ,@y)
                                                                        ,right#(@lastline'))
            newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                           ,@belowVal
                                                                                           ,@diagVal
                                                                                           ,@rightVal)
                                                                                 ,@nl)
                                                                      ,newline#7#(#equal(@x,@y)
                                                                                 ,@belowVal
                                                                                 ,@diagVal
                                                                                 ,@rightVal)
                                                                      ,#equal#(@x,@y))
            newline#6#(@elem,@nl) -> c_34()
            newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
            newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
            right#(@l) -> c_37(right#1#(@l))
            right#1#(::(@x,@xs)) -> c_38()
            right#1#(nil()) -> c_39(#abs#(#0()))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:firstline#(@l) -> c_8(firstline#1#(@l))
             -->_1 firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs)):2
             -->_1 firstline#1#(nil()) -> c_10():67
          
          2:S:firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
             -->_1 #abs#(#0()) -> c_1():12
             -->_2 firstline#(@l) -> c_8(firstline#1#(@l)):1
          
          3:S:lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
             -->_1 lcs#1#(@m) -> c_12(lcs#2#(@m)):68
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
          
          4:S:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
             -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):6
             -->_1 lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2)):5
          
          5:S:lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
             -->_1 lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x)):7
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
          
          6:S:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
          
          7:S:lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
             -->_1 lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2)):8
             -->_1 lcstable#3#(nil(),@l2,@x) -> c_22():73
          
          8:S:lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
             -->_1 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
          
          9:S:newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
             -->_1 newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y)):10
             -->_1 newline#1#(nil(),@lastline,@y) -> c_28():77
          
          10:S:newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
             -->_1 newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                                    ,@belowVal
                                                                                    ,@lastline'
                                                                                    ,@x
                                                                                    ,@y)
                                                                         ,newline#(@y,@lastline',@xs)):11
             -->_1 newline#2#(nil(),@x,@xs,@y) -> c_30():78
          
          11:S:newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                                ,@belowVal
                                                                                ,@lastline'
                                                                                ,@x
                                                                                ,@y)
                                                                     ,newline#(@y,@lastline',@xs))
             -->_1 newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl)
                                                                                ,@belowVal
                                                                                ,@lastline'
                                                                                ,@nl
                                                                                ,@x
                                                                                ,@y)
                                                                     ,right#(@nl)):79
             -->_2 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
          
          12:W:#abs#(#0()) -> c_1()
             
          
          13:W:#abs#(#neg(@x)) -> c_2()
             
          
          14:W:#abs#(#pos(@x)) -> c_3()
             
          
          15:W:#abs#(#s(@x)) -> c_4()
             
          
          16:W:#add#(#0(),@y) -> c_40()
             
          
          17:W:#add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_83():61
             -->_1 #pred#(#pos(#s(#0()))) -> c_82():60
             -->_1 #pred#(#neg(#s(@x))) -> c_81():59
             -->_1 #pred#(#0()) -> c_80():58
          
          18:W:#add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):20
             -->_2 #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y)):19
             -->_1 #pred#(#pos(#s(#s(@x)))) -> c_83():61
             -->_1 #pred#(#pos(#s(#0()))) -> c_82():60
             -->_1 #pred#(#neg(#s(@x))) -> c_81():59
             -->_1 #pred#(#0()) -> c_80():58
          
          19:W:#add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_87():65
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_86():64
             -->_1 #succ#(#neg(#s(#0()))) -> c_85():63
             -->_1 #succ#(#0()) -> c_84():62
          
          20:W:#add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
             -->_1 #succ#(#pos(#s(@x))) -> c_87():65
             -->_1 #succ#(#neg(#s(#s(@x)))) -> c_86():64
             -->_1 #succ#(#neg(#s(#0()))) -> c_85():63
             -->_1 #succ#(#0()) -> c_84():62
             -->_2 #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):20
             -->_2 #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y)):19
          
          21:W:#and#(#false(),#false()) -> c_45()
             
          
          22:W:#and#(#false(),#true()) -> c_46()
             
          
          23:W:#and#(#true(),#false()) -> c_47()
             
          
          24:W:#and#(#true(),#true()) -> c_48()
             
          
          25:W:#ckgt#(#EQ()) -> c_49()
             
          
          26:W:#ckgt#(#GT()) -> c_50()
             
          
          27:W:#ckgt#(#LT()) -> c_51()
             
          
          28:W:#compare#(#0(),#0()) -> c_52()
             
          
          29:W:#compare#(#0(),#neg(@y)) -> c_53()
             
          
          30:W:#compare#(#0(),#pos(@y)) -> c_54()
             
          
          31:W:#compare#(#0(),#s(@y)) -> c_55()
             
          
          32:W:#compare#(#neg(@x),#0()) -> c_56()
             
          
          33:W:#compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y)):39
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y)):37
             -->_1 #compare#(#s(@x),#0()) -> c_62():38
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_60():36
             -->_1 #compare#(#pos(@x),#0()) -> c_59():35
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_58():34
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x)):33
             -->_1 #compare#(#neg(@x),#0()) -> c_56():32
             -->_1 #compare#(#0(),#s(@y)) -> c_55():31
             -->_1 #compare#(#0(),#pos(@y)) -> c_54():30
             -->_1 #compare#(#0(),#neg(@y)) -> c_53():29
             -->_1 #compare#(#0(),#0()) -> c_52():28
          
          34:W:#compare#(#neg(@x),#pos(@y)) -> c_58()
             
          
          35:W:#compare#(#pos(@x),#0()) -> c_59()
             
          
          36:W:#compare#(#pos(@x),#neg(@y)) -> c_60()
             
          
          37:W:#compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y)):39
             -->_1 #compare#(#s(@x),#0()) -> c_62():38
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y)):37
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_60():36
             -->_1 #compare#(#pos(@x),#0()) -> c_59():35
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_58():34
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x)):33
             -->_1 #compare#(#neg(@x),#0()) -> c_56():32
             -->_1 #compare#(#0(),#s(@y)) -> c_55():31
             -->_1 #compare#(#0(),#pos(@y)) -> c_54():30
             -->_1 #compare#(#0(),#neg(@y)) -> c_53():29
             -->_1 #compare#(#0(),#0()) -> c_52():28
          
          38:W:#compare#(#s(@x),#0()) -> c_62()
             
          
          39:W:#compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y)):39
             -->_1 #compare#(#s(@x),#0()) -> c_62():38
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y)):37
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_60():36
             -->_1 #compare#(#pos(@x),#0()) -> c_59():35
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_58():34
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x)):33
             -->_1 #compare#(#neg(@x),#0()) -> c_56():32
             -->_1 #compare#(#0(),#s(@y)) -> c_55():31
             -->_1 #compare#(#0(),#pos(@y)) -> c_54():30
             -->_1 #compare#(#0(),#neg(@y)) -> c_53():29
             -->_1 #compare#(#0(),#0()) -> c_52():28
          
          40:W:#eq#(#0(),#0()) -> c_64()
             
          
          41:W:#eq#(#0(),#neg(@y)) -> c_65()
             
          
          42:W:#eq#(#0(),#pos(@y)) -> c_66()
             
          
          43:W:#eq#(#0(),#s(@y)) -> c_67()
             
          
          44:W:#eq#(#neg(@x),#0()) -> c_68()
             
          
          45:W:#eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_1 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_1 #eq#(nil(),nil()) -> c_79():55
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_1 #eq#(#s(@x),#0()) -> c_74():50
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_1 #eq#(#pos(@x),#0()) -> c_71():47
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_1 #eq#(#neg(@x),#0()) -> c_68():44
             -->_1 #eq#(#0(),#s(@y)) -> c_67():43
             -->_1 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_1 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_1 #eq#(#0(),#0()) -> c_64():40
          
          46:W:#eq#(#neg(@x),#pos(@y)) -> c_70()
             
          
          47:W:#eq#(#pos(@x),#0()) -> c_71()
             
          
          48:W:#eq#(#pos(@x),#neg(@y)) -> c_72()
             
          
          49:W:#eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_1 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_1 #eq#(nil(),nil()) -> c_79():55
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_1 #eq#(#s(@x),#0()) -> c_74():50
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_1 #eq#(#pos(@x),#0()) -> c_71():47
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_1 #eq#(#neg(@x),#0()) -> c_68():44
             -->_1 #eq#(#0(),#s(@y)) -> c_67():43
             -->_1 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_1 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_1 #eq#(#0(),#0()) -> c_64():40
          
          50:W:#eq#(#s(@x),#0()) -> c_74()
             
          
          51:W:#eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_1 #eq#(nil(),nil()) -> c_79():55
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_1 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_1 #eq#(#s(@x),#0()) -> c_74():50
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_1 #eq#(#pos(@x),#0()) -> c_71():47
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_1 #eq#(#neg(@x),#0()) -> c_68():44
             -->_1 #eq#(#0(),#s(@y)) -> c_67():43
             -->_1 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_1 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_1 #eq#(#0(),#0()) -> c_64():40
          
          52:W:#eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
             -->_3 #eq#(nil(),nil()) -> c_79():55
             -->_2 #eq#(nil(),nil()) -> c_79():55
             -->_3 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_2 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_3 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_2 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_3 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_2 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_3 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_2 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_3 #eq#(#s(@x),#0()) -> c_74():50
             -->_2 #eq#(#s(@x),#0()) -> c_74():50
             -->_3 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_2 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_3 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_2 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_3 #eq#(#pos(@x),#0()) -> c_71():47
             -->_2 #eq#(#pos(@x),#0()) -> c_71():47
             -->_3 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_2 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_3 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_2 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_3 #eq#(#neg(@x),#0()) -> c_68():44
             -->_2 #eq#(#neg(@x),#0()) -> c_68():44
             -->_3 #eq#(#0(),#s(@y)) -> c_67():43
             -->_2 #eq#(#0(),#s(@y)) -> c_67():43
             -->_3 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_2 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_3 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_2 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_3 #eq#(#0(),#0()) -> c_64():40
             -->_2 #eq#(#0(),#0()) -> c_64():40
             -->_1 #and#(#true(),#true()) -> c_48():24
             -->_1 #and#(#true(),#false()) -> c_47():23
             -->_1 #and#(#false(),#true()) -> c_46():22
             -->_1 #and#(#false(),#false()) -> c_45():21
          
          53:W:#eq#(::(@x_1,@x_2),nil()) -> c_77()
             
          
          54:W:#eq#(nil(),::(@y_1,@y_2)) -> c_78()
             
          
          55:W:#eq#(nil(),nil()) -> c_79()
             
          
          56:W:#equal#(@x,@y) -> c_5(#eq#(@x,@y))
             -->_1 #eq#(nil(),nil()) -> c_79():55
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_78():54
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_77():53
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):52
             -->_1 #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y)):51
             -->_1 #eq#(#s(@x),#0()) -> c_74():50
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y)):49
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_72():48
             -->_1 #eq#(#pos(@x),#0()) -> c_71():47
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_70():46
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y)):45
             -->_1 #eq#(#neg(@x),#0()) -> c_68():44
             -->_1 #eq#(#0(),#s(@y)) -> c_67():43
             -->_1 #eq#(#0(),#pos(@y)) -> c_66():42
             -->_1 #eq#(#0(),#neg(@y)) -> c_65():41
             -->_1 #eq#(#0(),#0()) -> c_64():40
          
          57:W:#greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
             -->_2 #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y)):39
             -->_2 #compare#(#s(@x),#0()) -> c_62():38
             -->_2 #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y)):37
             -->_2 #compare#(#pos(@x),#neg(@y)) -> c_60():36
             -->_2 #compare#(#pos(@x),#0()) -> c_59():35
             -->_2 #compare#(#neg(@x),#pos(@y)) -> c_58():34
             -->_2 #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x)):33
             -->_2 #compare#(#neg(@x),#0()) -> c_56():32
             -->_2 #compare#(#0(),#s(@y)) -> c_55():31
             -->_2 #compare#(#0(),#pos(@y)) -> c_54():30
             -->_2 #compare#(#0(),#neg(@y)) -> c_53():29
             -->_2 #compare#(#0(),#0()) -> c_52():28
             -->_1 #ckgt#(#LT()) -> c_51():27
             -->_1 #ckgt#(#GT()) -> c_50():26
             -->_1 #ckgt#(#EQ()) -> c_49():25
          
          58:W:#pred#(#0()) -> c_80()
             
          
          59:W:#pred#(#neg(#s(@x))) -> c_81()
             
          
          60:W:#pred#(#pos(#s(#0()))) -> c_82()
             
          
          61:W:#pred#(#pos(#s(#s(@x)))) -> c_83()
             
          
          62:W:#succ#(#0()) -> c_84()
             
          
          63:W:#succ#(#neg(#s(#0()))) -> c_85()
             
          
          64:W:#succ#(#neg(#s(#s(@x)))) -> c_86()
             
          
          65:W:#succ#(#pos(#s(@x))) -> c_87()
             
          
          66:W:+#(@x,@y) -> c_7(#add#(@x,@y))
             -->_1 #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):20
             -->_1 #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y)):19
             -->_1 #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y)):18
             -->_1 #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y)):17
             -->_1 #add#(#0(),@y) -> c_40():16
          
          67:W:firstline#1#(nil()) -> c_10()
             
          
          68:W:lcs#1#(@m) -> c_12(lcs#2#(@m))
             -->_1 lcs#2#(nil()) -> c_14(#abs#(#0())):70
             -->_1 lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1)):69
          
          69:W:lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
             -->_1 lcs#3#(nil()) -> c_16(#abs#(#0())):72
             -->_1 lcs#3#(::(@len,@_@1)) -> c_15():71
          
          70:W:lcs#2#(nil()) -> c_14(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():12
          
          71:W:lcs#3#(::(@len,@_@1)) -> c_15()
             
          
          72:W:lcs#3#(nil()) -> c_16(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():12
          
          73:W:lcstable#3#(nil(),@l2,@x) -> c_22()
             
          
          74:W:max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
             -->_1 max#1#(#true(),@a,@b) -> c_25():76
             -->_1 max#1#(#false(),@a,@b) -> c_24():75
             -->_2 #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y)):57
          
          75:W:max#1#(#false(),@a,@b) -> c_24()
             
          
          76:W:max#1#(#true(),@a,@b) -> c_25()
             
          
          77:W:newline#1#(nil(),@lastline,@y) -> c_28()
             
          
          78:W:newline#2#(nil(),@x,@xs,@y) -> c_30()
             
          
          79:W:newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl)
                                                                            ,@belowVal
                                                                            ,@lastline'
                                                                            ,@nl
                                                                            ,@x
                                                                            ,@y)
                                                                 ,right#(@nl))
             -->_2 right#(@l) -> c_37(right#1#(@l)):85
             -->_1 newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                          ,@belowVal
                                                                                          ,@nl
                                                                                          ,@rightVal
                                                                                          ,@x
                                                                                          ,@y)
                                                                               ,right#(@lastline')):80
          
          80:W:newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                      ,@belowVal
                                                                                      ,@nl
                                                                                      ,@rightVal
                                                                                      ,@x
                                                                                      ,@y)
                                                                           ,right#(@lastline'))
             -->_2 right#(@l) -> c_37(right#1#(@l)):85
             -->_1 newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                                  ,@belowVal
                                                                                                  ,@diagVal
                                                                                                  ,@rightVal)
                                                                                        ,@nl)
                                                                             ,newline#7#(#equal(@x,@y)
                                                                                        ,@belowVal
                                                                                        ,@diagVal
                                                                                        ,@rightVal)
                                                                             ,#equal#(@x,@y)):81
          
          81:W:newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                              ,@belowVal
                                                                                              ,@diagVal
                                                                                              ,@rightVal)
                                                                                    ,@nl)
                                                                         ,newline#7#(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                         ,#equal#(@x,@y))
             -->_2 newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0())))):84
             -->_2 newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal)):83
             -->_1 newline#6#(@elem,@nl) -> c_34():82
             -->_3 #equal#(@x,@y) -> c_5(#eq#(@x,@y)):56
          
          82:W:newline#6#(@elem,@nl) -> c_34()
             
          
          83:W:newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
             -->_1 max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b)):74
          
          84:W:newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
             -->_1 +#(@x,@y) -> c_7(#add#(@x,@y)):66
          
          85:W:right#(@l) -> c_37(right#1#(@l))
             -->_1 right#1#(nil()) -> c_39(#abs#(#0())):87
             -->_1 right#1#(::(@x,@xs)) -> c_38():86
          
          86:W:right#1#(::(@x,@xs)) -> c_38()
             
          
          87:W:right#1#(nil()) -> c_39(#abs#(#0()))
             -->_1 #abs#(#0()) -> c_1():12
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          15: #abs#(#s(@x)) -> c_4()
          14: #abs#(#pos(@x)) -> c_3()
          13: #abs#(#neg(@x)) -> c_2()
          73: lcstable#3#(nil(),@l2,@x) -> c_22()
          77: newline#1#(nil(),@lastline,@y) -> c_28()
          78: newline#2#(nil(),@x,@xs,@y) -> c_30()
          79: newline#3#(@nl,@belowVal,@lastline',@x,@y) -> c_31(newline#4#(right(@nl),@belowVal,@lastline',@nl,@x,@y)
                                                                ,right#(@nl))
          80: newline#4#(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> c_32(newline#5#(right(@lastline')
                                                                                     ,@belowVal
                                                                                     ,@nl
                                                                                     ,@rightVal
                                                                                     ,@x
                                                                                     ,@y)
                                                                          ,right#(@lastline'))
          81: newline#5#(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> c_33(newline#6#(newline#7(#equal(@x,@y)
                                                                                             ,@belowVal
                                                                                             ,@diagVal
                                                                                             ,@rightVal)
                                                                                   ,@nl)
                                                                        ,newline#7#(#equal(@x,@y)
                                                                                   ,@belowVal
                                                                                   ,@diagVal
                                                                                   ,@rightVal)
                                                                        ,#equal#(@x,@y))
          56: #equal#(@x,@y) -> c_5(#eq#(@x,@y))
          52: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_76(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          51: #eq#(#s(@x),#s(@y)) -> c_75(#eq#(@x,@y))
          49: #eq#(#pos(@x),#pos(@y)) -> c_73(#eq#(@x,@y))
          45: #eq#(#neg(@x),#neg(@y)) -> c_69(#eq#(@x,@y))
          21: #and#(#false(),#false()) -> c_45()
          22: #and#(#false(),#true()) -> c_46()
          23: #and#(#true(),#false()) -> c_47()
          24: #and#(#true(),#true()) -> c_48()
          40: #eq#(#0(),#0()) -> c_64()
          41: #eq#(#0(),#neg(@y)) -> c_65()
          42: #eq#(#0(),#pos(@y)) -> c_66()
          43: #eq#(#0(),#s(@y)) -> c_67()
          44: #eq#(#neg(@x),#0()) -> c_68()
          46: #eq#(#neg(@x),#pos(@y)) -> c_70()
          47: #eq#(#pos(@x),#0()) -> c_71()
          48: #eq#(#pos(@x),#neg(@y)) -> c_72()
          50: #eq#(#s(@x),#0()) -> c_74()
          53: #eq#(::(@x_1,@x_2),nil()) -> c_77()
          54: #eq#(nil(),::(@y_1,@y_2)) -> c_78()
          55: #eq#(nil(),nil()) -> c_79()
          82: newline#6#(@elem,@nl) -> c_34()
          83: newline#7#(#false(),@belowVal,@diagVal,@rightVal) -> c_35(max#(@belowVal,@rightVal))
          74: max#(@a,@b) -> c_23(max#1#(#greater(@a,@b),@a,@b),#greater#(@a,@b))
          57: #greater#(@x,@y) -> c_6(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          25: #ckgt#(#EQ()) -> c_49()
          26: #ckgt#(#GT()) -> c_50()
          27: #ckgt#(#LT()) -> c_51()
          39: #compare#(#s(@x),#s(@y)) -> c_63(#compare#(@x,@y))
          37: #compare#(#pos(@x),#pos(@y)) -> c_61(#compare#(@x,@y))
          33: #compare#(#neg(@x),#neg(@y)) -> c_57(#compare#(@y,@x))
          28: #compare#(#0(),#0()) -> c_52()
          29: #compare#(#0(),#neg(@y)) -> c_53()
          30: #compare#(#0(),#pos(@y)) -> c_54()
          31: #compare#(#0(),#s(@y)) -> c_55()
          32: #compare#(#neg(@x),#0()) -> c_56()
          34: #compare#(#neg(@x),#pos(@y)) -> c_58()
          35: #compare#(#pos(@x),#0()) -> c_59()
          36: #compare#(#pos(@x),#neg(@y)) -> c_60()
          38: #compare#(#s(@x),#0()) -> c_62()
          75: max#1#(#false(),@a,@b) -> c_24()
          76: max#1#(#true(),@a,@b) -> c_25()
          84: newline#7#(#true(),@belowVal,@diagVal,@rightVal) -> c_36(+#(@diagVal,#pos(#s(#0()))))
          66: +#(@x,@y) -> c_7(#add#(@x,@y))
          16: #add#(#0(),@y) -> c_40()
          17: #add#(#neg(#s(#0())),@y) -> c_41(#pred#(@y))
          18: #add#(#neg(#s(#s(@x))),@y) -> c_42(#pred#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          58: #pred#(#0()) -> c_80()
          59: #pred#(#neg(#s(@x))) -> c_81()
          60: #pred#(#pos(#s(#0()))) -> c_82()
          61: #pred#(#pos(#s(#s(@x)))) -> c_83()
          20: #add#(#pos(#s(#s(@x))),@y) -> c_44(#succ#(#add(#pos(#s(@x)),@y)),#add#(#pos(#s(@x)),@y))
          19: #add#(#pos(#s(#0())),@y) -> c_43(#succ#(@y))
          62: #succ#(#0()) -> c_84()
          63: #succ#(#neg(#s(#0()))) -> c_85()
          64: #succ#(#neg(#s(#s(@x)))) -> c_86()
          65: #succ#(#pos(#s(@x))) -> c_87()
          85: right#(@l) -> c_37(right#1#(@l))
          86: right#1#(::(@x,@xs)) -> c_38()
          87: right#1#(nil()) -> c_39(#abs#(#0()))
          68: lcs#1#(@m) -> c_12(lcs#2#(@m))
          69: lcs#2#(::(@l1,@_@2)) -> c_13(lcs#3#(@l1))
          71: lcs#3#(::(@len,@_@1)) -> c_15()
          72: lcs#3#(nil()) -> c_16(#abs#(#0()))
          70: lcs#2#(nil()) -> c_14(#abs#(#0()))
          67: firstline#1#(nil()) -> c_10()
          12: #abs#(#0()) -> c_1()
* Step 9: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                             ,@belowVal
                                                                             ,@lastline'
                                                                             ,@x
                                                                             ,@y)
                                                                  ,newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/2,c_10/0,c_11/2,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/2
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:firstline#(@l) -> c_8(firstline#1#(@l))
             -->_1 firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs)):2
          
          2:S:firstline#1#(::(@x,@xs)) -> c_9(#abs#(#0()),firstline#(@xs))
             -->_2 firstline#(@l) -> c_8(firstline#1#(@l)):1
          
          3:S:lcs#(@l1,@l2) -> c_11(lcs#1#(lcstable(@l1,@l2)),lcstable#(@l1,@l2))
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
          
          4:S:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
             -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):6
             -->_1 lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2)):5
          
          5:S:lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
             -->_1 lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x)):7
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
          
          6:S:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
          
          7:S:lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
             -->_1 lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2)):8
          
          8:S:lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
             -->_1 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
          
          9:S:newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
             -->_1 newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y)):10
          
          10:S:newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
             -->_1 newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                                    ,@belowVal
                                                                                    ,@lastline'
                                                                                    ,@x
                                                                                    ,@y)
                                                                         ,newline#(@y,@lastline',@xs)):11
          
          11:S:newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#3#(newline(@y,@lastline',@xs)
                                                                                ,@belowVal
                                                                                ,@lastline'
                                                                                ,@x
                                                                                ,@y)
                                                                     ,newline#(@y,@lastline',@xs))
             -->_2 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
          lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2))
          newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
* Step 10: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcs(@l1,@l2) -> lcs#1(lcstable(@l1,@l2))
            lcs#1(@m) -> lcs#2(@m)
            lcs#2(::(@l1,@_@2)) -> lcs#3(@l1)
            lcs#2(nil()) -> #abs(#0())
            lcs#3(::(@len,@_@1)) -> @len
            lcs#3(nil()) -> #abs(#0())
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + 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))
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #ckgt(#EQ()) -> #false()
          #ckgt(#GT()) -> #true()
          #ckgt(#LT()) -> #false()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #equal(@x,@y) -> #eq(@x,@y)
          #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
          firstline(@l) -> firstline#1(@l)
          firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
          firstline#1(nil()) -> nil()
          lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
          lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
          lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
          lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
          lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
          lcstable#3(nil(),@l2,@x) -> nil()
          max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
          max#1(#false(),@a,@b) -> @b
          max#1(#true(),@a,@b) -> @a
          newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
          newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
          newline#1(nil(),@lastline,@y) -> nil()
          newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                    ,@belowVal
                                                                    ,@lastline'
                                                                    ,@x
                                                                    ,@y)
          newline#2(nil(),@x,@xs,@y) -> nil()
          newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
          newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                          ,@belowVal
                                                                          ,@nl
                                                                          ,@rightVal
                                                                          ,@x
                                                                          ,@y)
          newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                  ,@belowVal
                                                                                  ,@diagVal
                                                                                  ,@rightVal)
                                                                        ,@nl)
          newline#6(@elem,@nl) -> ::(@elem,@nl)
          newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
          newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
          right(@l) -> right#1(@l)
          right#1(::(@x,@xs)) -> @x
          right#1(nil()) -> #abs(#0())
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
          lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2))
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
* Step 11: RemoveHeads WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        RemoveHeads
    + Details:
        Consider the dependency graph
        
        1:S:firstline#(@l) -> c_8(firstline#1#(@l))
           -->_1 firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs)):2
        
        2:S:firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
           -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
        
        3:S:lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2))
           -->_1 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
        
        4:S:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
           -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):6
           -->_1 lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2)):5
        
        5:S:lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
           -->_1 lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x)):7
           -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):4
        
        6:S:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
           -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
        
        7:S:lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
           -->_1 lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2)):8
        
        8:S:lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
           -->_1 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
        
        9:S:newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
           -->_1 newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y)):10
        
        10:S:newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
           -->_1 newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs)):11
        
        11:S:newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
           -->_1 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):9
        
        
        Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts).
        
        [(3,lcs#(@l1,@l2) -> c_11(lcstable#(@l1,@l2)))]
* Step 12: DecomposeDG WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
        and a lower component
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
          lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
          newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
          newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        Further, following extension rules are added to the lower component.
          lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
          lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
          lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
** Step 12.a:1: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
             -->_1 lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2)):2
          
          2:S:lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#2#(lcstable(@xs,@l2),@l2,@x),lcstable#(@xs,@l2))
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
** Step 12.a:2: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
** Step 12.a:3: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_17) = {1},
          uargs(c_18) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [2]                                             
                   p(#EQ) = [0]                                             
                   p(#GT) = [1]                                             
                   p(#LT) = [1]                                             
                  p(#abs) = [4]                                             
                  p(#add) = [0]                                             
                  p(#and) = [1] x1 + [1] x2 + [2]                           
                 p(#ckgt) = [8] x1 + [1]                                    
              p(#compare) = [1] x1 + [0]                                    
                   p(#eq) = [1] x1 + [2]                                    
                p(#equal) = [2] x1 + [1]                                    
                p(#false) = [0]                                             
              p(#greater) = [0]                                             
                  p(#neg) = [1] x1 + [1]                                    
                  p(#pos) = [0]                                             
                 p(#pred) = [2] x1 + [0]                                    
                    p(#s) = [0]                                             
                 p(#succ) = [2]                                             
                 p(#true) = [0]                                             
                     p(+) = [0]                                             
                    p(::) = [1] x1 + [1] x2 + [1]                           
             p(firstline) = [0]                                             
           p(firstline#1) = [1] x1 + [0]                                    
                   p(lcs) = [1] x1 + [1] x2 + [0]                           
                 p(lcs#1) = [2]                                             
                 p(lcs#2) = [0]                                             
                 p(lcs#3) = [0]                                             
              p(lcstable) = [1] x1 + [1] x2 + [0]                           
            p(lcstable#1) = [0]                                             
            p(lcstable#2) = [1] x1 + [0]                                    
            p(lcstable#3) = [1] x1 + [2] x2 + [1] x3 + [0]                  
                   p(max) = [1] x1 + [1] x2 + [0]                           
                 p(max#1) = [1] x2 + [1] x3 + [0]                           
               p(newline) = [0]                                             
             p(newline#1) = [1] x1 + [1] x2 + [1] x3 + [0]                  
             p(newline#2) = [1] x1 + [2] x2 + [1] x4 + [0]                  
             p(newline#3) = [1] x1 + [2] x3 + [1] x4 + [0]                  
             p(newline#4) = [1] x2 + [8] x3 + [1] x6 + [0]                  
             p(newline#5) = [1] x1 + [1] x2 + [1] x4 + [1] x5 + [8] x6 + [0]
             p(newline#6) = [0]                                             
             p(newline#7) = [1] x1 + [0]                                    
                   p(nil) = [0]                                             
                 p(right) = [0]                                             
               p(right#1) = [0]                                             
                 p(#abs#) = [0]                                             
                 p(#add#) = [0]                                             
                 p(#and#) = [0]                                             
                p(#ckgt#) = [0]                                             
             p(#compare#) = [0]                                             
                  p(#eq#) = [0]                                             
               p(#equal#) = [0]                                             
             p(#greater#) = [0]                                             
                p(#pred#) = [0]                                             
                p(#succ#) = [0]                                             
                    p(+#) = [1]                                             
            p(firstline#) = [0]                                             
          p(firstline#1#) = [0]                                             
                  p(lcs#) = [0]                                             
                p(lcs#1#) = [0]                                             
                p(lcs#2#) = [0]                                             
                p(lcs#3#) = [0]                                             
             p(lcstable#) = [8] x1 + [6]                                    
           p(lcstable#1#) = [8] x1 + [0]                                    
           p(lcstable#2#) = [0]                                             
           p(lcstable#3#) = [0]                                             
                  p(max#) = [0]                                             
                p(max#1#) = [0]                                             
              p(newline#) = [0]                                             
            p(newline#1#) = [0]                                             
            p(newline#2#) = [0]                                             
            p(newline#3#) = [0]                                             
            p(newline#4#) = [0]                                             
            p(newline#5#) = [0]                                             
            p(newline#6#) = [0]                                             
            p(newline#7#) = [0]                                             
                p(right#) = [0]                                             
              p(right#1#) = [0]                                             
                   p(c_1) = [0]                                             
                   p(c_2) = [0]                                             
                   p(c_3) = [0]                                             
                   p(c_4) = [0]                                             
                   p(c_5) = [0]                                             
                   p(c_6) = [0]                                             
                   p(c_7) = [0]                                             
                   p(c_8) = [0]                                             
                   p(c_9) = [0]                                             
                  p(c_10) = [0]                                             
                  p(c_11) = [0]                                             
                  p(c_12) = [0]                                             
                  p(c_13) = [0]                                             
                  p(c_14) = [0]                                             
                  p(c_15) = [0]                                             
                  p(c_16) = [2]                                             
                  p(c_17) = [1] x1 + [4]                                    
                  p(c_18) = [1] x1 + [2]                                    
                  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) = [0]                                             
                  p(c_28) = [0]                                             
                  p(c_29) = [0]                                             
                  p(c_30) = [0]                                             
                  p(c_31) = [0]                                             
                  p(c_32) = [0]                                             
                  p(c_33) = [0]                                             
                  p(c_34) = [0]                                             
                  p(c_35) = [0]                                             
                  p(c_36) = [0]                                             
                  p(c_37) = [0]                                             
                  p(c_38) = [0]                                             
                  p(c_39) = [0]                                             
                  p(c_40) = [0]                                             
                  p(c_41) = [0]                                             
                  p(c_42) = [1]                                             
                  p(c_43) = [8]                                             
                  p(c_44) = [1]                                             
                  p(c_45) = [0]                                             
                  p(c_46) = [1]                                             
                  p(c_47) = [0]                                             
                  p(c_48) = [1]                                             
                  p(c_49) = [0]                                             
                  p(c_50) = [0]                                             
                  p(c_51) = [2]                                             
                  p(c_52) = [1]                                             
                  p(c_53) = [2]                                             
                  p(c_54) = [2]                                             
                  p(c_55) = [1]                                             
                  p(c_56) = [0]                                             
                  p(c_57) = [8]                                             
                  p(c_58) = [0]                                             
                  p(c_59) = [1]                                             
                  p(c_60) = [0]                                             
                  p(c_61) = [0]                                             
                  p(c_62) = [1]                                             
                  p(c_63) = [1]                                             
                  p(c_64) = [4]                                             
                  p(c_65) = [0]                                             
                  p(c_66) = [0]                                             
                  p(c_67) = [1]                                             
                  p(c_68) = [4]                                             
                  p(c_69) = [8]                                             
                  p(c_70) = [8]                                             
                  p(c_71) = [1]                                             
                  p(c_72) = [0]                                             
                  p(c_73) = [2]                                             
                  p(c_74) = [2]                                             
                  p(c_75) = [1]                                             
                  p(c_76) = [1]                                             
                  p(c_77) = [0]                                             
                  p(c_78) = [0]                                             
                  p(c_79) = [0]                                             
                  p(c_80) = [0]                                             
                  p(c_81) = [0]                                             
                  p(c_82) = [0]                                             
                  p(c_83) = [0]                                             
                  p(c_84) = [0]                                             
                  p(c_85) = [1]                                             
                  p(c_86) = [2]                                             
                  p(c_87) = [2]                                             
        
        Following rules are strictly oriented:
        lcstable#(@l1,@l2) = [8] @l1 + [6]             
                           > [8] @l1 + [4]             
                           = c_17(lcstable#1#(@l1,@l2))
        
        
        Following rules are (at-least) weakly oriented:
        lcstable#1#(::(@x,@xs),@l2) =  [8] @x + [8] @xs + [8]  
                                    >= [8] @xs + [8]           
                                    =  c_18(lcstable#(@xs,@l2))
        
** Step 12.a:4: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
        - Weak DPs:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following constant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(c_17) = {1},
            uargs(c_18) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                      p(#0) = [0]                  
                     p(#EQ) = [0]                  
                     p(#GT) = [0]                  
                     p(#LT) = [0]                  
                    p(#abs) = [0]                  
                    p(#add) = [0]                  
                    p(#and) = [1] x2 + [0]         
                   p(#ckgt) = [1]                  
                p(#compare) = [0]                  
                     p(#eq) = [0]                  
                  p(#equal) = [0]                  
                  p(#false) = [0]                  
                p(#greater) = [0]                  
                    p(#neg) = [1] x1 + [0]         
                    p(#pos) = [1] x1 + [0]         
                   p(#pred) = [0]                  
                      p(#s) = [1] x1 + [0]         
                   p(#succ) = [0]                  
                   p(#true) = [0]                  
                       p(+) = [0]                  
                      p(::) = [1] x1 + [1] x2 + [6]
               p(firstline) = [0]                  
             p(firstline#1) = [0]                  
                     p(lcs) = [0]                  
                   p(lcs#1) = [0]                  
                   p(lcs#2) = [0]                  
                   p(lcs#3) = [0]                  
                p(lcstable) = [0]                  
              p(lcstable#1) = [0]                  
              p(lcstable#2) = [1] x1 + [1]         
              p(lcstable#3) = [0]                  
                     p(max) = [0]                  
                   p(max#1) = [0]                  
                 p(newline) = [0]                  
               p(newline#1) = [0]                  
               p(newline#2) = [0]                  
               p(newline#3) = [0]                  
               p(newline#4) = [1] x2 + [0]         
               p(newline#5) = [0]                  
               p(newline#6) = [0]                  
               p(newline#7) = [0]                  
                     p(nil) = [0]                  
                   p(right) = [0]                  
                 p(right#1) = [0]                  
                   p(#abs#) = [0]                  
                   p(#add#) = [0]                  
                   p(#and#) = [0]                  
                  p(#ckgt#) = [0]                  
               p(#compare#) = [0]                  
                    p(#eq#) = [0]                  
                 p(#equal#) = [0]                  
               p(#greater#) = [0]                  
                  p(#pred#) = [0]                  
                  p(#succ#) = [0]                  
                      p(+#) = [0]                  
              p(firstline#) = [0]                  
            p(firstline#1#) = [0]                  
                    p(lcs#) = [0]                  
                  p(lcs#1#) = [0]                  
                  p(lcs#2#) = [0]                  
                  p(lcs#3#) = [0]                  
               p(lcstable#) = [1] x1 + [2]         
             p(lcstable#1#) = [1] x1 + [1]         
             p(lcstable#2#) = [0]                  
             p(lcstable#3#) = [0]                  
                    p(max#) = [0]                  
                  p(max#1#) = [0]                  
                p(newline#) = [0]                  
              p(newline#1#) = [0]                  
              p(newline#2#) = [0]                  
              p(newline#3#) = [0]                  
              p(newline#4#) = [1] x4 + [0]         
              p(newline#5#) = [0]                  
              p(newline#6#) = [0]                  
              p(newline#7#) = [0]                  
                  p(right#) = [1] x1 + [0]         
                p(right#1#) = [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) = [2]                  
                    p(c_16) = [1] x1 + [1]         
                    p(c_17) = [1] x1 + [1]         
                    p(c_18) = [1] x1 + [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) = [0]                  
                    p(c_28) = [0]                  
                    p(c_29) = [0]                  
                    p(c_30) = [0]                  
                    p(c_31) = [0]                  
                    p(c_32) = [0]                  
                    p(c_33) = [0]                  
                    p(c_34) = [0]                  
                    p(c_35) = [0]                  
                    p(c_36) = [0]                  
                    p(c_37) = [0]                  
                    p(c_38) = [0]                  
                    p(c_39) = [0]                  
                    p(c_40) = [0]                  
                    p(c_41) = [0]                  
                    p(c_42) = [0]                  
                    p(c_43) = [0]                  
                    p(c_44) = [0]                  
                    p(c_45) = [0]                  
                    p(c_46) = [0]                  
                    p(c_47) = [0]                  
                    p(c_48) = [0]                  
                    p(c_49) = [0]                  
                    p(c_50) = [0]                  
                    p(c_51) = [0]                  
                    p(c_52) = [0]                  
                    p(c_53) = [0]                  
                    p(c_54) = [0]                  
                    p(c_55) = [0]                  
                    p(c_56) = [0]                  
                    p(c_57) = [0]                  
                    p(c_58) = [0]                  
                    p(c_59) = [0]                  
                    p(c_60) = [0]                  
                    p(c_61) = [0]                  
                    p(c_62) = [0]                  
                    p(c_63) = [0]                  
                    p(c_64) = [0]                  
                    p(c_65) = [0]                  
                    p(c_66) = [0]                  
                    p(c_67) = [0]                  
                    p(c_68) = [0]                  
                    p(c_69) = [0]                  
                    p(c_70) = [0]                  
                    p(c_71) = [0]                  
                    p(c_72) = [0]                  
                    p(c_73) = [0]                  
                    p(c_74) = [0]                  
                    p(c_75) = [0]                  
                    p(c_76) = [0]                  
                    p(c_77) = [0]                  
                    p(c_78) = [0]                  
                    p(c_79) = [0]                  
                    p(c_80) = [0]                  
                    p(c_81) = [0]                  
                    p(c_82) = [0]                  
                    p(c_83) = [0]                  
                    p(c_84) = [0]                  
                    p(c_85) = [0]                  
                    p(c_86) = [0]                  
                    p(c_87) = [0]                  
          
          Following rules are strictly oriented:
          lcstable#1#(::(@x,@xs),@l2) = [1] @x + [1] @xs + [7]  
                                      > [1] @xs + [2]           
                                      = c_18(lcstable#(@xs,@l2))
          
          
          Following rules are (at-least) weakly oriented:
          lcstable#(@l1,@l2) =  [1] @l1 + [2]             
                             >= [1] @l1 + [2]             
                             =  c_17(lcstable#1#(@l1,@l2))
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 12.a:5: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/1,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

** Step 12.b:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - Weak DPs:
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                           
                   p(#EQ) = [0]                           
                   p(#GT) = [0]                           
                   p(#LT) = [0]                           
                  p(#abs) = [0]                           
                  p(#add) = [0]                           
                  p(#and) = [2] x1 + [0]                  
                 p(#ckgt) = [0]                           
              p(#compare) = [1] x1 + [3]                  
                   p(#eq) = [1] x2 + [1]                  
                p(#equal) = [0]                           
                p(#false) = [0]                           
              p(#greater) = [0]                           
                  p(#neg) = [2]                           
                  p(#pos) = [0]                           
                 p(#pred) = [0]                           
                    p(#s) = [0]                           
                 p(#succ) = [0]                           
                 p(#true) = [3]                           
                     p(+) = [0]                           
                    p(::) = [3]                           
             p(firstline) = [0]                           
           p(firstline#1) = [0]                           
                   p(lcs) = [0]                           
                 p(lcs#1) = [0]                           
                 p(lcs#2) = [0]                           
                 p(lcs#3) = [0]                           
              p(lcstable) = [0]                           
            p(lcstable#1) = [1]                           
            p(lcstable#2) = [1] x2 + [4] x3 + [0]         
            p(lcstable#3) = [4] x2 + [2] x3 + [4]         
                   p(max) = [0]                           
                 p(max#1) = [4] x1 + [0]                  
               p(newline) = [0]                           
             p(newline#1) = [5]                           
             p(newline#2) = [0]                           
             p(newline#3) = [0]                           
             p(newline#4) = [0]                           
             p(newline#5) = [1] x1 + [0]                  
             p(newline#6) = [0]                           
             p(newline#7) = [1] x1 + [2] x4 + [0]         
                   p(nil) = [4]                           
                 p(right) = [0]                           
               p(right#1) = [7]                           
                 p(#abs#) = [4] x1 + [0]                  
                 p(#add#) = [2] x1 + [1] x2 + [0]         
                 p(#and#) = [4] x2 + [0]                  
                p(#ckgt#) = [1] x1 + [0]                  
             p(#compare#) = [0]                           
                  p(#eq#) = [0]                           
               p(#equal#) = [0]                           
             p(#greater#) = [2] x1 + [1] x2 + [0]         
                p(#pred#) = [2] x1 + [0]                  
                p(#succ#) = [1] x1 + [0]                  
                    p(+#) = [1] x1 + [1] x2 + [0]         
            p(firstline#) = [0]                           
          p(firstline#1#) = [0]                           
                  p(lcs#) = [0]                           
                p(lcs#1#) = [0]                           
                p(lcs#2#) = [1] x1 + [0]                  
                p(lcs#3#) = [0]                           
             p(lcstable#) = [7] x2 + [6]                  
           p(lcstable#1#) = [7] x2 + [6]                  
           p(lcstable#2#) = [7] x2 + [6]                  
           p(lcstable#3#) = [1]                           
                  p(max#) = [0]                           
                p(max#1#) = [1] x2 + [4] x3 + [0]         
              p(newline#) = [0]                           
            p(newline#1#) = [0]                           
            p(newline#2#) = [0]                           
            p(newline#3#) = [0]                           
            p(newline#4#) = [1] x3 + [1] x5 + [0]         
            p(newline#5#) = [1] x1 + [1] x3 + [4] x4 + [0]
            p(newline#6#) = [1] x1 + [1] x2 + [0]         
            p(newline#7#) = [1] x2 + [4] x3 + [0]         
                p(right#) = [0]                           
              p(right#1#) = [0]                           
                   p(c_1) = [0]                           
                   p(c_2) = [0]                           
                   p(c_3) = [0]                           
                   p(c_4) = [0]                           
                   p(c_5) = [1] x1 + [0]                  
                   p(c_6) = [4] x1 + [0]                  
                   p(c_7) = [0]                           
                   p(c_8) = [4] x1 + [0]                  
                   p(c_9) = [4] x1 + [0]                  
                  p(c_10) = [0]                           
                  p(c_11) = [1] x1 + [0]                  
                  p(c_12) = [2]                           
                  p(c_13) = [0]                           
                  p(c_14) = [1] x1 + [0]                  
                  p(c_15) = [2]                           
                  p(c_16) = [1] x1 + [0]                  
                  p(c_17) = [1] x1 + [0]                  
                  p(c_18) = [0]                           
                  p(c_19) = [2] x1 + [3]                  
                  p(c_20) = [4] x1 + [0]                  
                  p(c_21) = [4] x1 + [1]                  
                  p(c_22) = [0]                           
                  p(c_23) = [1] x1 + [1] x2 + [0]         
                  p(c_24) = [0]                           
                  p(c_25) = [0]                           
                  p(c_26) = [4] x1 + [0]                  
                  p(c_27) = [2] x1 + [0]                  
                  p(c_28) = [0]                           
                  p(c_29) = [4] x1 + [0]                  
                  p(c_30) = [0]                           
                  p(c_31) = [0]                           
                  p(c_32) = [1] x1 + [1] x2 + [0]         
                  p(c_33) = [1] x2 + [1] x3 + [0]         
                  p(c_34) = [0]                           
                  p(c_35) = [1] x1 + [0]                  
                  p(c_36) = [1] x1 + [0]                  
                  p(c_37) = [2]                           
                  p(c_38) = [0]                           
                  p(c_39) = [2] x1 + [0]                  
                  p(c_40) = [0]                           
                  p(c_41) = [0]                           
                  p(c_42) = [1] x1 + [0]                  
                  p(c_43) = [1] x1 + [0]                  
                  p(c_44) = [2]                           
                  p(c_45) = [0]                           
                  p(c_46) = [0]                           
                  p(c_47) = [0]                           
                  p(c_48) = [0]                           
                  p(c_49) = [0]                           
                  p(c_50) = [0]                           
                  p(c_51) = [2]                           
                  p(c_52) = [0]                           
                  p(c_53) = [0]                           
                  p(c_54) = [0]                           
                  p(c_55) = [0]                           
                  p(c_56) = [0]                           
                  p(c_57) = [4] x1 + [0]                  
                  p(c_58) = [0]                           
                  p(c_59) = [0]                           
                  p(c_60) = [0]                           
                  p(c_61) = [1] x1 + [0]                  
                  p(c_62) = [0]                           
                  p(c_63) = [0]                           
                  p(c_64) = [0]                           
                  p(c_65) = [0]                           
                  p(c_66) = [0]                           
                  p(c_67) = [0]                           
                  p(c_68) = [0]                           
                  p(c_69) = [1] x1 + [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) = [1] x1 + [2] x2 + [0]         
                  p(c_77) = [0]                           
                  p(c_78) = [0]                           
                  p(c_79) = [1]                           
                  p(c_80) = [0]                           
                  p(c_81) = [0]                           
                  p(c_82) = [0]                           
                  p(c_83) = [0]                           
                  p(c_84) = [0]                           
                  p(c_85) = [0]                           
                  p(c_86) = [0]                           
                  p(c_87) = [0]                           
        
        Following rules are strictly oriented:
        lcstable#1#(nil(),@l2) = [7] @l2 + [6]               
                               > [3]                         
                               = c_19(firstline#(@l2))       
        
        lcstable#2#(@m,@l2,@x) = [7] @l2 + [6]               
                               > [4]                         
                               = c_20(lcstable#3#(@m,@l2,@x))
        
        
        Following rules are (at-least) weakly oriented:
                                        firstline#(@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_8(firstline#1#(@l))                
        
                              firstline#1#(::(@x,@xs)) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_9(firstline#(@xs))                 
        
                                    lcstable#(@l1,@l2) =  [7] @l2 + [6]                        
                                                       >= [7] @l2 + [6]                        
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [7] @l2 + [6]                        
                                                       >= [7] @l2 + [6]                        
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [7] @l2 + [6]                        
                                                       >= [7] @l2 + [6]                        
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                        lcstable#3#(::(@l,@ls),@l2,@x) =  [1]                                  
                                                       >= [1]                                  
                                                       =  c_21(newline#(@x,@l,@l2))            
        
                             newline#(@y,@lastline,@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_26(newline#1#(@l,@lastline,@y))    
        
                   newline#1#(::(@x,@xs),@lastline,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
** Step 12.b:2: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - Weak DPs:
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {lcstable,lcstable#1,lcstable#2,lcstable#3,#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
          ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
          ,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [1]         
                   p(#EQ) = [0]         
                   p(#GT) = [0]         
                   p(#LT) = [0]         
                  p(#abs) = [0]         
                  p(#add) = [5]         
                  p(#and) = [5]         
                 p(#ckgt) = [0]         
              p(#compare) = [3] x1 + [1]
                   p(#eq) = [2] x1 + [2]
                p(#equal) = [0]         
                p(#false) = [0]         
              p(#greater) = [0]         
                  p(#neg) = [1] x1 + [1]
                  p(#pos) = [1] x1 + [3]
                 p(#pred) = [2] x1 + [0]
                    p(#s) = [1] x1 + [0]
                 p(#succ) = [2] x1 + [4]
                 p(#true) = [0]         
                     p(+) = [3] x2 + [0]
                    p(::) = [0]         
             p(firstline) = [0]         
           p(firstline#1) = [0]         
                   p(lcs) = [0]         
                 p(lcs#1) = [0]         
                 p(lcs#2) = [0]         
                 p(lcs#3) = [0]         
              p(lcstable) = [1] x2 + [6]
            p(lcstable#1) = [1] x2 + [5]
            p(lcstable#2) = [1] x2 + [5]
            p(lcstable#3) = [5]         
                   p(max) = [0]         
                 p(max#1) = [0]         
               p(newline) = [1] x1 + [0]
             p(newline#1) = [0]         
             p(newline#2) = [7]         
             p(newline#3) = [1] x1 + [0]
             p(newline#4) = [0]         
             p(newline#5) = [1] x4 + [0]
             p(newline#6) = [0]         
             p(newline#7) = [0]         
                   p(nil) = [4]         
                 p(right) = [0]         
               p(right#1) = [0]         
                 p(#abs#) = [0]         
                 p(#add#) = [0]         
                 p(#and#) = [0]         
                p(#ckgt#) = [0]         
             p(#compare#) = [0]         
                  p(#eq#) = [0]         
               p(#equal#) = [0]         
             p(#greater#) = [0]         
                p(#pred#) = [0]         
                p(#succ#) = [0]         
                    p(+#) = [0]         
            p(firstline#) = [0]         
          p(firstline#1#) = [0]         
                  p(lcs#) = [0]         
                p(lcs#1#) = [0]         
                p(lcs#2#) = [0]         
                p(lcs#3#) = [0]         
             p(lcstable#) = [2] x2 + [6]
           p(lcstable#1#) = [2] x2 + [6]
           p(lcstable#2#) = [2] x2 + [6]
           p(lcstable#3#) = [6]         
                  p(max#) = [0]         
                p(max#1#) = [0]         
              p(newline#) = [0]         
            p(newline#1#) = [0]         
            p(newline#2#) = [0]         
            p(newline#3#) = [0]         
            p(newline#4#) = [0]         
            p(newline#5#) = [1] x1 + [0]
            p(newline#6#) = [0]         
            p(newline#7#) = [1] x1 + [0]
                p(right#) = [0]         
              p(right#1#) = [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) = [4] x1 + [0]
                   p(c_9) = [1] x1 + [0]
                  p(c_10) = [0]         
                  p(c_11) = [1] x1 + [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) = [2] x1 + [6]
                  p(c_20) = [1] x1 + [0]
                  p(c_21) = [4] x1 + [3]
                  p(c_22) = [0]         
                  p(c_23) = [0]         
                  p(c_24) = [0]         
                  p(c_25) = [0]         
                  p(c_26) = [4] x1 + [0]
                  p(c_27) = [2] x1 + [0]
                  p(c_28) = [0]         
                  p(c_29) = [1] x1 + [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) = [1] 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) = [1] x1 + [0]
                  p(c_44) = [4] x1 + [0]
                  p(c_45) = [0]         
                  p(c_46) = [0]         
                  p(c_47) = [1]         
                  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) = [2] x1 + [0]
                  p(c_62) = [0]         
                  p(c_63) = [4] x1 + [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) = [2] x1 + [0]
                  p(c_77) = [0]         
                  p(c_78) = [0]         
                  p(c_79) = [0]         
                  p(c_80) = [0]         
                  p(c_81) = [1]         
                  p(c_82) = [0]         
                  p(c_83) = [0]         
                  p(c_84) = [0]         
                  p(c_85) = [0]         
                  p(c_86) = [0]         
                  p(c_87) = [0]         
        
        Following rules are strictly oriented:
        lcstable#3#(::(@l,@ls),@l2,@x) = [6]                      
                                       > [3]                      
                                       = c_21(newline#(@x,@l,@l2))
        
        
        Following rules are (at-least) weakly oriented:
                                        firstline#(@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_8(firstline#1#(@l))                
        
                              firstline#1#(::(@x,@xs)) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_9(firstline#(@xs))                 
        
                                    lcstable#(@l1,@l2) =  [2] @l2 + [6]                        
                                                       >= [2] @l2 + [6]                        
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [2] @l2 + [6]                        
                                                       >= [2] @l2 + [6]                        
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [2] @l2 + [6]                        
                                                       >= [2] @l2 + [6]                        
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                                lcstable#1#(nil(),@l2) =  [2] @l2 + [6]                        
                                                       >= [6]                                  
                                                       =  c_19(firstline#(@l2))                
        
                                lcstable#2#(@m,@l2,@x) =  [2] @l2 + [6]                        
                                                       >= [6]                                  
                                                       =  c_20(lcstable#3#(@m,@l2,@x))         
        
                             newline#(@y,@lastline,@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_26(newline#1#(@l,@lastline,@y))    
        
                   newline#1#(::(@x,@xs),@lastline,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
                                     lcstable(@l1,@l2) =  [1] @l2 + [6]                        
                                                       >= [1] @l2 + [5]                        
                                                       =  lcstable#1(@l1,@l2)                  
        
                            lcstable#1(::(@x,@xs),@l2) =  [1] @l2 + [5]                        
                                                       >= [1] @l2 + [5]                        
                                                       =  lcstable#2(lcstable(@xs,@l2),@l2,@x) 
        
                                 lcstable#1(nil(),@l2) =  [1] @l2 + [5]                        
                                                       >= [0]                                  
                                                       =  ::(firstline(@l2),nil())             
        
                                 lcstable#2(@m,@l2,@x) =  [1] @l2 + [5]                        
                                                       >= [5]                                  
                                                       =  lcstable#3(@m,@l2,@x)                
        
                         lcstable#3(::(@l,@ls),@l2,@x) =  [5]                                  
                                                       >= [0]                                  
                                                       =  ::(newline(@x,@l,@l2),::(@l,@ls))    
        
                              lcstable#3(nil(),@l2,@x) =  [5]                                  
                                                       >= [4]                                  
                                                       =  nil()                                
        
** Step 12.b:3: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - Weak DPs:
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {lcstable,lcstable#1,lcstable#2,lcstable#3,#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
          ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
          ,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [0]                  
                  p(#abs) = [0]                  
                  p(#add) = [0]                  
                  p(#and) = [2] x2 + [0]         
                 p(#ckgt) = [6] x1 + [1]         
              p(#compare) = [1] x1 + [2]         
                   p(#eq) = [0]                  
                p(#equal) = [3] x1 + [0]         
                p(#false) = [7]                  
              p(#greater) = [0]                  
                  p(#neg) = [0]                  
                  p(#pos) = [4]                  
                 p(#pred) = [0]                  
                    p(#s) = [1] x1 + [0]         
                 p(#succ) = [0]                  
                 p(#true) = [2]                  
                     p(+) = [0]                  
                    p(::) = [1] x2 + [3]         
             p(firstline) = [4] x1 + [0]         
           p(firstline#1) = [0]                  
                   p(lcs) = [0]                  
                 p(lcs#1) = [0]                  
                 p(lcs#2) = [0]                  
                 p(lcs#3) = [0]                  
              p(lcstable) = [1] x1 + [1] x2 + [6]
            p(lcstable#1) = [1] x1 + [1] x2 + [6]
            p(lcstable#2) = [1] x1 + [3]         
            p(lcstable#3) = [1] x1 + [3]         
                   p(max) = [0]                  
                 p(max#1) = [0]                  
               p(newline) = [1] x1 + [2] x3 + [0]
             p(newline#1) = [0]                  
             p(newline#2) = [0]                  
             p(newline#3) = [4] x1 + [0]         
             p(newline#4) = [0]                  
             p(newline#5) = [0]                  
             p(newline#6) = [2] x1 + [0]         
             p(newline#7) = [2] x1 + [0]         
                   p(nil) = [1]                  
                 p(right) = [0]                  
               p(right#1) = [0]                  
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
             p(#compare#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#pred#) = [0]                  
                p(#succ#) = [0]                  
                    p(+#) = [0]                  
            p(firstline#) = [2] x1 + [4]         
          p(firstline#1#) = [2] x1 + [0]         
                  p(lcs#) = [0]                  
                p(lcs#1#) = [0]                  
                p(lcs#2#) = [0]                  
                p(lcs#3#) = [0]                  
             p(lcstable#) = [4] x1 + [6] x2 + [0]
           p(lcstable#1#) = [4] x1 + [6] x2 + [0]
           p(lcstable#2#) = [1] x1 + [5] x2 + [1]
           p(lcstable#3#) = [2] x2 + [0]         
                  p(max#) = [0]                  
                p(max#1#) = [0]                  
              p(newline#) = [0]                  
            p(newline#1#) = [0]                  
            p(newline#2#) = [0]                  
            p(newline#3#) = [0]                  
            p(newline#4#) = [0]                  
            p(newline#5#) = [0]                  
            p(newline#6#) = [0]                  
            p(newline#7#) = [0]                  
                p(right#) = [0]                  
              p(right#1#) = [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) = [1] x1 + [4]         
                   p(c_9) = [1] x1 + [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) = [1] x1 + [0]         
                  p(c_20) = [2] x1 + [1]         
                  p(c_21) = [2] x1 + [0]         
                  p(c_22) = [0]                  
                  p(c_23) = [2] x2 + [0]         
                  p(c_24) = [0]                  
                  p(c_25) = [0]                  
                  p(c_26) = [4] x1 + [0]         
                  p(c_27) = [4] x1 + [0]         
                  p(c_28) = [0]                  
                  p(c_29) = [4] x1 + [0]         
                  p(c_30) = [0]                  
                  p(c_31) = [4] x2 + [0]         
                  p(c_32) = [2] x1 + [2] x2 + [0]
                  p(c_33) = [1] x3 + [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) = [0]                  
                  p(c_40) = [0]                  
                  p(c_41) = [1] x1 + [0]         
                  p(c_42) = [2] x2 + [0]         
                  p(c_43) = [2] x1 + [0]         
                  p(c_44) = [0]                  
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [0]                  
                  p(c_58) = [0]                  
                  p(c_59) = [0]                  
                  p(c_60) = [0]                  
                  p(c_61) = [0]                  
                  p(c_62) = [0]                  
                  p(c_63) = [0]                  
                  p(c_64) = [0]                  
                  p(c_65) = [0]                  
                  p(c_66) = [0]                  
                  p(c_67) = [0]                  
                  p(c_68) = [0]                  
                  p(c_69) = [2] x1 + [0]         
                  p(c_70) = [0]                  
                  p(c_71) = [0]                  
                  p(c_72) = [0]                  
                  p(c_73) = [1] x1 + [0]         
                  p(c_74) = [0]                  
                  p(c_75) = [0]                  
                  p(c_76) = [2] x1 + [1] x3 + [0]
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
        
        Following rules are strictly oriented:
        firstline#1#(::(@x,@xs)) = [2] @xs + [6]       
                                 > [2] @xs + [4]       
                                 = c_9(firstline#(@xs))
        
        
        Following rules are (at-least) weakly oriented:
                                        firstline#(@l) =  [2] @l + [4]                         
                                                       >= [2] @l + [4]                         
                                                       =  c_8(firstline#1#(@l))                
        
                                    lcstable#(@l1,@l2) =  [4] @l1 + [6] @l2 + [0]              
                                                       >= [4] @l1 + [6] @l2 + [0]              
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [6] @l2 + [4] @xs + [12]             
                                                       >= [6] @l2 + [4] @xs + [0]              
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [6] @l2 + [4] @xs + [12]             
                                                       >= [6] @l2 + [1] @xs + [7]              
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                                lcstable#1#(nil(),@l2) =  [6] @l2 + [4]                        
                                                       >= [2] @l2 + [4]                        
                                                       =  c_19(firstline#(@l2))                
        
                                lcstable#2#(@m,@l2,@x) =  [5] @l2 + [1] @m + [1]               
                                                       >= [4] @l2 + [1]                        
                                                       =  c_20(lcstable#3#(@m,@l2,@x))         
        
                        lcstable#3#(::(@l,@ls),@l2,@x) =  [2] @l2 + [0]                        
                                                       >= [0]                                  
                                                       =  c_21(newline#(@x,@l,@l2))            
        
                             newline#(@y,@lastline,@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_26(newline#1#(@l,@lastline,@y))    
        
                   newline#1#(::(@x,@xs),@lastline,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
                                     lcstable(@l1,@l2) =  [1] @l1 + [1] @l2 + [6]              
                                                       >= [1] @l1 + [1] @l2 + [6]              
                                                       =  lcstable#1(@l1,@l2)                  
        
                            lcstable#1(::(@x,@xs),@l2) =  [1] @l2 + [1] @xs + [9]              
                                                       >= [1] @l2 + [1] @xs + [9]              
                                                       =  lcstable#2(lcstable(@xs,@l2),@l2,@x) 
        
                                 lcstable#1(nil(),@l2) =  [1] @l2 + [7]                        
                                                       >= [4]                                  
                                                       =  ::(firstline(@l2),nil())             
        
                                 lcstable#2(@m,@l2,@x) =  [1] @m + [3]                         
                                                       >= [1] @m + [3]                         
                                                       =  lcstable#3(@m,@l2,@x)                
        
                         lcstable#3(::(@l,@ls),@l2,@x) =  [1] @ls + [6]                        
                                                       >= [1] @ls + [6]                        
                                                       =  ::(newline(@x,@l,@l2),::(@l,@ls))    
        
                              lcstable#3(nil(),@l2,@x) =  [4]                                  
                                                       >= [1]                                  
                                                       =  nil()                                
        
** Step 12.b:4: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - Weak DPs:
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [0]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [0]                  
                  p(#abs) = [0]                  
                  p(#add) = [0]                  
                  p(#and) = [2]                  
                 p(#ckgt) = [0]                  
              p(#compare) = [1]                  
                   p(#eq) = [4] x1 + [0]         
                p(#equal) = [0]                  
                p(#false) = [3]                  
              p(#greater) = [2] x2 + [0]         
                  p(#neg) = [2]                  
                  p(#pos) = [1]                  
                 p(#pred) = [0]                  
                    p(#s) = [0]                  
                 p(#succ) = [1] x1 + [5]         
                 p(#true) = [1]                  
                     p(+) = [0]                  
                    p(::) = [1] x2 + [2]         
             p(firstline) = [0]                  
           p(firstline#1) = [0]                  
                   p(lcs) = [0]                  
                 p(lcs#1) = [0]                  
                 p(lcs#2) = [0]                  
                 p(lcs#3) = [0]                  
              p(lcstable) = [2] x1 + [0]         
            p(lcstable#1) = [0]                  
            p(lcstable#2) = [4] x1 + [0]         
            p(lcstable#3) = [1] x1 + [3]         
                   p(max) = [0]                  
                 p(max#1) = [1] x1 + [2]         
               p(newline) = [0]                  
             p(newline#1) = [2] x1 + [0]         
             p(newline#2) = [0]                  
             p(newline#3) = [0]                  
             p(newline#4) = [3] x1 + [1] x6 + [0]
             p(newline#5) = [5] x1 + [0]         
             p(newline#6) = [0]                  
             p(newline#7) = [5] x1 + [0]         
                   p(nil) = [0]                  
                 p(right) = [2] x1 + [0]         
               p(right#1) = [1] x1 + [0]         
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
             p(#compare#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#pred#) = [0]                  
                p(#succ#) = [0]                  
                    p(+#) = [0]                  
            p(firstline#) = [4] x1 + [4]         
          p(firstline#1#) = [4] x1 + [0]         
                  p(lcs#) = [0]                  
                p(lcs#1#) = [0]                  
                p(lcs#2#) = [0]                  
                p(lcs#3#) = [0]                  
             p(lcstable#) = [4] x2 + [5]         
           p(lcstable#1#) = [4] x2 + [5]         
           p(lcstable#2#) = [4] x2 + [5]         
           p(lcstable#3#) = [0]                  
                  p(max#) = [0]                  
                p(max#1#) = [0]                  
              p(newline#) = [0]                  
            p(newline#1#) = [0]                  
            p(newline#2#) = [0]                  
            p(newline#3#) = [0]                  
            p(newline#4#) = [0]                  
            p(newline#5#) = [0]                  
            p(newline#6#) = [0]                  
            p(newline#7#) = [0]                  
                p(right#) = [0]                  
              p(right#1#) = [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) = [1] x1 + [2]         
                   p(c_9) = [1] x1 + [4]         
                  p(c_10) = [0]                  
                  p(c_11) = [0]                  
                  p(c_12) = [1] x1 + [0]         
                  p(c_13) = [0]                  
                  p(c_14) = [1] x1 + [0]         
                  p(c_15) = [0]                  
                  p(c_16) = [4] x1 + [0]         
                  p(c_17) = [1] x1 + [0]         
                  p(c_18) = [1] x1 + [4] x2 + [1]
                  p(c_19) = [1] x1 + [1]         
                  p(c_20) = [4] x1 + [0]         
                  p(c_21) = [4] x1 + [0]         
                  p(c_22) = [0]                  
                  p(c_23) = [1] x1 + [0]         
                  p(c_24) = [0]                  
                  p(c_25) = [0]                  
                  p(c_26) = [4] x1 + [0]         
                  p(c_27) = [4] x1 + [0]         
                  p(c_28) = [0]                  
                  p(c_29) = [4] x1 + [0]         
                  p(c_30) = [0]                  
                  p(c_31) = [1] x2 + [0]         
                  p(c_32) = [0]                  
                  p(c_33) = [2] x2 + [1] x3 + [0]
                  p(c_34) = [0]                  
                  p(c_35) = [1] x1 + [0]         
                  p(c_36) = [1] x1 + [0]         
                  p(c_37) = [0]                  
                  p(c_38) = [0]                  
                  p(c_39) = [0]                  
                  p(c_40) = [0]                  
                  p(c_41) = [1] x1 + [0]         
                  p(c_42) = [1] x1 + [2] x2 + [0]
                  p(c_43) = [4] x1 + [0]         
                  p(c_44) = [4] x2 + [0]         
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [4] x1 + [0]         
                  p(c_58) = [0]                  
                  p(c_59) = [0]                  
                  p(c_60) = [0]                  
                  p(c_61) = [0]                  
                  p(c_62) = [0]                  
                  p(c_63) = [2] x1 + [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) = [1] x1 + [0]         
                  p(c_74) = [0]                  
                  p(c_75) = [0]                  
                  p(c_76) = [1] x2 + [4] x3 + [0]
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
        
        Following rules are strictly oriented:
        firstline#(@l) = [4] @l + [4]         
                       > [4] @l + [2]         
                       = c_8(firstline#1#(@l))
        
        
        Following rules are (at-least) weakly oriented:
                              firstline#1#(::(@x,@xs)) =  [4] @xs + [8]                        
                                                       >= [4] @xs + [8]                        
                                                       =  c_9(firstline#(@xs))                 
        
                                    lcstable#(@l1,@l2) =  [4] @l2 + [5]                        
                                                       >= [4] @l2 + [5]                        
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [4] @l2 + [5]                        
                                                       >= [4] @l2 + [5]                        
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [4] @l2 + [5]                        
                                                       >= [4] @l2 + [5]                        
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                                lcstable#1#(nil(),@l2) =  [4] @l2 + [5]                        
                                                       >= [4] @l2 + [5]                        
                                                       =  c_19(firstline#(@l2))                
        
                                lcstable#2#(@m,@l2,@x) =  [4] @l2 + [5]                        
                                                       >= [0]                                  
                                                       =  c_20(lcstable#3#(@m,@l2,@x))         
        
                        lcstable#3#(::(@l,@ls),@l2,@x) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_21(newline#(@x,@l,@l2))            
        
                             newline#(@y,@lastline,@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_26(newline#1#(@l,@lastline,@y))    
        
                   newline#1#(::(@x,@xs),@lastline,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
** Step 12.b:5: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - Weak DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [2]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [0]                  
                  p(#abs) = [2] x1 + [7]         
                  p(#add) = [1]                  
                  p(#and) = [4] x2 + [7]         
                 p(#ckgt) = [4] x1 + [0]         
              p(#compare) = [1] x1 + [1] x2 + [2]
                   p(#eq) = [2]                  
                p(#equal) = [1] x1 + [0]         
                p(#false) = [2]                  
              p(#greater) = [0]                  
                  p(#neg) = [2]                  
                  p(#pos) = [1] x1 + [2]         
                 p(#pred) = [2] x1 + [7]         
                    p(#s) = [1] x1 + [0]         
                 p(#succ) = [0]                  
                 p(#true) = [2]                  
                     p(+) = [0]                  
                    p(::) = [1] x2 + [4]         
             p(firstline) = [0]                  
           p(firstline#1) = [2]                  
                   p(lcs) = [0]                  
                 p(lcs#1) = [0]                  
                 p(lcs#2) = [0]                  
                 p(lcs#3) = [0]                  
              p(lcstable) = [0]                  
            p(lcstable#1) = [2]                  
            p(lcstable#2) = [3]                  
            p(lcstable#3) = [5]                  
                   p(max) = [0]                  
                 p(max#1) = [3] x3 + [0]         
               p(newline) = [1] x2 + [5]         
             p(newline#1) = [2] x1 + [0]         
             p(newline#2) = [1] x1 + [1] x3 + [0]
             p(newline#3) = [1] x1 + [0]         
             p(newline#4) = [0]                  
             p(newline#5) = [0]                  
             p(newline#6) = [0]                  
             p(newline#7) = [3]                  
                   p(nil) = [0]                  
                 p(right) = [0]                  
               p(right#1) = [1] x1 + [0]         
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
             p(#compare#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#pred#) = [0]                  
                p(#succ#) = [0]                  
                    p(+#) = [0]                  
            p(firstline#) = [0]                  
          p(firstline#1#) = [0]                  
                  p(lcs#) = [0]                  
                p(lcs#1#) = [0]                  
                p(lcs#2#) = [0]                  
                p(lcs#3#) = [0]                  
             p(lcstable#) = [1] x1 + [4] x2 + [2]
           p(lcstable#1#) = [1] x1 + [4] x2 + [2]
           p(lcstable#2#) = [2] x2 + [6]         
           p(lcstable#3#) = [2] x2 + [5]         
                  p(max#) = [1]                  
                p(max#1#) = [0]                  
              p(newline#) = [1] x3 + [2]         
            p(newline#1#) = [1] x1 + [2]         
            p(newline#2#) = [1] x3 + [6]         
            p(newline#3#) = [0]                  
            p(newline#4#) = [0]                  
            p(newline#5#) = [0]                  
            p(newline#6#) = [0]                  
            p(newline#7#) = [0]                  
                p(right#) = [0]                  
              p(right#1#) = [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) = [4] x1 + [0]         
                   p(c_9) = [4] x1 + [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) = [4]                  
                  p(c_19) = [4] x1 + [2]         
                  p(c_20) = [1] x1 + [1]         
                  p(c_21) = [2] x1 + [0]         
                  p(c_22) = [0]                  
                  p(c_23) = [0]                  
                  p(c_24) = [0]                  
                  p(c_25) = [0]                  
                  p(c_26) = [1] x1 + [0]         
                  p(c_27) = [1] x1 + [0]         
                  p(c_28) = [0]                  
                  p(c_29) = [1] x1 + [3]         
                  p(c_30) = [0]                  
                  p(c_31) = [1] x1 + [1] x2 + [0]
                  p(c_32) = [1] x2 + [0]         
                  p(c_33) = [2] x3 + [0]         
                  p(c_34) = [0]                  
                  p(c_35) = [2] x1 + [0]         
                  p(c_36) = [1] x1 + [0]         
                  p(c_37) = [2] x1 + [0]         
                  p(c_38) = [0]                  
                  p(c_39) = [1] x1 + [0]         
                  p(c_40) = [0]                  
                  p(c_41) = [1] x1 + [0]         
                  p(c_42) = [1] x2 + [0]         
                  p(c_43) = [0]                  
                  p(c_44) = [1] x1 + [4] x2 + [0]
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [2] x1 + [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) = [1] x1 + [0]         
                  p(c_70) = [0]                  
                  p(c_71) = [0]                  
                  p(c_72) = [0]                  
                  p(c_73) = [0]                  
                  p(c_74) = [0]                  
                  p(c_75) = [4] x1 + [0]         
                  p(c_76) = [1] x3 + [2]         
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
        
        Following rules are strictly oriented:
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) = [1] @xs + [6]                    
                                                       > [1] @xs + [5]                    
                                                       = c_29(newline#(@y,@lastline',@xs))
        
        
        Following rules are (at-least) weakly oriented:
                             firstline#(@l) =  [0]                                  
                                            >= [0]                                  
                                            =  c_8(firstline#1#(@l))                
        
                   firstline#1#(::(@x,@xs)) =  [0]                                  
                                            >= [0]                                  
                                            =  c_9(firstline#(@xs))                 
        
                         lcstable#(@l1,@l2) =  [1] @l1 + [4] @l2 + [2]              
                                            >= [1] @l1 + [4] @l2 + [2]              
                                            =  lcstable#1#(@l1,@l2)                 
        
                lcstable#1#(::(@x,@xs),@l2) =  [4] @l2 + [1] @xs + [6]              
                                            >= [4] @l2 + [1] @xs + [2]              
                                            =  lcstable#(@xs,@l2)                   
        
                lcstable#1#(::(@x,@xs),@l2) =  [4] @l2 + [1] @xs + [6]              
                                            >= [2] @l2 + [6]                        
                                            =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                     lcstable#1#(nil(),@l2) =  [4] @l2 + [2]                        
                                            >= [2]                                  
                                            =  c_19(firstline#(@l2))                
        
                     lcstable#2#(@m,@l2,@x) =  [2] @l2 + [6]                        
                                            >= [2] @l2 + [6]                        
                                            =  c_20(lcstable#3#(@m,@l2,@x))         
        
             lcstable#3#(::(@l,@ls),@l2,@x) =  [2] @l2 + [5]                        
                                            >= [2] @l2 + [4]                        
                                            =  c_21(newline#(@x,@l,@l2))            
        
                  newline#(@y,@lastline,@l) =  [1] @l + [2]                         
                                            >= [1] @l + [2]                         
                                            =  c_26(newline#1#(@l,@lastline,@y))    
        
        newline#1#(::(@x,@xs),@lastline,@y) =  [1] @xs + [6]                        
                                            >= [1] @xs + [6]                        
                                            =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
** Step 12.b:6: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
        - Weak DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [4]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [3]                  
                  p(#abs) = [0]                  
                  p(#add) = [0]                  
                  p(#and) = [4] x1 + [5]         
                 p(#ckgt) = [2] x1 + [0]         
              p(#compare) = [2] x1 + [0]         
                   p(#eq) = [3] x2 + [0]         
                p(#equal) = [4]                  
                p(#false) = [1]                  
              p(#greater) = [0]                  
                  p(#neg) = [4]                  
                  p(#pos) = [0]                  
                 p(#pred) = [0]                  
                    p(#s) = [0]                  
                 p(#succ) = [7]                  
                 p(#true) = [2]                  
                     p(+) = [0]                  
                    p(::) = [1] x2 + [1]         
             p(firstline) = [0]                  
           p(firstline#1) = [0]                  
                   p(lcs) = [0]                  
                 p(lcs#1) = [0]                  
                 p(lcs#2) = [0]                  
                 p(lcs#3) = [0]                  
              p(lcstable) = [4]                  
            p(lcstable#1) = [1]                  
            p(lcstable#2) = [2] x1 + [0]         
            p(lcstable#3) = [0]                  
                   p(max) = [0]                  
                 p(max#1) = [0]                  
               p(newline) = [0]                  
             p(newline#1) = [0]                  
             p(newline#2) = [0]                  
             p(newline#3) = [0]                  
             p(newline#4) = [0]                  
             p(newline#5) = [2] x1 + [0]         
             p(newline#6) = [1]                  
             p(newline#7) = [1] x1 + [4] x2 + [3]
                   p(nil) = [1]                  
                 p(right) = [0]                  
               p(right#1) = [1]                  
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
             p(#compare#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#pred#) = [2]                  
                p(#succ#) = [1]                  
                    p(+#) = [4] x2 + [4]         
            p(firstline#) = [0]                  
          p(firstline#1#) = [0]                  
                  p(lcs#) = [0]                  
                p(lcs#1#) = [0]                  
                p(lcs#2#) = [0]                  
                p(lcs#3#) = [0]                  
             p(lcstable#) = [1] x1 + [6] x2 + [7]
           p(lcstable#1#) = [1] x1 + [6] x2 + [7]
           p(lcstable#2#) = [6] x2 + [7]         
           p(lcstable#3#) = [6] x2 + [6]         
                  p(max#) = [0]                  
                p(max#1#) = [0]                  
              p(newline#) = [1] x3 + [1]         
            p(newline#1#) = [1] x1 + [0]         
            p(newline#2#) = [1] x3 + [1]         
            p(newline#3#) = [0]                  
            p(newline#4#) = [0]                  
            p(newline#5#) = [1] x6 + [0]         
            p(newline#6#) = [0]                  
            p(newline#7#) = [0]                  
                p(right#) = [0]                  
              p(right#1#) = [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) = [2]                  
                   p(c_8) = [2] x1 + [0]         
                   p(c_9) = [2] x1 + [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) = [2] x1 + [1]         
                  p(c_20) = [1] x1 + [0]         
                  p(c_21) = [6] x1 + [0]         
                  p(c_22) = [0]                  
                  p(c_23) = [0]                  
                  p(c_24) = [0]                  
                  p(c_25) = [0]                  
                  p(c_26) = [1] x1 + [0]         
                  p(c_27) = [1] x1 + [0]         
                  p(c_28) = [2]                  
                  p(c_29) = [1] x1 + [0]         
                  p(c_30) = [0]                  
                  p(c_31) = [1]                  
                  p(c_32) = [0]                  
                  p(c_33) = [0]                  
                  p(c_34) = [0]                  
                  p(c_35) = [2] x1 + [0]         
                  p(c_36) = [1] x1 + [0]         
                  p(c_37) = [0]                  
                  p(c_38) = [0]                  
                  p(c_39) = [0]                  
                  p(c_40) = [0]                  
                  p(c_41) = [0]                  
                  p(c_42) = [2] x1 + [0]         
                  p(c_43) = [0]                  
                  p(c_44) = [0]                  
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [0]                  
                  p(c_58) = [0]                  
                  p(c_59) = [0]                  
                  p(c_60) = [0]                  
                  p(c_61) = [0]                  
                  p(c_62) = [0]                  
                  p(c_63) = [0]                  
                  p(c_64) = [0]                  
                  p(c_65) = [0]                  
                  p(c_66) = [0]                  
                  p(c_67) = [0]                  
                  p(c_68) = [0]                  
                  p(c_69) = [0]                  
                  p(c_70) = [0]                  
                  p(c_71) = [0]                  
                  p(c_72) = [0]                  
                  p(c_73) = [0]                  
                  p(c_74) = [0]                  
                  p(c_75) = [0]                  
                  p(c_76) = [0]                  
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
        
        Following rules are strictly oriented:
        newline#(@y,@lastline,@l) = [1] @l + [1]                     
                                  > [1] @l + [0]                     
                                  = c_26(newline#1#(@l,@lastline,@y))
        
        
        Following rules are (at-least) weakly oriented:
                                        firstline#(@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_8(firstline#1#(@l))                
        
                              firstline#1#(::(@x,@xs)) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_9(firstline#(@xs))                 
        
                                    lcstable#(@l1,@l2) =  [1] @l1 + [6] @l2 + [7]              
                                                       >= [1] @l1 + [6] @l2 + [7]              
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [6] @l2 + [1] @xs + [8]              
                                                       >= [6] @l2 + [1] @xs + [7]              
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [6] @l2 + [1] @xs + [8]              
                                                       >= [6] @l2 + [7]                        
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                                lcstable#1#(nil(),@l2) =  [6] @l2 + [8]                        
                                                       >= [1]                                  
                                                       =  c_19(firstline#(@l2))                
        
                                lcstable#2#(@m,@l2,@x) =  [6] @l2 + [7]                        
                                                       >= [6] @l2 + [6]                        
                                                       =  c_20(lcstable#3#(@m,@l2,@x))         
        
                        lcstable#3#(::(@l,@ls),@l2,@x) =  [6] @l2 + [6]                        
                                                       >= [6] @l2 + [6]                        
                                                       =  c_21(newline#(@x,@l,@l2))            
        
                   newline#1#(::(@x,@xs),@lastline,@y) =  [1] @xs + [1]                        
                                                       >= [1] @xs + [1]                        
                                                       =  c_27(newline#2#(@lastline,@x,@xs,@y))
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [1] @xs + [1]                        
                                                       >= [1] @xs + [1]                        
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
** Step 12.b:7: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
        - Weak DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_8) = {1},
          uargs(c_9) = {1},
          uargs(c_19) = {1},
          uargs(c_20) = {1},
          uargs(c_21) = {1},
          uargs(c_26) = {1},
          uargs(c_27) = {1},
          uargs(c_29) = {1}
        
        Following symbols are considered usable:
          {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#
          ,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#,lcstable#3#,max#,max#1#,newline#,newline#1#
          ,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#,newline#7#,right#,right#1#}
        TcT has computed the following interpretation:
                    p(#0) = [1]                  
                   p(#EQ) = [0]                  
                   p(#GT) = [0]                  
                   p(#LT) = [0]                  
                  p(#abs) = [5] x1 + [0]         
                  p(#add) = [1] x2 + [0]         
                  p(#and) = [0]                  
                 p(#ckgt) = [0]                  
              p(#compare) = [1] x1 + [5]         
                   p(#eq) = [1] x1 + [1] x2 + [0]
                p(#equal) = [3]                  
                p(#false) = [0]                  
              p(#greater) = [4] x1 + [0]         
                  p(#neg) = [1]                  
                  p(#pos) = [2]                  
                 p(#pred) = [1] x1 + [0]         
                    p(#s) = [4]                  
                 p(#succ) = [5] x1 + [0]         
                 p(#true) = [4]                  
                     p(+) = [1] x2 + [6]         
                    p(::) = [1] x2 + [4]         
             p(firstline) = [0]                  
           p(firstline#1) = [7]                  
                   p(lcs) = [0]                  
                 p(lcs#1) = [0]                  
                 p(lcs#2) = [0]                  
                 p(lcs#3) = [0]                  
              p(lcstable) = [0]                  
            p(lcstable#1) = [0]                  
            p(lcstable#2) = [0]                  
            p(lcstable#3) = [0]                  
                   p(max) = [0]                  
                 p(max#1) = [3] x2 + [3] x3 + [0]
               p(newline) = [0]                  
             p(newline#1) = [0]                  
             p(newline#2) = [0]                  
             p(newline#3) = [0]                  
             p(newline#4) = [0]                  
             p(newline#5) = [3]                  
             p(newline#6) = [0]                  
             p(newline#7) = [1] x1 + [4]         
                   p(nil) = [4]                  
                 p(right) = [0]                  
               p(right#1) = [0]                  
                 p(#abs#) = [0]                  
                 p(#add#) = [0]                  
                 p(#and#) = [0]                  
                p(#ckgt#) = [0]                  
             p(#compare#) = [0]                  
                  p(#eq#) = [0]                  
               p(#equal#) = [0]                  
             p(#greater#) = [0]                  
                p(#pred#) = [0]                  
                p(#succ#) = [0]                  
                    p(+#) = [0]                  
            p(firstline#) = [0]                  
          p(firstline#1#) = [0]                  
                  p(lcs#) = [0]                  
                p(lcs#1#) = [0]                  
                p(lcs#2#) = [0]                  
                p(lcs#3#) = [0]                  
             p(lcstable#) = [5] x2 + [7]         
           p(lcstable#1#) = [5] x2 + [7]         
           p(lcstable#2#) = [4] x2 + [7]         
           p(lcstable#3#) = [4] x2 + [3]         
                  p(max#) = [0]                  
                p(max#1#) = [0]                  
              p(newline#) = [2] x3 + [1]         
            p(newline#1#) = [2] x1 + [1]         
            p(newline#2#) = [2] x3 + [1]         
            p(newline#3#) = [0]                  
            p(newline#4#) = [0]                  
            p(newline#5#) = [0]                  
            p(newline#6#) = [0]                  
            p(newline#7#) = [0]                  
                p(right#) = [0]                  
              p(right#1#) = [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) = [1] x1 + [0]         
                   p(c_9) = [2] x1 + [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) = [4] x1 + [7]         
                  p(c_20) = [1] x1 + [4]         
                  p(c_21) = [2] x1 + [1]         
                  p(c_22) = [0]                  
                  p(c_23) = [4] x1 + [0]         
                  p(c_24) = [2]                  
                  p(c_25) = [2]                  
                  p(c_26) = [1] x1 + [0]         
                  p(c_27) = [1] x1 + [6]         
                  p(c_28) = [1]                  
                  p(c_29) = [1] x1 + [0]         
                  p(c_30) = [1]                  
                  p(c_31) = [0]                  
                  p(c_32) = [0]                  
                  p(c_33) = [0]                  
                  p(c_34) = [0]                  
                  p(c_35) = [0]                  
                  p(c_36) = [0]                  
                  p(c_37) = [0]                  
                  p(c_38) = [0]                  
                  p(c_39) = [0]                  
                  p(c_40) = [0]                  
                  p(c_41) = [0]                  
                  p(c_42) = [0]                  
                  p(c_43) = [0]                  
                  p(c_44) = [0]                  
                  p(c_45) = [0]                  
                  p(c_46) = [0]                  
                  p(c_47) = [0]                  
                  p(c_48) = [0]                  
                  p(c_49) = [0]                  
                  p(c_50) = [0]                  
                  p(c_51) = [0]                  
                  p(c_52) = [0]                  
                  p(c_53) = [0]                  
                  p(c_54) = [0]                  
                  p(c_55) = [0]                  
                  p(c_56) = [0]                  
                  p(c_57) = [0]                  
                  p(c_58) = [0]                  
                  p(c_59) = [0]                  
                  p(c_60) = [0]                  
                  p(c_61) = [0]                  
                  p(c_62) = [0]                  
                  p(c_63) = [0]                  
                  p(c_64) = [0]                  
                  p(c_65) = [0]                  
                  p(c_66) = [0]                  
                  p(c_67) = [0]                  
                  p(c_68) = [0]                  
                  p(c_69) = [0]                  
                  p(c_70) = [0]                  
                  p(c_71) = [0]                  
                  p(c_72) = [0]                  
                  p(c_73) = [0]                  
                  p(c_74) = [0]                  
                  p(c_75) = [0]                  
                  p(c_76) = [0]                  
                  p(c_77) = [0]                  
                  p(c_78) = [0]                  
                  p(c_79) = [0]                  
                  p(c_80) = [0]                  
                  p(c_81) = [0]                  
                  p(c_82) = [0]                  
                  p(c_83) = [0]                  
                  p(c_84) = [0]                  
                  p(c_85) = [0]                  
                  p(c_86) = [0]                  
                  p(c_87) = [0]                  
        
        Following rules are strictly oriented:
        newline#1#(::(@x,@xs),@lastline,@y) = [2] @xs + [9]                        
                                            > [2] @xs + [7]                        
                                            = c_27(newline#2#(@lastline,@x,@xs,@y))
        
        
        Following rules are (at-least) weakly oriented:
                                        firstline#(@l) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_8(firstline#1#(@l))                
        
                              firstline#1#(::(@x,@xs)) =  [0]                                  
                                                       >= [0]                                  
                                                       =  c_9(firstline#(@xs))                 
        
                                    lcstable#(@l1,@l2) =  [5] @l2 + [7]                        
                                                       >= [5] @l2 + [7]                        
                                                       =  lcstable#1#(@l1,@l2)                 
        
                           lcstable#1#(::(@x,@xs),@l2) =  [5] @l2 + [7]                        
                                                       >= [5] @l2 + [7]                        
                                                       =  lcstable#(@xs,@l2)                   
        
                           lcstable#1#(::(@x,@xs),@l2) =  [5] @l2 + [7]                        
                                                       >= [4] @l2 + [7]                        
                                                       =  lcstable#2#(lcstable(@xs,@l2),@l2,@x)
        
                                lcstable#1#(nil(),@l2) =  [5] @l2 + [7]                        
                                                       >= [7]                                  
                                                       =  c_19(firstline#(@l2))                
        
                                lcstable#2#(@m,@l2,@x) =  [4] @l2 + [7]                        
                                                       >= [4] @l2 + [7]                        
                                                       =  c_20(lcstable#3#(@m,@l2,@x))         
        
                        lcstable#3#(::(@l,@ls),@l2,@x) =  [4] @l2 + [3]                        
                                                       >= [4] @l2 + [3]                        
                                                       =  c_21(newline#(@x,@l,@l2))            
        
                             newline#(@y,@lastline,@l) =  [2] @l + [1]                         
                                                       >= [2] @l + [1]                         
                                                       =  c_26(newline#1#(@l,@lastline,@y))    
        
        newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) =  [2] @xs + [1]                        
                                                       >= [2] @xs + [1]                        
                                                       =  c_29(newline#(@y,@lastline',@xs))    
        
** Step 12.b:8: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
            lcstable#(@l1,@l2) -> lcstable#1#(@l1,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#(@xs,@l2)
            lcstable#1#(::(@x,@xs),@l2) -> lcstable#2#(lcstable(@xs,@l2),@l2,@x)
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
            lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
            newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
            newline#2#(::(@belowVal,@lastline'),@x,@xs,@y) -> c_29(newline#(@y,@lastline',@xs))
        - 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))
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@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) -> #add(@x,@y)
            firstline(@l) -> firstline#1(@l)
            firstline#1(::(@x,@xs)) -> ::(#abs(#0()),firstline(@xs))
            firstline#1(nil()) -> nil()
            lcstable(@l1,@l2) -> lcstable#1(@l1,@l2)
            lcstable#1(::(@x,@xs),@l2) -> lcstable#2(lcstable(@xs,@l2),@l2,@x)
            lcstable#1(nil(),@l2) -> ::(firstline(@l2),nil())
            lcstable#2(@m,@l2,@x) -> lcstable#3(@m,@l2,@x)
            lcstable#3(::(@l,@ls),@l2,@x) -> ::(newline(@x,@l,@l2),::(@l,@ls))
            lcstable#3(nil(),@l2,@x) -> nil()
            max(@a,@b) -> max#1(#greater(@a,@b),@a,@b)
            max#1(#false(),@a,@b) -> @b
            max#1(#true(),@a,@b) -> @a
            newline(@y,@lastline,@l) -> newline#1(@l,@lastline,@y)
            newline#1(::(@x,@xs),@lastline,@y) -> newline#2(@lastline,@x,@xs,@y)
            newline#1(nil(),@lastline,@y) -> nil()
            newline#2(::(@belowVal,@lastline'),@x,@xs,@y) -> newline#3(newline(@y,@lastline',@xs)
                                                                      ,@belowVal
                                                                      ,@lastline'
                                                                      ,@x
                                                                      ,@y)
            newline#2(nil(),@x,@xs,@y) -> nil()
            newline#3(@nl,@belowVal,@lastline',@x,@y) -> newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y)
            newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) -> newline#5(right(@lastline')
                                                                            ,@belowVal
                                                                            ,@nl
                                                                            ,@rightVal
                                                                            ,@x
                                                                            ,@y)
            newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) -> newline#6(newline#7(#equal(@x,@y)
                                                                                    ,@belowVal
                                                                                    ,@diagVal
                                                                                    ,@rightVal)
                                                                          ,@nl)
            newline#6(@elem,@nl) -> ::(@elem,@nl)
            newline#7(#false(),@belowVal,@diagVal,@rightVal) -> max(@belowVal,@rightVal)
            newline#7(#true(),@belowVal,@diagVal,@rightVal) -> +(@diagVal,#pos(#s(#0())))
            right(@l) -> right#1(@l)
            right#1(::(@x,@xs)) -> @x
            right#1(nil()) -> #abs(#0())
        - Signature:
            {#abs/1,#add/2,#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,#pred/1,#succ/1,+/2,firstline/1
            ,firstline#1/1,lcs/2,lcs#1/1,lcs#2/1,lcs#3/1,lcstable/2,lcstable#1/2,lcstable#2/3,lcstable#3/3,max/2,max#1/3
            ,newline/3,newline#1/3,newline#2/4,newline#3/5,newline#4/6,newline#5/6,newline#6/2,newline#7/4,right/1
            ,right#1/1,#abs#/1,#add#/2,#and#/2,#ckgt#/1,#compare#/2,#eq#/2,#equal#/2,#greater#/2,#pred#/1,#succ#/1,+#/2
            ,firstline#/1,firstline#1#/1,lcs#/2,lcs#1#/1,lcs#2#/1,lcs#3#/1,lcstable#/2,lcstable#1#/2,lcstable#2#/3
            ,lcstable#3#/3,max#/2,max#1#/3,newline#/3,newline#1#/3,newline#2#/4,newline#3#/5,newline#4#/6,newline#5#/6
            ,newline#6#/2,newline#7#/4,right#/1,right#1#/1} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0,#neg/1,#pos/1,#s/1
            ,#true/0,::/2,nil/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/1,c_6/2,c_7/1,c_8/1,c_9/1,c_10/0,c_11/1,c_12/1,c_13/1,c_14/1
            ,c_15/0,c_16/1,c_17/1,c_18/2,c_19/1,c_20/1,c_21/1,c_22/0,c_23/2,c_24/0,c_25/0,c_26/1,c_27/1,c_28/0,c_29/1
            ,c_30/0,c_31/2,c_32/2,c_33/3,c_34/0,c_35/1,c_36/1,c_37/1,c_38/0,c_39/1,c_40/0,c_41/1,c_42/2,c_43/1,c_44/2
            ,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/1,c_58/0,c_59/0
            ,c_60/0,c_61/1,c_62/0,c_63/1,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/1,c_70/0,c_71/0,c_72/0,c_73/1,c_74/0
            ,c_75/1,c_76/3,c_77/0,c_78/0,c_79/0,c_80/0,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#abs#,#add#,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
            ,#pred#,#succ#,+#,firstline#,firstline#1#,lcs#,lcs#1#,lcs#2#,lcs#3#,lcstable#,lcstable#1#,lcstable#2#
            ,lcstable#3#,max#,max#1#,newline#,newline#1#,newline#2#,newline#3#,newline#4#,newline#5#,newline#6#
            ,newline#7#,right#,right#1#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^2))