*** 1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        #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 DP Rules:
        
      Weak TRS Rules:
        #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
        basic terms: {#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}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      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.
*** 1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        #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()))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 Rules:
        #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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      UsableRules
    Proof:
      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())
        #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#(@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()))
*** 1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        #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()))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()                   
*** 1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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()))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()                   
*** 1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()))                              
*** 1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()))                              
*** 1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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'))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()))                              
*** 1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()))                              
*** 1.1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      RemoveWeakSuffixes
    Proof:
      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()                             
*** 1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      SimplifyRHS
    Proof:
      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))
*** 1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      RemoveHeads
    Proof:
      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)))]
*** 1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS 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())
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
    Applied Processor:
      Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    Proof:
      We analyse the complexity of following sub-problems (R) and (S).
      Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
      
      Problem (R)
        Strict DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      
      Problem (S)
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
  *** 1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        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
          
          4:W: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)):5
             -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):6
          
          5:W: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:W:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
          
          7:W: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:W: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:W: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:W: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:W: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
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          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))                    
          11: newline#2#(::(@belowVal                   
                           ,@lastline')                 
                        ,@x                             
                        ,@xs                            
                        ,@y) -> c_29(newline#(@y        
                                             ,@lastline'
                                             ,@xs))     
          10: newline#1#(::(@x,@xs)                     
                        ,@lastline                      
                        ,@y) ->                         
                c_27(newline#2#(@lastline               
                               ,@x                      
                               ,@xs                     
                               ,@y))                    
  *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Strict TRS Rules:
          
        Weak DP Rules:
          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))
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        SimplifyRHS
      Proof:
        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
          
          4:W: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)):5
             -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):6
          
          5:W: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)):4
          
          6:W:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):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))
  *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Strict TRS Rules:
          
        Weak DP Rules:
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        UsableRules
      Proof:
        We replace rewrite rules by usable rules:
          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#(@xs,@l2))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
  *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
      Considered Problem:
        Strict DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Strict TRS Rules:
          
        Weak DP Rules:
          lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
          lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
        Weak TRS Rules:
          
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
      Proof:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
          2: firstline#1#(::(@x,@xs)) ->
               c_9(firstline#(@xs))     
          
        The strictly oriented rules are moved into the weak component.
    *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            firstline#(@l) -> c_8(firstline#1#(@l))
            firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
          Strict TRS Rules:
            
          Weak DP Rules:
            lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
            lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          Weak TRS Rules:
            
          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
            basic terms: {#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#}/{#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 first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
        Proof:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(c_8) = {1},
            uargs(c_9) = {1},
            uargs(c_17) = {1},
            uargs(c_18) = {1},
            uargs(c_19) = {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) = [1]                                             
                     p(#GT) = [1]                                             
                     p(#LT) = [1]                                             
                    p(#abs) = [1] x1 + [1]                                    
                    p(#add) = [4] x1 + [1] x2 + [2]                           
                    p(#and) = [0]                                             
                   p(#ckgt) = [0]                                             
                p(#compare) = [1] x1 + [0]                                    
                     p(#eq) = [1]                                             
                  p(#equal) = [8] x2 + [0]                                    
                  p(#false) = [1]                                             
                p(#greater) = [0]                                             
                    p(#neg) = [0]                                             
                    p(#pos) = [0]                                             
                   p(#pred) = [1] x1 + [1]                                    
                      p(#s) = [0]                                             
                   p(#succ) = [0]                                             
                   p(#true) = [0]                                             
                       p(+) = [1] x2 + [0]                                    
                      p(::) = [1] x1 + [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) = [0]                                             
              p(lcstable#1) = [0]                                             
              p(lcstable#2) = [0]                                             
              p(lcstable#3) = [2]                                             
                     p(max) = [1] x2 + [2]                                    
                   p(max#1) = [0]                                             
                 p(newline) = [1] x3 + [0]                                    
               p(newline#1) = [2] x2 + [1]                                    
               p(newline#2) = [0]                                             
               p(newline#3) = [0]                                             
               p(newline#4) = [0]                                             
               p(newline#5) = [0]                                             
               p(newline#6) = [0]                                             
               p(newline#7) = [1] x1 + [8] x2 + [0]                           
                     p(nil) = [1]                                             
                   p(right) = [1] x1 + [2]                                    
                 p(right#1) = [8]                                             
                   p(#abs#) = [1]                                             
                   p(#add#) = [1] x1 + [2] x2 + [1]                           
                   p(#and#) = [1] x1 + [0]                                    
                  p(#ckgt#) = [1] x1 + [1]                                    
               p(#compare#) = [8] x2 + [1]                                    
                    p(#eq#) = [1] x2 + [2]                                    
                 p(#equal#) = [4]                                             
               p(#greater#) = [1] x2 + [0]                                    
                  p(#pred#) = [4] x1 + [2]                                    
                  p(#succ#) = [2] x1 + [0]                                    
                      p(+#) = [0]                                             
              p(firstline#) = [8] x1 + [8]                                    
            p(firstline#1#) = [8] x1 + [8]                                    
                    p(lcs#) = [4] x1 + [1]                                    
                  p(lcs#1#) = [4]                                             
                  p(lcs#2#) = [8]                                             
                  p(lcs#3#) = [2] x1 + [1]                                    
               p(lcstable#) = [2] x1 + [8] x2 + [9]                           
             p(lcstable#1#) = [2] x1 + [8] x2 + [7]                           
             p(lcstable#2#) = [2] x1 + [1] x3 + [4]                           
             p(lcstable#3#) = [1] x2 + [1] x3 + [1]                           
                    p(max#) = [1] x1 + [2] x2 + [0]                           
                  p(max#1#) = [8] x1 + [1] x2 + [0]                           
                p(newline#) = [2] x2 + [1]                                    
              p(newline#1#) = [2] x1 + [1] x2 + [4] x3 + [1]                  
              p(newline#2#) = [1] x1 + [2] x4 + [1]                           
              p(newline#3#) = [1] x2 + [1] x3 + [1] x5 + [0]                  
              p(newline#4#) = [1] x1 + [1] x2 + [1] x4 + [4] x5 + [2] x6 + [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) = [2] x1 + [0]                                    
                     p(c_6) = [4] x1 + [1] x2 + [0]                           
                     p(c_7) = [0]                                             
                     p(c_8) = [1] x1 + [0]                                    
                     p(c_9) = [1] x1 + [13]                                   
                    p(c_10) = [0]                                             
                    p(c_11) = [4] x1 + [0]                                    
                    p(c_12) = [0]                                             
                    p(c_13) = [4] x1 + [0]                                    
                    p(c_14) = [0]                                             
                    p(c_15) = [0]                                             
                    p(c_16) = [0]                                             
                    p(c_17) = [1] x1 + [2]                                    
                    p(c_18) = [1] x1 + [2]                                    
                    p(c_19) = [1] x1 + [0]                                    
                    p(c_20) = [2] x1 + [0]                                    
                    p(c_21) = [2] x1 + [0]                                    
                    p(c_22) = [0]                                             
                    p(c_23) = [1] x2 + [0]                                    
                    p(c_24) = [0]                                             
                    p(c_25) = [0]                                             
                    p(c_26) = [2]                                             
                    p(c_27) = [0]                                             
                    p(c_28) = [0]                                             
                    p(c_29) = [1] x1 + [0]                                    
                    p(c_30) = [0]                                             
                    p(c_31) = [1] x1 + [1] x2 + [0]                           
                    p(c_32) = [2] x1 + [0]                                    
                    p(c_33) = [1] x1 + [8] x2 + [2] 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) = [2] x1 + [0]                                    
                    p(c_40) = [0]                                             
                    p(c_41) = [1] x1 + [0]                                    
                    p(c_42) = [2] x2 + [0]                                    
                    p(c_43) = [8] x1 + [0]                                    
                    p(c_44) = [1] x1 + [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) = [1] 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) = [2] x1 + [0]                                    
                    p(c_76) = [2] x2 + [0]                                    
                    p(c_77) = [0]                                             
                    p(c_78) = [0]                                             
                    p(c_79) = [0]                                             
                    p(c_80) = [4]                                             
                    p(c_81) = [1]                                             
                    p(c_82) = [2]                                             
                    p(c_83) = [1]                                             
                    p(c_84) = [2]                                             
                    p(c_85) = [1]                                             
                    p(c_86) = [0]                                             
                    p(c_87) = [1]                                             
          
          Following rules are strictly oriented:
          firstline#1#(::(@x,@xs)) = [8] @x + [8] @xs + [24]
                                   > [8] @xs + [21]         
                                   = c_9(firstline#(@xs))   
          
          
          Following rules are (at-least) weakly oriented:
                       firstline#(@l) =  [8] @l + [8]                     
                                      >= [8] @l + [8]                     
                                      =  c_8(firstline#1#(@l))            
          
                   lcstable#(@l1,@l2) =  [2] @l1 + [8] @l2 + [9]          
                                      >= [2] @l1 + [8] @l2 + [9]          
                                      =  c_17(lcstable#1#(@l1,@l2))       
          
          lcstable#1#(::(@x,@xs),@l2) =  [8] @l2 + [2] @x + [2] @xs + [11]
                                      >= [8] @l2 + [2] @xs + [11]         
                                      =  c_18(lcstable#(@xs,@l2))         
          
               lcstable#1#(nil(),@l2) =  [8] @l2 + [9]                    
                                      >= [8] @l2 + [8]                    
                                      =  c_19(firstline#(@l2))            
          
    *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            firstline#(@l) -> c_8(firstline#1#(@l))
          Strict TRS Rules:
            
          Weak DP Rules:
            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#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          Weak TRS Rules:
            
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            firstline#(@l) -> c_8(firstline#1#(@l))
          Strict TRS Rules:
            
          Weak DP Rules:
            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#(@xs,@l2))
            lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
          Weak TRS Rules:
            
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
        Applied Processor:
          PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
        Proof:
          We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
            1: firstline#(@l) ->      
                 c_8(firstline#1#(@l))
            
          Consider the set of all dependency pairs
            1: firstline#(@l) ->             
                 c_8(firstline#1#(@l))       
            2: firstline#1#(::(@x,@xs)) ->   
                 c_9(firstline#(@xs))        
            3: lcstable#(@l1,@l2) ->         
                 c_17(lcstable#1#(@l1,@l2))  
            4: lcstable#1#(::(@x,@xs),@l2) ->
                 c_18(lcstable#(@xs,@l2))    
            5: lcstable#1#(nil(),@l2) ->     
                 c_19(firstline#(@l2))       
          Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}induces the complexity certificateTIME (?,O(n^1))
          SPACE(?,?)on application of the dependency pairs
            {1}
          These cover all (indirect) predecessors of dependency pairs
            {1,2}
          their number of applications is equally bounded.
          The dependency pairs are shifted into the weak component.
      *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              firstline#(@l) -> c_8(firstline#1#(@l))
            Strict TRS Rules:
              
            Weak DP Rules:
              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#(@xs,@l2))
              lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            Weak TRS Rules:
              
            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
              basic terms: {#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#}/{#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 first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
          Proof:
            We apply a matrix interpretation of kind constructor based matrix interpretation:
            The following argument positions are considered usable:
              uargs(c_8) = {1},
              uargs(c_9) = {1},
              uargs(c_17) = {1},
              uargs(c_18) = {1},
              uargs(c_19) = {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) = [1] x2 + [0]                  
                      p(#and) = [0]                           
                     p(#ckgt) = [1] x1 + [0]                  
                  p(#compare) = [0]                           
                       p(#eq) = [1] x2 + [0]                  
                    p(#equal) = [0]                           
                    p(#false) = [0]                           
                  p(#greater) = [0]                           
                      p(#neg) = [0]                           
                      p(#pos) = [1] x1 + [0]                  
                     p(#pred) = [0]                           
                        p(#s) = [2]                           
                     p(#succ) = [1] x1 + [1]                  
                     p(#true) = [2]                           
                         p(+) = [1] x2 + [4]                  
                        p(::) = [1] x1 + [1] x2 + [2]         
                 p(firstline) = [1] x1 + [1]                  
               p(firstline#1) = [8] x1 + [1]                  
                       p(lcs) = [1] x1 + [1] x2 + [4]         
                     p(lcs#1) = [2] x1 + [1]                  
                     p(lcs#2) = [2] x1 + [1]                  
                     p(lcs#3) = [8]                           
                  p(lcstable) = [0]                           
                p(lcstable#1) = [1] x1 + [1] x2 + [0]         
                p(lcstable#2) = [8] x1 + [1] x2 + [1]         
                p(lcstable#3) = [0]                           
                       p(max) = [1] x1 + [1] x2 + [1]         
                     p(max#1) = [2] x1 + [0]                  
                   p(newline) = [1] x1 + [1] x2 + [1] x3 + [1]
                 p(newline#1) = [1] x2 + [0]                  
                 p(newline#2) = [1] x2 + [1]                  
                 p(newline#3) = [0]                           
                 p(newline#4) = [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#) = [8] x1 + [12]                 
              p(firstline#1#) = [8] x1 + [0]                  
                      p(lcs#) = [1] x1 + [8]                  
                    p(lcs#1#) = [2]                           
                    p(lcs#2#) = [0]                           
                    p(lcs#3#) = [8]                           
                 p(lcstable#) = [8] x2 + [12]                 
               p(lcstable#1#) = [8] x2 + [12]                 
               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) = [1] x1 + [4]                  
                       p(c_9) = [1] x1 + [4]                  
                      p(c_10) = [0]                           
                      p(c_11) = [1] x1 + [0]                  
                      p(c_12) = [0]                           
                      p(c_13) = [1] x1 + [0]                  
                      p(c_14) = [2] x1 + [0]                  
                      p(c_15) = [0]                           
                      p(c_16) = [1] x1 + [0]                  
                      p(c_17) = [1] x1 + [0]                  
                      p(c_18) = [1] x1 + [0]                  
                      p(c_19) = [1] x1 + [0]                  
                      p(c_20) = [1] x1 + [0]                  
                      p(c_21) = [0]                           
                      p(c_22) = [0]                           
                      p(c_23) = [0]                           
                      p(c_24) = [0]                           
                      p(c_25) = [0]                           
                      p(c_26) = [0]                           
                      p(c_27) = [1] x1 + [0]                  
                      p(c_28) = [0]                           
                      p(c_29) = [1] x1 + [0]                  
                      p(c_30) = [0]                           
                      p(c_31) = [1] x2 + [0]                  
                      p(c_32) = [1] x1 + [8] x2 + [0]         
                      p(c_33) = [1] x2 + [0]                  
                      p(c_34) = [0]                           
                      p(c_35) = [8] x1 + [0]                  
                      p(c_36) = [0]                           
                      p(c_37) = [1] x1 + [0]                  
                      p(c_38) = [0]                           
                      p(c_39) = [4] x1 + [0]                  
                      p(c_40) = [0]                           
                      p(c_41) = [1] x1 + [0]                  
                      p(c_42) = [1] x1 + [2] x2 + [0]         
                      p(c_43) = [0]                           
                      p(c_44) = [2] 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) = [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) = [1] x1 + [0]                  
                      p(c_74) = [0]                           
                      p(c_75) = [0]                           
                      p(c_76) = [2] x2 + [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) = [8] @l + [12]        
                           > [8] @l + [4]         
                           = c_8(firstline#1#(@l))
            
            
            Following rules are (at-least) weakly oriented:
               firstline#1#(::(@x,@xs)) =  [8] @x + [8] @xs + [16]   
                                        >= [8] @xs + [16]            
                                        =  c_9(firstline#(@xs))      
            
                     lcstable#(@l1,@l2) =  [8] @l2 + [12]            
                                        >= [8] @l2 + [12]            
                                        =  c_17(lcstable#1#(@l1,@l2))
            
            lcstable#1#(::(@x,@xs),@l2) =  [8] @l2 + [12]            
                                        >= [8] @l2 + [12]            
                                        =  c_18(lcstable#(@xs,@l2))  
            
                 lcstable#1#(nil(),@l2) =  [8] @l2 + [12]            
                                        >= [8] @l2 + [12]            
                                        =  c_19(firstline#(@l2))     
            
      *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1 Progress [(?,O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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#(@xs,@l2))
              lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            Weak TRS Rules:
              
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
          Applied Processor:
            Assumption
          Proof:
            ()
      
      *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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#(@xs,@l2))
              lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
            Weak TRS Rules:
              
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
          Applied Processor:
            RemoveWeakSuffixes
          Proof:
            Consider the dependency graph
              1:W:firstline#(@l) -> c_8(firstline#1#(@l))
                 -->_1 firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs)):2
              
              2:W:firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
                 -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
              
              3:W:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
                 -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):5
                 -->_1 lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2)):4
              
              4:W:lcstable#1#(::(@x,@xs),@l2) -> c_18(lcstable#(@xs,@l2))
                 -->_1 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):3
              
              5:W:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
                 -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):1
              
            The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
              3: lcstable#(@l1,@l2) ->         
                   c_17(lcstable#1#(@l1,@l2))  
              4: lcstable#1#(::(@x,@xs),@l2) ->
                   c_18(lcstable#(@xs,@l2))    
              5: lcstable#1#(nil(),@l2) ->     
                   c_19(firstline#(@l2))       
              1: firstline#(@l) ->             
                   c_8(firstline#1#(@l))       
              2: firstline#1#(::(@x,@xs)) ->   
                   c_9(firstline#(@xs))        
      *** 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2.1 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              
            Weak TRS Rules:
              
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
          Applied Processor:
            EmptyProcessor
          Proof:
            The problem is already closed. The intended complexity is O(1).
      
  *** 1.1.1.1.1.1.1.1.1.1.1.1.2 Progress [(?,O(n^2))]  ***
      Considered Problem:
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
      Proof:
        We estimate the number of application of
          {3}
        by application of
          Pre({3}) = {1}.
        Here rules are labelled as follows:
          1:  lcstable#(@l1,@l2) ->                     
                c_17(lcstable#1#(@l1,@l2))              
          2:  lcstable#1#(::(@x,@xs),@l2) ->            
                c_18(lcstable#2#(lcstable(@xs           
                                         ,@l2)          
                                ,@l2                    
                                ,@x)                    
                    ,lcstable#(@xs,@l2))                
          3:  lcstable#1#(nil(),@l2) ->                 
                c_19(firstline#(@l2))                   
          4:  lcstable#2#(@m,@l2,@x) ->                 
                c_20(lcstable#3#(@m,@l2,@x))            
          5:  lcstable#3#(::(@l,@ls)                    
                         ,@l2                           
                         ,@x) -> c_21(newline#(@x       
                                              ,@l       
                                              ,@l2))    
          6:  newline#(@y,@lastline,@l) ->              
                c_26(newline#1#(@l                      
                               ,@lastline               
                               ,@y))                    
          7:  newline#1#(::(@x,@xs)                     
                        ,@lastline                      
                        ,@y) ->                         
                c_27(newline#2#(@lastline               
                               ,@x                      
                               ,@xs                     
                               ,@y))                    
          8:  newline#2#(::(@belowVal                   
                           ,@lastline')                 
                        ,@x                             
                        ,@xs                            
                        ,@y) -> c_29(newline#(@y        
                                             ,@lastline'
                                             ,@xs))     
          9:  firstline#(@l) ->                         
                c_8(firstline#1#(@l))                   
          10: firstline#1#(::(@x,@xs)) ->               
                c_9(firstline#(@xs))                    
  *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1 Progress [(?,O(n^2))]  ***
      Considered Problem:
        Strict DP Rules:
          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#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))
        Strict TRS Rules:
          
        Weak DP Rules:
          firstline#(@l) -> c_8(firstline#1#(@l))
          firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
          lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        Consider the dependency graph
          1:S:lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2))
             -->_1 lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2)):10
             -->_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))
             -->_1 lcstable#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x)):3
             -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):1
          
          3: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)):4
          
          4: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)):5
          
          5: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)):6
          
          6: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)):7
          
          7: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)):5
          
          8:W:firstline#(@l) -> c_8(firstline#1#(@l))
             -->_1 firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs)):9
          
          9:W:firstline#1#(::(@x,@xs)) -> c_9(firstline#(@xs))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):8
          
          10:W:lcstable#1#(nil(),@l2) -> c_19(firstline#(@l2))
             -->_1 firstline#(@l) -> c_8(firstline#1#(@l)):8
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          10: lcstable#1#(nil(),@l2) ->  
                c_19(firstline#(@l2))    
          8:  firstline#(@l) ->          
                c_8(firstline#1#(@l))    
          9:  firstline#1#(::(@x,@xs)) ->
                c_9(firstline#(@xs))     
  *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1 Progress [(?,O(n^2))]  ***
      Considered Problem:
        Strict DP Rules:
          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#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))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS 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())
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
      Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
      Proof:
        We first use the processor NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
          6: newline#1#(::(@x,@xs)      
                       ,@lastline       
                       ,@y) ->          
               c_27(newline#2#(@lastline
                              ,@x       
                              ,@xs      
                              ,@y))     
          
        Consider the set of all dependency pairs
          1: lcstable#(@l1,@l2) ->                     
               c_17(lcstable#1#(@l1,@l2))              
          2: lcstable#1#(::(@x,@xs),@l2) ->            
               c_18(lcstable#2#(lcstable(@xs           
                                        ,@l2)          
                               ,@l2                    
                               ,@x)                    
                   ,lcstable#(@xs,@l2))                
          3: lcstable#2#(@m,@l2,@x) ->                 
               c_20(lcstable#3#(@m,@l2,@x))            
          4: lcstable#3#(::(@l,@ls)                    
                        ,@l2                           
                        ,@x) -> c_21(newline#(@x       
                                             ,@l       
                                             ,@l2))    
          5: newline#(@y,@lastline,@l) ->              
               c_26(newline#1#(@l                      
                              ,@lastline               
                              ,@y))                    
          6: newline#1#(::(@x,@xs)                     
                       ,@lastline                      
                       ,@y) ->                         
               c_27(newline#2#(@lastline               
                              ,@x                      
                              ,@xs                     
                              ,@y))                    
          7: newline#2#(::(@belowVal                   
                          ,@lastline')                 
                       ,@x                             
                       ,@xs                            
                       ,@y) -> c_29(newline#(@y        
                                            ,@lastline'
                                            ,@xs))     
        Processor NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {6}
        These cover all (indirect) predecessors of dependency pairs
          {6,7}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
    *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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#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))
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS 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())
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
        Applied Processor:
          NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
        Proof:
          We apply a polynomial interpretation of kind constructor-based(mixed(2)):
          The following argument positions are considered usable:
            uargs(c_17) = {1},
            uargs(c_18) = {1,2},
            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) = 1                                   
                    p(#add) = 0                                   
                    p(#and) = x1*x2 + x2^2                        
                   p(#ckgt) = 1 + x1^2                            
                p(#compare) = x1*x2                               
                     p(#eq) = x1 + x1^2 + x2                      
                  p(#equal) = 0                                   
                  p(#false) = 0                                   
                p(#greater) = 0                                   
                    p(#neg) = 0                                   
                    p(#pos) = 1                                   
                   p(#pred) = 1                                   
                      p(#s) = 0                                   
                   p(#succ) = 0                                   
                   p(#true) = 0                                   
                       p(+) = x1 + x2 + x2^2                      
                      p(::) = 1 + x2                              
               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^2                            
              p(lcstable#1) = 0                                   
              p(lcstable#2) = x1 + x3^2                           
              p(lcstable#3) = 1 + x2*x3 + x3 + x3^2               
                     p(max) = x1 + x1*x2 + x1^2 + x2              
                   p(max#1) = 1 + x3^2                            
                 p(newline) = 1                                   
               p(newline#1) = x1 + x3^2                           
               p(newline#2) = 1                                   
               p(newline#3) = x1 + x1*x5 + x1^2 + x4^2            
               p(newline#4) = x2*x4 + x2*x5 + x3 + x3*x5 + x4 + x5
               p(newline#5) = x1 + x5 + x5*x6 + x6                
               p(newline#6) = 0                                   
               p(newline#7) = x2*x3 + x3 + x3^2                   
                     p(nil) = 0                                   
                   p(right) = 1                                   
                 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#) = x1 + x1*x2                          
             p(lcstable#1#) = x1 + x1*x2                          
             p(lcstable#2#) = 1 + x2                              
             p(lcstable#3#) = 1 + x2                              
                    p(max#) = 0                                   
                  p(max#1#) = 0                                   
                p(newline#) = 1 + x3                              
              p(newline#1#) = 1 + x1                              
              p(newline#2#) = 1 + x3                              
              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) = 0                                   
                    p(c_17) = x1                                  
                    p(c_18) = x1 + x2                             
                    p(c_19) = 0                                   
                    p(c_20) = x1                                  
                    p(c_21) = x1                                  
                    p(c_22) = 0                                   
                    p(c_23) = 0                                   
                    p(c_24) = 0                                   
                    p(c_25) = 0                                   
                    p(c_26) = x1                                  
                    p(c_27) = x1                                  
                    p(c_28) = 0                                   
                    p(c_29) = x1                                  
                    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:
          newline#1#(::(@x,@xs) = 2 + @xs                  
                     ,@lastline                            
                           ,@y)                            
                                > 1 + @xs                  
                                = c_27(newline#2#(@lastline
                                                 ,@x       
                                                 ,@xs      
                                                 ,@y))     
          
          
          Following rules are (at-least) weakly oriented:
                      lcstable#(@l1,@l2) =  @l1 + @l1*@l2                 
                                         >= @l1 + @l1*@l2                 
                                         =  c_17(lcstable#1#(@l1,@l2))    
          
             lcstable#1#(::(@x,@xs),@l2) =  1 + @l2 + @l2*@xs + @xs       
                                         >= 1 + @l2 + @l2*@xs + @xs       
                                         =  c_18(lcstable#2#(lcstable(@xs 
                                                                     ,@l2)
                                                            ,@l2          
                                                            ,@x)          
                                                ,lcstable#(@xs,@l2))      
          
                  lcstable#2#(@m,@l2,@x) =  1 + @l2                       
                                         >= 1 + @l2                       
                                         =  c_20(lcstable#3#(@m,@l2,@x))  
          
          lcstable#3#(::(@l,@ls),@l2,@x) =  1 + @l2                       
                                         >= 1 + @l2                       
                                         =  c_21(newline#(@x,@l,@l2))     
          
               newline#(@y,@lastline,@l) =  1 + @l                        
                                         >= 1 + @l                        
                                         =  c_26(newline#1#(@l            
                                                           ,@lastline     
                                                           ,@y))          
          
                 newline#2#(::(@belowVal =  1 + @xs                       
                            ,@lastline')                                  
                                     ,@x                                  
                                    ,@xs                                  
                                    ,@y)                                  
                                         >= 1 + @xs                       
                                         =  c_29(newline#(@y              
                                                         ,@lastline'      
                                                         ,@xs))           
          
    *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1 Progress [(?,O(1))]  ***
        Considered Problem:
          Strict DP Rules:
            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#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))
          Strict TRS Rules:
            
          Weak DP Rules:
            newline#1#(::(@x,@xs),@lastline,@y) -> c_27(newline#2#(@lastline,@x,@xs,@y))
          Weak TRS 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())
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
        Applied Processor:
          Assumption
        Proof:
          ()
    
    *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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#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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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())
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
        Applied Processor:
          PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
        Proof:
          We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
            1: lcstable#(@l1,@l2) ->           
                 c_17(lcstable#1#(@l1,@l2))    
            2: lcstable#1#(::(@x,@xs),@l2) ->  
                 c_18(lcstable#2#(lcstable(@xs 
                                          ,@l2)
                                 ,@l2          
                                 ,@x)          
                     ,lcstable#(@xs,@l2))      
            
          Consider the set of all dependency pairs
            1: lcstable#(@l1,@l2) ->                     
                 c_17(lcstable#1#(@l1,@l2))              
            2: lcstable#1#(::(@x,@xs),@l2) ->            
                 c_18(lcstable#2#(lcstable(@xs           
                                          ,@l2)          
                                 ,@l2                    
                                 ,@x)                    
                     ,lcstable#(@xs,@l2))                
            3: lcstable#2#(@m,@l2,@x) ->                 
                 c_20(lcstable#3#(@m,@l2,@x))            
            4: lcstable#3#(::(@l,@ls)                    
                          ,@l2                           
                          ,@x) -> c_21(newline#(@x       
                                               ,@l       
                                               ,@l2))    
            5: newline#(@y,@lastline,@l) ->              
                 c_26(newline#1#(@l                      
                                ,@lastline               
                                ,@y))                    
            6: newline#1#(::(@x,@xs)                     
                         ,@lastline                      
                         ,@y) ->                         
                 c_27(newline#2#(@lastline               
                                ,@x                      
                                ,@xs                     
                                ,@y))                    
            7: newline#2#(::(@belowVal                   
                            ,@lastline')                 
                         ,@x                             
                         ,@xs                            
                         ,@y) -> c_29(newline#(@y        
                                              ,@lastline'
                                              ,@xs))     
          Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}induces the complexity certificateTIME (?,O(n^1))
          SPACE(?,?)on application of the dependency pairs
            {1,2}
          These cover all (indirect) predecessors of dependency pairs
            {1,2,3,4}
          their number of applications is equally bounded.
          The dependency pairs are shifted into the weak component.
      *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              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#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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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())
            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
              basic terms: {#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#}/{#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 first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
          Proof:
            We apply a matrix interpretation of kind constructor based matrix interpretation:
            The following argument positions are considered usable:
              uargs(c_17) = {1},
              uargs(c_18) = {1,2},
              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) = [1]                           
                       p(#LT) = [0]                           
                      p(#abs) = [3]                           
                      p(#add) = [2]                           
                      p(#and) = [2]                           
                     p(#ckgt) = [4]                           
                  p(#compare) = [1] x1 + [0]                  
                       p(#eq) = [0]                           
                    p(#equal) = [1]                           
                    p(#false) = [0]                           
                  p(#greater) = [1]                           
                      p(#neg) = [0]                           
                      p(#pos) = [1] x1 + [6]                  
                     p(#pred) = [2] x1 + [1]                  
                        p(#s) = [0]                           
                     p(#succ) = [3]                           
                     p(#true) = [1]                           
                         p(+) = [1]                           
                        p(::) = [1] x1 + [1] x2 + [1]         
                 p(firstline) = [1] x1 + [2]                  
               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] x2 + [0]                  
                p(lcstable#2) = [1] x1 + [4] x3 + [2]         
                p(lcstable#3) = [0]                           
                       p(max) = [0]                           
                     p(max#1) = [1]                           
                   p(newline) = [4] x3 + [7]                  
                 p(newline#1) = [1] x1 + [4]                  
                 p(newline#2) = [1] x2 + [4] x3 + [2]         
                 p(newline#3) = [1] x1 + [1] x4 + [3] x5 + [6]
                 p(newline#4) = [0]                           
                 p(newline#5) = [1] x1 + [0]                  
                 p(newline#6) = [1] x1 + [1]                  
                 p(newline#7) = [4] x1 + [6]                  
                       p(nil) = [0]                           
                     p(right) = [4]                           
                   p(right#1) = [3] x1 + [4]                  
                     p(#abs#) = [0]                           
                     p(#add#) = [0]                           
                     p(#and#) = [0]                           
                    p(#ckgt#) = [0]                           
                 p(#compare#) = [0]                           
                      p(#eq#) = [0]                           
                   p(#equal#) = [0]                           
                 p(#greater#) = [4] x1 + [1] x2 + [0]         
                    p(#pred#) = [0]                           
                    p(#succ#) = [2] x1 + [1]                  
                        p(+#) = [1] x1 + [0]                  
                p(firstline#) = [0]                           
              p(firstline#1#) = [1]                           
                      p(lcs#) = [2]                           
                    p(lcs#1#) = [1] x1 + [1]                  
                    p(lcs#2#) = [1] x1 + [2]                  
                    p(lcs#3#) = [0]                           
                 p(lcstable#) = [4] x1 + [5]                  
               p(lcstable#1#) = [4] x1 + [4]                  
               p(lcstable#2#) = [0]                           
               p(lcstable#3#) = [0]                           
                      p(max#) = [4] x2 + [0]                  
                    p(max#1#) = [0]                           
                  p(newline#) = [0]                           
                p(newline#1#) = [0]                           
                p(newline#2#) = [0]                           
                p(newline#3#) = [1] x3 + [2]                  
                p(newline#4#) = [4] x3 + [1] x6 + [0]         
                p(newline#5#) = [1] x4 + [1] x5 + [1] x6 + [0]
                p(newline#6#) = [1]                           
                p(newline#7#) = [1] x1 + [4] x2 + [1] x4 + [4]
                    p(right#) = [1] x1 + [0]                  
                  p(right#1#) = [1] x1 + [0]                  
                       p(c_1) = [1]                           
                       p(c_2) = [2]                           
                       p(c_3) = [0]                           
                       p(c_4) = [1]                           
                       p(c_5) = [0]                           
                       p(c_6) = [1] x1 + [1]                  
                       p(c_7) = [1] x1 + [2]                  
                       p(c_8) = [2]                           
                       p(c_9) = [0]                           
                      p(c_10) = [0]                           
                      p(c_11) = [0]                           
                      p(c_12) = [2]                           
                      p(c_13) = [4]                           
                      p(c_14) = [0]                           
                      p(c_15) = [1]                           
                      p(c_16) = [4] x1 + [1]                  
                      p(c_17) = [1] x1 + [0]                  
                      p(c_18) = [4] x1 + [1] x2 + [2]         
                      p(c_19) = [0]                           
                      p(c_20) = [1] x1 + [0]                  
                      p(c_21) = [4] x1 + [0]                  
                      p(c_22) = [0]                           
                      p(c_23) = [1] x2 + [0]                  
                      p(c_24) = [0]                           
                      p(c_25) = [2]                           
                      p(c_26) = [4] x1 + [0]                  
                      p(c_27) = [1] x1 + [0]                  
                      p(c_28) = [1]                           
                      p(c_29) = [1] x1 + [0]                  
                      p(c_30) = [0]                           
                      p(c_31) = [1] x1 + [0]                  
                      p(c_32) = [0]                           
                      p(c_33) = [4] x1 + [2] x2 + [1] x3 + [1]
                      p(c_34) = [0]                           
                      p(c_35) = [4]                           
                      p(c_36) = [0]                           
                      p(c_37) = [0]                           
                      p(c_38) = [1]                           
                      p(c_39) = [4] x1 + [1]                  
                      p(c_40) = [0]                           
                      p(c_41) = [4] x1 + [0]                  
                      p(c_42) = [1] x2 + [0]                  
                      p(c_43) = [1] x1 + [2]                  
                      p(c_44) = [4] x2 + [1]                  
                      p(c_45) = [0]                           
                      p(c_46) = [0]                           
                      p(c_47) = [1]                           
                      p(c_48) = [4]                           
                      p(c_49) = [0]                           
                      p(c_50) = [1]                           
                      p(c_51) = [0]                           
                      p(c_52) = [4]                           
                      p(c_53) = [0]                           
                      p(c_54) = [1]                           
                      p(c_55) = [0]                           
                      p(c_56) = [0]                           
                      p(c_57) = [2] x1 + [1]                  
                      p(c_58) = [2]                           
                      p(c_59) = [1]                           
                      p(c_60) = [0]                           
                      p(c_61) = [1] x1 + [0]                  
                      p(c_62) = [4]                           
                      p(c_63) = [1]                           
                      p(c_64) = [1]                           
                      p(c_65) = [1]                           
                      p(c_66) = [1]                           
                      p(c_67) = [4]                           
                      p(c_68) = [1]                           
                      p(c_69) = [1] x1 + [0]                  
                      p(c_70) = [1]                           
                      p(c_71) = [0]                           
                      p(c_72) = [0]                           
                      p(c_73) = [1] x1 + [0]                  
                      p(c_74) = [2]                           
                      p(c_75) = [4] x1 + [1]                  
                      p(c_76) = [1] x1 + [1] x3 + [1]         
                      p(c_77) = [0]                           
                      p(c_78) = [0]                           
                      p(c_79) = [0]                           
                      p(c_80) = [1]                           
                      p(c_81) = [0]                           
                      p(c_82) = [1]                           
                      p(c_83) = [1]                           
                      p(c_84) = [0]                           
                      p(c_85) = [0]                           
                      p(c_86) = [4]                           
                      p(c_87) = [1]                           
            
            Following rules are strictly oriented:
                     lcstable#(@l1,@l2) = [4] @l1 + [5]                 
                                        > [4] @l1 + [4]                 
                                        = c_17(lcstable#1#(@l1,@l2))    
            
            lcstable#1#(::(@x,@xs),@l2) = [4] @x + [4] @xs + [8]        
                                        > [4] @xs + [7]                 
                                        = c_18(lcstable#2#(lcstable(@xs 
                                                                   ,@l2)
                                                          ,@l2          
                                                          ,@x)          
                                              ,lcstable#(@xs,@l2))      
            
            
            Following rules are (at-least) weakly oriented:
                    lcstable#2#(@m,@l2,@x) =  [0]                         
                                           >= [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) =  [0]                         
                                ,@lastline                                
                                      ,@y)                                
                                           >= [0]                         
                                           =  c_27(newline#2#(@lastline   
                                                             ,@x          
                                                             ,@xs         
                                                             ,@y))        
            
                   newline#2#(::(@belowVal =  [0]                         
                              ,@lastline')                                
                                       ,@x                                
                                      ,@xs                                
                                      ,@y)                                
                                           >= [0]                         
                                           =  c_29(newline#(@y            
                                                           ,@lastline'    
                                                           ,@xs))         
            
      *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1 Progress [(?,O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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))
              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 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())
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
          Applied Processor:
            Assumption
          Proof:
            ()
      
      *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.2 Progress [(?,O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
            Strict TRS Rules:
              
            Weak DP Rules:
              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#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
              lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
              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 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())
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
          Applied Processor:
            PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}}
          Proof:
            We first use the processor NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
              1: newline#(@y,@lastline,@l) ->
                   c_26(newline#1#(@l        
                                  ,@lastline 
                                  ,@y))      
              
            Consider the set of all dependency pairs
              1: newline#(@y,@lastline,@l) ->              
                   c_26(newline#1#(@l                      
                                  ,@lastline               
                                  ,@y))                    
              2: lcstable#(@l1,@l2) ->                     
                   c_17(lcstable#1#(@l1,@l2))              
              3: lcstable#1#(::(@x,@xs),@l2) ->            
                   c_18(lcstable#2#(lcstable(@xs           
                                            ,@l2)          
                                   ,@l2                    
                                   ,@x)                    
                       ,lcstable#(@xs,@l2))                
              4: lcstable#2#(@m,@l2,@x) ->                 
                   c_20(lcstable#3#(@m,@l2,@x))            
              5: lcstable#3#(::(@l,@ls)                    
                            ,@l2                           
                            ,@x) -> c_21(newline#(@x       
                                                 ,@l       
                                                 ,@l2))    
              6: newline#1#(::(@x,@xs)                     
                           ,@lastline                      
                           ,@y) ->                         
                   c_27(newline#2#(@lastline               
                                  ,@x                      
                                  ,@xs                     
                                  ,@y))                    
              7: newline#2#(::(@belowVal                   
                              ,@lastline')                 
                           ,@x                             
                           ,@xs                            
                           ,@y) -> c_29(newline#(@y        
                                                ,@lastline'
                                                ,@xs))     
            Processor NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}induces the complexity certificateTIME (?,O(n^2))
            SPACE(?,?)on application of the dependency pairs
              {1}
            These cover all (indirect) predecessors of dependency pairs
              {1,6,7}
            their number of applications is equally bounded.
            The dependency pairs are shifted into the weak component.
        *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.2.1 Progress [(?,O(n^2))]  ***
            Considered Problem:
              Strict DP Rules:
                newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y))
              Strict TRS Rules:
                
              Weak DP Rules:
                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#2#(@m,@l2,@x) -> c_20(lcstable#3#(@m,@l2,@x))
                lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
                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 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())
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
            Applied Processor:
              NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
            Proof:
              We apply a polynomial interpretation of kind constructor-based(mixed(2)):
              The following argument positions are considered usable:
                uargs(c_17) = {1},
                uargs(c_18) = {1,2},
                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) = 0                        
                        p(#add) = x1^2                     
                        p(#and) = x1 + x2^2                
                       p(#ckgt) = x1                       
                    p(#compare) = x1^2                     
                         p(#eq) = x2                       
                      p(#equal) = 1 + x1^2                 
                      p(#false) = 0                        
                    p(#greater) = 0                        
                        p(#neg) = x1                       
                        p(#pos) = 0                        
                       p(#pred) = 0                        
                          p(#s) = x1                       
                       p(#succ) = 1                        
                       p(#true) = 1                        
                           p(+) = 1                        
                          p(::) = 1 + x2                   
                   p(firstline) = 0                        
                 p(firstline#1) = 0                        
                         p(lcs) = 0                        
                       p(lcs#1) = 0                        
                       p(lcs#2) = 0                        
                       p(lcs#3) = 0                        
                    p(lcstable) = x2                       
                  p(lcstable#1) = x1^2 + x2^2              
                  p(lcstable#2) = x1*x3                    
                  p(lcstable#3) = 1 + x1 + x1^2 + x3 + x3^2
                         p(max) = 1 + x1 + x2              
                       p(max#1) = x3^2                     
                     p(newline) = 1 + x1*x3 + x2           
                   p(newline#1) = x1^2 + x3                
                   p(newline#2) = x1^2 + x2*x4 + x4 + x4^2 
                   p(newline#3) = x1*x2 + x1*x5 + x1^2     
                   p(newline#4) = x3 + x3*x4 + x4*x6 + x6  
                   p(newline#5) = x1 + x1^2 + x2 + x2^2    
                   p(newline#6) = x1*x2 + x1^2 + x2        
                   p(newline#7) = 1 + x2^2 + x4            
                         p(nil) = 0                        
                       p(right) = 1                        
                     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#) = x1 + x1*x2 + x2 + x2^2   
                 p(lcstable#1#) = x1 + x1*x2 + x2 + x2^2   
                 p(lcstable#2#) = 1 + x2                   
                 p(lcstable#3#) = 1 + x2                   
                        p(max#) = 0                        
                      p(max#1#) = 0                        
                    p(newline#) = 1 + x3                   
                  p(newline#1#) = x1                       
                  p(newline#2#) = 1 + x3                   
                  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) = 0                        
                        p(c_17) = x1                       
                        p(c_18) = x1 + x2                  
                        p(c_19) = 0                        
                        p(c_20) = x1                       
                        p(c_21) = x1                       
                        p(c_22) = 0                        
                        p(c_23) = 0                        
                        p(c_24) = 0                        
                        p(c_25) = 0                        
                        p(c_26) = x1                       
                        p(c_27) = x1                       
                        p(c_28) = 0                        
                        p(c_29) = x1                       
                        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:
              newline#(@y,@lastline,@l) = 1 + @l                   
                                        > @l                       
                                        = c_26(newline#1#(@l       
                                                         ,@lastline
                                                         ,@y))     
              
              
              Following rules are (at-least) weakly oriented:
                          lcstable#(@l1,@l2) =  @l1 + @l1*@l2 + @l2 + @l2^2      
                                             >= @l1 + @l1*@l2 + @l2 + @l2^2      
                                             =  c_17(lcstable#1#(@l1,@l2))       
              
                 lcstable#1#(::(@x,@xs),@l2) =  1 + 2*@l2 + @l2*@xs + @l2^2 + @xs
                                             >= 1 + 2*@l2 + @l2*@xs + @l2^2 + @xs
                                             =  c_18(lcstable#2#(lcstable(@xs    
                                                                         ,@l2)   
                                                                ,@l2             
                                                                ,@x)             
                                                    ,lcstable#(@xs,@l2))         
              
                      lcstable#2#(@m,@l2,@x) =  1 + @l2                          
                                             >= 1 + @l2                          
                                             =  c_20(lcstable#3#(@m,@l2,@x))     
              
              lcstable#3#(::(@l,@ls),@l2,@x) =  1 + @l2                          
                                             >= 1 + @l2                          
                                             =  c_21(newline#(@x,@l,@l2))        
              
                       newline#1#(::(@x,@xs) =  1 + @xs                          
                                  ,@lastline                                     
                                        ,@y)                                     
                                             >= 1 + @xs                          
                                             =  c_27(newline#2#(@lastline        
                                                               ,@x               
                                                               ,@xs              
                                                               ,@y))             
              
                     newline#2#(::(@belowVal =  1 + @xs                          
                                ,@lastline')                                     
                                         ,@x                                     
                                        ,@xs                                     
                                        ,@y)                                     
                                             >= 1 + @xs                          
                                             =  c_29(newline#(@y                 
                                                             ,@lastline'         
                                                             ,@xs))              
              
        *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.2.1.1 Progress [(?,O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                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#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 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())
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
            Applied Processor:
              Assumption
            Proof:
              ()
        
        *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.2.2 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                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#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 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())
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
            Applied Processor:
              RemoveWeakSuffixes
            Proof:
              Consider the dependency graph
                1:W: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:W: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)):3
                   -->_2 lcstable#(@l1,@l2) -> c_17(lcstable#1#(@l1,@l2)):1
                
                3:W: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)):4
                
                4:W:lcstable#3#(::(@l,@ls),@l2,@x) -> c_21(newline#(@x,@l,@l2))
                   -->_1 newline#(@y,@lastline,@l) -> c_26(newline#1#(@l,@lastline,@y)):5
                
                5:W: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)):6
                
                6:W: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)):7
                
                7:W: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)):5
                
              The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
                1: lcstable#(@l1,@l2) ->                     
                     c_17(lcstable#1#(@l1,@l2))              
                2: lcstable#1#(::(@x,@xs),@l2) ->            
                     c_18(lcstable#2#(lcstable(@xs           
                                              ,@l2)          
                                     ,@l2                    
                                     ,@x)                    
                         ,lcstable#(@xs,@l2))                
                3: lcstable#2#(@m,@l2,@x) ->                 
                     c_20(lcstable#3#(@m,@l2,@x))            
                4: lcstable#3#(::(@l,@ls)                    
                              ,@l2                           
                              ,@x) -> c_21(newline#(@x       
                                                   ,@l       
                                                   ,@l2))    
                5: newline#(@y,@lastline,@l) ->              
                     c_26(newline#1#(@l                      
                                    ,@lastline               
                                    ,@y))                    
                7: newline#2#(::(@belowVal                   
                                ,@lastline')                 
                             ,@x                             
                             ,@xs                            
                             ,@y) -> c_29(newline#(@y        
                                                  ,@lastline'
                                                  ,@xs))     
                6: newline#1#(::(@x,@xs)                     
                             ,@lastline                      
                             ,@y) ->                         
                     c_27(newline#2#(@lastline               
                                    ,@x                      
                                    ,@xs                     
                                    ,@y))                    
        *** 1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2.2.2.1 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS Rules:
                #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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil}
            Applied Processor:
              EmptyProcessor
            Proof:
              The problem is already closed. The intended complexity is O(1).