Certification Problem

Input (TPDB Runtime_Complexity_Innermost_Rewriting/raML/longestCommonSubsequence.raml)

The relative rewrite relation R/S is considered where R is the following TRS

#abs(#0) → #0 (1)
#abs(#neg(@x)) → #pos(@x) (2)
#abs(#pos(@x)) → #pos(@x) (3)
#abs(#s(@x)) → #pos(#s(@x)) (4)
#equal(@x,@y) → #eq(@x,@y) (5)
#greater(@x,@y) → #ckgt(#compare(@x,@y)) (6)
+(@x,@y) → #add(@x,@y) (7)
firstline(@l) → firstline#1(@l) (8)
firstline#1(::(@x,@xs)) → ::(#abs(#0),firstline(@xs)) (9)
firstline#1(nil) → nil (10)
lcs(@l1,@l2) → lcs#1(lcstable(@l1,@l2)) (11)
lcs#1(@m) → lcs#2(@m) (12)
lcs#2(::(@l1,@_@2)) → lcs#3(@l1) (13)
lcs#2(nil) → #abs(#0) (14)
lcs#3(::(@len,@_@1)) → @len (15)
lcs#3(nil) → #abs(#0) (16)
lcstable(@l1,@l2) → lcstable#1(@l1,@l2) (17)
lcstable#1(::(@x,@xs),@l2) → lcstable#2(lcstable(@xs,@l2),@l2,@x) (18)
lcstable#1(nil,@l2) → ::(firstline(@l2),nil) (19)
lcstable#2(@m,@l2,@x) → lcstable#3(@m,@l2,@x) (20)
lcstable#3(::(@l,@ls),@l2,@x) → ::(newline(@x,@l,@l2),::(@l,@ls)) (21)
lcstable#3(nil,@l2,@x) → nil (22)
max(@a,@b) → max#1(#greater(@a,@b),@a,@b) (23)
max#1(#false,@a,@b) → @b (24)
max#1(#true,@a,@b) → @a (25)
newline(@y,@lastline,@l) → newline#1(@l,@lastline,@y) (26)
newline#1(::(@x,@xs),@lastline,@y) → newline#2(@lastline,@x,@xs,@y) (27)
newline#1(nil,@lastline,@y) → nil (28)
newline#2(::(@belowVal,@lastline'),@x,@xs,@y) → newline#3(newline(@y,@lastline',@xs),@belowVal,@lastline',@x,@y) (29)
newline#2(nil,@x,@xs,@y) → nil (30)
newline#3(@nl,@belowVal,@lastline',@x,@y) → newline#4(right(@nl),@belowVal,@lastline',@nl,@x,@y) (31)
newline#4(@rightVal,@belowVal,@lastline',@nl,@x,@y) → newline#5(right(@lastline'),@belowVal,@nl,@rightVal,@x,@y) (32)
newline#5(@diagVal,@belowVal,@nl,@rightVal,@x,@y) → newline#6(newline#7(#equal(@x,@y),@belowVal,@diagVal,@rightVal),@nl) (33)
newline#6(@elem,@nl) → ::(@elem,@nl) (34)
newline#7(#false,@belowVal,@diagVal,@rightVal) → max(@belowVal,@rightVal) (35)
newline#7(#true,@belowVal,@diagVal,@rightVal) → +(@diagVal,#pos(#s(#0))) (36)
right(@l) → right#1(@l) (37)
right#1(::(@x,@xs)) → @x (38)
right#1(nil) → #abs(#0) (39)

and S is the following TRS.

#add(#0,@y) → @y (40)
#add(#neg(#s(#0)),@y) → #pred(@y) (41)
#add(#neg(#s(#s(@x))),@y) → #pred(#add(#pos(#s(@x)),@y)) (42)
#add(#pos(#s(#0)),@y) → #succ(@y) (43)
#add(#pos(#s(#s(@x))),@y) → #succ(#add(#pos(#s(@x)),@y)) (44)
#and(#false,#false) → #false (45)
#and(#false,#true) → #false (46)
#and(#true,#false) → #false (47)
#and(#true,#true) → #true (48)
#ckgt(#EQ) → #false (49)
#ckgt(#GT) → #true (50)
#ckgt(#LT) → #false (51)
#compare(#0,#0) → #EQ (52)
#compare(#0,#neg(@y)) → #GT (53)
#compare(#0,#pos(@y)) → #LT (54)
#compare(#0,#s(@y)) → #LT (55)
#compare(#neg(@x),#0) → #LT (56)
#compare(#neg(@x),#neg(@y)) → #compare(@y,@x) (57)
#compare(#neg(@x),#pos(@y)) → #LT (58)
#compare(#pos(@x),#0) → #GT (59)
#compare(#pos(@x),#neg(@y)) → #GT (60)
#compare(#pos(@x),#pos(@y)) → #compare(@x,@y) (61)
#compare(#s(@x),#0) → #GT (62)
#compare(#s(@x),#s(@y)) → #compare(@x,@y) (63)
#eq(#0,#0) → #true (64)
#eq(#0,#neg(@y)) → #false (65)
#eq(#0,#pos(@y)) → #false (66)
#eq(#0,#s(@y)) → #false (67)
#eq(#neg(@x),#0) → #false (68)
#eq(#neg(@x),#neg(@y)) → #eq(@x,@y) (69)
#eq(#neg(@x),#pos(@y)) → #false (70)
#eq(#pos(@x),#0) → #false (71)
#eq(#pos(@x),#neg(@y)) → #false (72)
#eq(#pos(@x),#pos(@y)) → #eq(@x,@y) (73)
#eq(#s(@x),#0) → #false (74)
#eq(#s(@x),#s(@y)) → #eq(@x,@y) (75)
#eq(::(@x_1,@x_2),::(@y_1,@y_2)) → #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2)) (76)
#eq(::(@x_1,@x_2),nil) → #false (77)
#eq(nil,::(@y_1,@y_2)) → #false (78)
#eq(nil,nil) → #true (79)
#pred(#0) → #neg(#s(#0)) (80)
#pred(#neg(#s(@x))) → #neg(#s(#s(@x))) (81)
#pred(#pos(#s(#0))) → #0 (82)
#pred(#pos(#s(#s(@x)))) → #pos(#s(@x)) (83)
#succ(#0) → #pos(#s(#0)) (84)
#succ(#neg(#s(#0))) → #0 (85)
#succ(#neg(#s(#s(@x)))) → #neg(#s(@x)) (86)
#succ(#pos(#s(@x))) → #pos(#s(#s(@x))) (87)
The evaluation strategy is innermost.

Property / Task

Determine bounds on the runtime complexity.

Answer / Result

An upperbound for the complexity is O(n2).

Proof (by AProVE @ termCOMP 2023)

1 Dependency Tuples

We get the following set of dependency tuples:
#abs#(#0) → c48 (88)
originates from
#abs(#0) → #0 (1)
#abs#(#neg(z0)) → c49 (90)
originates from
#abs(#neg(z0)) → #pos(z0) (89)
#abs#(#pos(z0)) → c50 (92)
originates from
#abs(#pos(z0)) → #pos(z0) (91)
#abs#(#s(z0)) → c51 (94)
originates from
#abs(#s(z0)) → #pos(#s(z0)) (93)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
originates from
#equal(z0,z1) → #eq(z0,z1) (95)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
originates from
#greater(z0,z1) → #ckgt(#compare(z0,z1)) (97)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
originates from
+(z0,z1) → #add(z0,z1) (99)
firstline#(z0) → c55(firstline#1#(z0)) (102)
originates from
firstline(z0) → firstline#1(z0) (101)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
originates from
firstline#1(::(z0,z1)) → ::(#abs(#0),firstline(z1)) (103)
firstline#1#(nil) → c57 (105)
originates from
firstline#1(nil) → nil (10)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
originates from
lcs(z0,z1) → lcs#1(lcstable(z0,z1)) (106)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
originates from
lcs#1(z0) → lcs#2(z0) (108)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
originates from
lcs#2(::(z0,z1)) → lcs#3(z0) (110)
lcs#2#(nil) → c61(#abs#(#0)) (112)
originates from
lcs#2(nil) → #abs(#0) (14)
lcs#3#(::(z0,z1)) → c62 (114)
originates from
lcs#3(::(z0,z1)) → z0 (113)
lcs#3#(nil) → c63(#abs#(#0)) (115)
originates from
lcs#3(nil) → #abs(#0) (16)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
originates from
lcstable(z0,z1) → lcstable#1(z0,z1) (116)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
originates from
lcstable#1(::(z0,z1),z2) → lcstable#2(lcstable(z1,z2),z2,z0) (118)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
originates from
lcstable#1(nil,z0) → ::(firstline(z0),nil) (120)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
originates from
lcstable#2(z0,z1,z2) → lcstable#3(z0,z1,z2) (122)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
originates from
lcstable#3(::(z0,z1),z2,z3) → ::(newline(z3,z0,z2),::(z0,z1)) (124)
lcstable#3#(nil,z0,z1) → c69 (127)
originates from
lcstable#3(nil,z0,z1) → nil (126)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
originates from
max(z0,z1) → max#1(#greater(z0,z1),z0,z1) (128)
max#1#(#false,z0,z1) → c71 (131)
originates from
max#1(#false,z0,z1) → z1 (130)
max#1#(#true,z0,z1) → c72 (133)
originates from
max#1(#true,z0,z1) → z0 (132)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
originates from
newline(z0,z1,z2) → newline#1(z2,z1,z0) (134)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
originates from
newline#1(::(z0,z1),z2,z3) → newline#2(z2,z0,z1,z3) (136)
newline#1#(nil,z0,z1) → c75 (139)
originates from
newline#1(nil,z0,z1) → nil (138)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
originates from
newline#2(::(z0,z1),z2,z3,z4) → newline#3(newline(z4,z1,z3),z0,z1,z2,z4) (140)
newline#2#(nil,z0,z1,z2) → c77 (143)
originates from
newline#2(nil,z0,z1,z2) → nil (142)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
originates from
newline#3(z0,z1,z2,z3,z4) → newline#4(right(z0),z1,z2,z0,z3,z4) (144)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
originates from
newline#4(z0,z1,z2,z3,z4,z5) → newline#5(right(z2),z1,z3,z0,z4,z5) (146)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
originates from
newline#5(z0,z1,z2,z3,z4,z5) → newline#6(newline#7(#equal(z4,z5),z1,z0,z3),z2) (148)
newline#6#(z0,z1) → c81 (151)
originates from
newline#6(z0,z1) → ::(z0,z1) (150)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
originates from
newline#7(#false,z0,z1,z2) → max(z0,z2) (152)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
originates from
newline#7(#true,z0,z1,z2) → +(z1,#pos(#s(#0))) (154)
right#(z0) → c84(right#1#(z0)) (157)
originates from
right(z0) → right#1(z0) (156)
right#1#(::(z0,z1)) → c85 (159)
originates from
right#1(::(z0,z1)) → z0 (158)
right#1#(nil) → c86(#abs#(#0)) (160)
originates from
right#1(nil) → #abs(#0) (39)
#add#(#0,z0) → c (162)
originates from
#add(#0,z0) → z0 (161)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
originates from
#add(#neg(#s(#0)),z0) → #pred(z0) (163)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
originates from
#add(#neg(#s(#s(z0))),z1) → #pred(#add(#pos(#s(z0)),z1)) (165)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
originates from
#add(#pos(#s(#0)),z0) → #succ(z0) (167)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
originates from
#add(#pos(#s(#s(z0))),z1) → #succ(#add(#pos(#s(z0)),z1)) (169)
#and#(#false,#false) → c5 (171)
originates from
#and(#false,#false) → #false (45)
#and#(#false,#true) → c6 (172)
originates from
#and(#false,#true) → #false (46)
#and#(#true,#false) → c7 (173)
originates from
#and(#true,#false) → #false (47)
#and#(#true,#true) → c8 (174)
originates from
#and(#true,#true) → #true (48)
#ckgt#(#EQ) → c9 (175)
originates from
#ckgt(#EQ) → #false (49)
#ckgt#(#GT) → c10 (176)
originates from
#ckgt(#GT) → #true (50)
#ckgt#(#LT) → c11 (177)
originates from
#ckgt(#LT) → #false (51)
#compare#(#0,#0) → c12 (178)
originates from
#compare(#0,#0) → #EQ (52)
#compare#(#0,#neg(z0)) → c13 (180)
originates from
#compare(#0,#neg(z0)) → #GT (179)
#compare#(#0,#pos(z0)) → c14 (182)
originates from
#compare(#0,#pos(z0)) → #LT (181)
#compare#(#0,#s(z0)) → c15 (184)
originates from
#compare(#0,#s(z0)) → #LT (183)
#compare#(#neg(z0),#0) → c16 (186)
originates from
#compare(#neg(z0),#0) → #LT (185)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
originates from
#compare(#neg(z0),#neg(z1)) → #compare(z1,z0) (187)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
originates from
#compare(#neg(z0),#pos(z1)) → #LT (189)
#compare#(#pos(z0),#0) → c19 (192)
originates from
#compare(#pos(z0),#0) → #GT (191)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
originates from
#compare(#pos(z0),#neg(z1)) → #GT (193)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
originates from
#compare(#pos(z0),#pos(z1)) → #compare(z0,z1) (195)
#compare#(#s(z0),#0) → c22 (198)
originates from
#compare(#s(z0),#0) → #GT (197)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
originates from
#compare(#s(z0),#s(z1)) → #compare(z0,z1) (199)
#eq#(#0,#0) → c24 (201)
originates from
#eq(#0,#0) → #true (64)
#eq#(#0,#neg(z0)) → c25 (203)
originates from
#eq(#0,#neg(z0)) → #false (202)
#eq#(#0,#pos(z0)) → c26 (205)
originates from
#eq(#0,#pos(z0)) → #false (204)
#eq#(#0,#s(z0)) → c27 (207)
originates from
#eq(#0,#s(z0)) → #false (206)
#eq#(#neg(z0),#0) → c28 (209)
originates from
#eq(#neg(z0),#0) → #false (208)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
originates from
#eq(#neg(z0),#neg(z1)) → #eq(z0,z1) (210)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
originates from
#eq(#neg(z0),#pos(z1)) → #false (212)
#eq#(#pos(z0),#0) → c31 (215)
originates from
#eq(#pos(z0),#0) → #false (214)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
originates from
#eq(#pos(z0),#neg(z1)) → #false (216)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
originates from
#eq(#pos(z0),#pos(z1)) → #eq(z0,z1) (218)
#eq#(#s(z0),#0) → c34 (221)
originates from
#eq(#s(z0),#0) → #false (220)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
originates from
#eq(#s(z0),#s(z1)) → #eq(z0,z1) (222)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
originates from
#eq(::(z0,z1),::(z2,z3)) → #and(#eq(z0,z2),#eq(z1,z3)) (224)
#eq#(::(z0,z1),nil) → c37 (227)
originates from
#eq(::(z0,z1),nil) → #false (226)
#eq#(nil,::(z0,z1)) → c38 (229)
originates from
#eq(nil,::(z0,z1)) → #false (228)
#eq#(nil,nil) → c39 (230)
originates from
#eq(nil,nil) → #true (79)
#pred#(#0) → c40 (231)
originates from
#pred(#0) → #neg(#s(#0)) (80)
#pred#(#neg(#s(z0))) → c41 (233)
originates from
#pred(#neg(#s(z0))) → #neg(#s(#s(z0))) (232)
#pred#(#pos(#s(#0))) → c42 (234)
originates from
#pred(#pos(#s(#0))) → #0 (82)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
originates from
#pred(#pos(#s(#s(z0)))) → #pos(#s(z0)) (235)
#succ#(#0) → c44 (237)
originates from
#succ(#0) → #pos(#s(#0)) (84)
#succ#(#neg(#s(#0))) → c45 (238)
originates from
#succ(#neg(#s(#0))) → #0 (85)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
originates from
#succ(#neg(#s(#s(z0)))) → #neg(#s(z0)) (239)
#succ#(#pos(#s(z0))) → c47 (242)
originates from
#succ(#pos(#s(z0))) → #pos(#s(#s(z0))) (241)
Moreover, we add the following terms to the innermost strategy.
#add#(#0,z0)
#add#(#neg(#s(#0)),z0)
#add#(#neg(#s(#s(z0))),z1)
#add#(#pos(#s(#0)),z0)
#add#(#pos(#s(#s(z0))),z1)
#and#(#false,#false)
#and#(#false,#true)
#and#(#true,#false)
#and#(#true,#true)
#ckgt#(#EQ)
#ckgt#(#GT)
#ckgt#(#LT)
#compare#(#0,#0)
#compare#(#0,#neg(z0))
#compare#(#0,#pos(z0))
#compare#(#0,#s(z0))
#compare#(#neg(z0),#0)
#compare#(#neg(z0),#neg(z1))
#compare#(#neg(z0),#pos(z1))
#compare#(#pos(z0),#0)
#compare#(#pos(z0),#neg(z1))
#compare#(#pos(z0),#pos(z1))
#compare#(#s(z0),#0)
#compare#(#s(z0),#s(z1))
#eq#(#0,#0)
#eq#(#0,#neg(z0))
#eq#(#0,#pos(z0))
#eq#(#0,#s(z0))
#eq#(#neg(z0),#0)
#eq#(#neg(z0),#neg(z1))
#eq#(#neg(z0),#pos(z1))
#eq#(#pos(z0),#0)
#eq#(#pos(z0),#neg(z1))
#eq#(#pos(z0),#pos(z1))
#eq#(#s(z0),#0)
#eq#(#s(z0),#s(z1))
#eq#(::(z0,z1),::(z2,z3))
#eq#(::(z0,z1),nil)
#eq#(nil,::(z0,z1))
#eq#(nil,nil)
#pred#(#0)
#pred#(#neg(#s(z0)))
#pred#(#pos(#s(#0)))
#pred#(#pos(#s(#s(z0))))
#succ#(#0)
#succ#(#neg(#s(#0)))
#succ#(#neg(#s(#s(z0))))
#succ#(#pos(#s(z0)))
#abs#(#0)
#abs#(#neg(z0))
#abs#(#pos(z0))
#abs#(#s(z0))
#equal#(z0,z1)
#greater#(z0,z1)
+#(z0,z1)
firstline#(z0)
firstline#1#(::(z0,z1))
firstline#1#(nil)
lcs#(z0,z1)
lcs#1#(z0)
lcs#2#(::(z0,z1))
lcs#2#(nil)
lcs#3#(::(z0,z1))
lcs#3#(nil)
lcstable#(z0,z1)
lcstable#1#(::(z0,z1),z2)
lcstable#1#(nil,z0)
lcstable#2#(z0,z1,z2)
lcstable#3#(::(z0,z1),z2,z3)
lcstable#3#(nil,z0,z1)
max#(z0,z1)
max#1#(#false,z0,z1)
max#1#(#true,z0,z1)
newline#(z0,z1,z2)
newline#1#(::(z0,z1),z2,z3)
newline#1#(nil,z0,z1)
newline#2#(::(z0,z1),z2,z3,z4)
newline#2#(nil,z0,z1,z2)
newline#3#(z0,z1,z2,z3,z4)
newline#4#(z0,z1,z2,z3,z4,z5)
newline#5#(z0,z1,z2,z3,z4,z5)
newline#6#(z0,z1)
newline#7#(#false,z0,z1,z2)
newline#7#(#true,z0,z1,z2)
right#(z0)
right#1#(::(z0,z1))
right#1#(nil)

1.1 Usable Rules

We remove the following rules since they are not usable.
#abs(#neg(z0)) → #pos(z0) (89)
#abs(#pos(z0)) → #pos(z0) (91)
#abs(#s(z0)) → #pos(#s(z0)) (93)
lcs(z0,z1) → lcs#1(lcstable(z0,z1)) (106)
lcs#1(z0) → lcs#2(z0) (108)
lcs#2(::(z0,z1)) → lcs#3(z0) (110)
lcs#2(nil) → #abs(#0) (14)
lcs#3(::(z0,z1)) → z0 (113)
lcs#3(nil) → #abs(#0) (16)

1.1.1 Rule Shifting

The rules
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#compare(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable#2(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[lcstable#3(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline#2(x1,...,x4)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5
[newline#4(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[right(x1)] = 1 + 1 · x1
[right#1(x1)] = 1 + 1 · x1
[#abs(x1)] = 1 + 1 · x1
[newline#5(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[newline#6(x1, x2)] = 1 + 1 · x2
[newline#7(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4
[#equal(x1, x2)] = 1 · x1 + 0 + 1 · x2
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2
[max#1(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[#greater(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 1 · x1
[firstline#1(x1)] = 1 + 1 · x1
[#add#(x1, x2)] = 1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#1#(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#2#(x1, x2, x3)] = 1
[lcstable#3#(x1, x2, x3)] = 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 1
[#GT] = 1
[#LT] = 1
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1 Rule Shifting

The rules
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#compare(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable#2(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[lcstable#3(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline#2(x1,...,x4)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5
[newline#4(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[right(x1)] = 1 + 1 · x1
[right#1(x1)] = 1 + 1 · x1
[#abs(x1)] = 1 + 1 · x1
[newline#5(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[newline#6(x1, x2)] = 1 + 1 · x2
[newline#7(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4
[#equal(x1, x2)] = 1 · x1 + 0 + 1 · x2
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2
[max#1(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[#greater(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 1 · x1
[firstline#1(x1)] = 1 + 1 · x1
[#add#(x1, x2)] = 1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x2
[lcs#1#(x1)] = 1
[lcs#2#(x1)] = 1
[lcs#3#(x1)] = 1
[lcstable#(x1, x2)] = 1 · x2 + 0
[lcstable#1#(x1, x2)] = 1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 0
[lcstable#3#(x1, x2, x3)] = 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 1
[#GT] = 1
[#LT] = 1
[::(x1, x2)] = 0
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1 Rule Shifting

The rules
#abs#(#pos(z0)) → c50 (92)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 3
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 3 + 3 · x1 + 3 · x2
[#compare(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable#2(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[lcstable#3(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline(x1, x2, x3)] = 3 · x3 + 0
[newline#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline#2(x1,...,x4)] = 3 + 3 · x2 + 3 · x3 + 3 · x4
[newline#3(x1,...,x5)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5
[newline#4(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[right(x1)] = 0
[right#1(x1)] = 3
[#abs(x1)] = 3
[newline#5(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[newline#6(x1, x2)] = 3 + 3 · x2
[newline#7(x1,...,x4)] = 3 · x4 + 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 3 + 3 · x1 + 3 · x2
[max#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 3
[+(x1, x2)] = 3 + 3 · x1
[#pred(x1)] = 3
[firstline(x1)] = 3 + 3 · x1
[firstline#1(x1)] = 3
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 2 · x1
[lcs#1#(x1)] = 2
[lcs#2#(x1)] = 2
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x1 + 0
[lcstable#1#(x1, x2)] = 2 · x1 + 0
[lcstable#2#(x1, x2, x3)] = 2
[lcstable#3#(x1, x2, x3)] = 1
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 1
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 3
[#GT] = 3
[#LT] = 3
[::(x1, x2)] = 2 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1 Rule Shifting

The rules
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 2 · x1 + 0 + 1 · x2
[#succ(x1)] = 3
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 3 + 3 · x1 + 3 · x2
[#compare(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable#2(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[lcstable#3(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline(x1, x2, x3)] = 3 · x3 + 0
[newline#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline#2(x1,...,x4)] = 3 + 3 · x2 + 3 · x3 + 3 · x4
[newline#3(x1,...,x5)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5
[newline#4(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[right(x1)] = 2 + 2 · x1
[right#1(x1)] = 2 + 2 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[newline#6(x1, x2)] = 3 + 3 · x2
[newline#7(x1,...,x4)] = 2 + 2 · x1 + 2 · x2 + 2 · x3 + 2 · x4
[#equal(x1, x2)] = 0
[max(x1, x2)] = 2 + 2 · x1 + 2 · x2
[max#1(x1, x2, x3)] = 1 + 2 · x2 + 2 · x3
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 3
[+(x1, x2)] = 2 · x1 + 0 + 1 · x2
[#pred(x1)] = 3 + 1 · x1
[firstline(x1)] = 3 + 3 · x1
[firstline#1(x1)] = 3
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 3 + 3 · x1
[lcs#1#(x1)] = 1
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 + 2 · x1
[lcstable#1#(x1, x2)] = 2 + 2 · x1
[lcstable#2#(x1, x2, x3)] = 2 + 1 · x3
[lcstable#3#(x1, x2, x3)] = 1 + 1 · x3
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 1
[#true] = 1
[#pos(x1)] = 1 + 1 · x1
[#s(x1)] = 3 + 1 · x1
[#0] = 0
[#neg(x1)] = 1 · x1 + 0
[#EQ] = 3
[#GT] = 3
[#LT] = 3
[::(x1, x2)] = 1 + 1 · x1 + 1 · x2
[nil] = 2
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1 Rule Shifting

The rules
#abs#(#neg(z0)) → c49 (90)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 3
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 3 + 3 · x1 + 3 · x2
[#compare(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable#2(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[lcstable#3(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline(x1, x2, x3)] = 2
[newline#1(x1, x2, x3)] = 2
[newline#2(x1,...,x4)] = 2
[newline#3(x1,...,x5)] = 0
[newline#4(x1,...,x6)] = 0
[right(x1)] = 0
[right#1(x1)] = 3
[#abs(x1)] = 3
[newline#5(x1,...,x6)] = 0
[newline#6(x1, x2)] = 0
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 3 + 3 · x1 + 3 · x2
[max#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 3
[+(x1, x2)] = 3 + 3 · x1
[#pred(x1)] = 3
[firstline(x1)] = 3 + 3 · x1
[firstline#1(x1)] = 3
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 0
[lcstable#1#(x1, x2)] = 0
[lcstable#2#(x1, x2, x3)] = 0
[lcstable#3#(x1, x2, x3)] = 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 1
[#EQ] = 3
[#GT] = 3
[#LT] = 3
[::(x1, x2)] = 0
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1 Rule Shifting

The rules
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(nil,z0,z1,z2) → c77 (143)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#compare(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcstable#2(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[lcstable#3(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3
[newline#2(x1,...,x4)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5
[newline#4(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[right(x1)] = 1 + 1 · x1
[right#1(x1)] = 1 + 1 · x1
[#abs(x1)] = 1 + 1 · x1
[newline#5(x1,...,x6)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6
[newline#6(x1, x2)] = 1 + 1 · x2
[newline#7(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4
[#equal(x1, x2)] = 1 · x1 + 0 + 1 · x2
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2
[max#1(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3
[#greater(x1, x2)] = 1 + 1 · x1 + 1 · x2
[#ckgt(x1)] = 0
[+(x1, x2)] = 1 + 1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 1 · x1
[firstline#1(x1)] = 1 + 1 · x1
[#add#(x1, x2)] = 1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 1 · x2 + 0
[firstline#(x1)] = 1 · x1 + 0
[firstline#1#(x1)] = 1 · x1 + 0
[lcs#(x1, x2)] = 1 + 1 · x1 + 1 · x2
[lcs#1#(x1)] = 1
[lcs#2#(x1)] = 1
[lcs#3#(x1)] = 1
[lcstable#(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#1#(x1, x2)] = 1 · x1 + 0 + 1 · x2
[lcstable#2#(x1, x2, x3)] = 1
[lcstable#3#(x1, x2, x3)] = 1
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1
[newline#1#(x1, x2, x3)] = 1
[newline#2#(x1,...,x4)] = 1
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 1
[#GT] = 1
[#LT] = 1
[::(x1, x2)] = 1 + 1 · x2
[nil] = 1
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
firstline#(z0) → c55(firstline#1#(z0)) (102)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 3
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 3 + 3 · x1 + 3 · x2
[#compare(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable#2(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[lcstable#3(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline#2(x1,...,x4)] = 3 + 3 · x2 + 3 · x3 + 3 · x4
[newline#3(x1,...,x5)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5
[newline#4(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[right(x1)] = 0
[right#1(x1)] = 3
[#abs(x1)] = 3
[newline#5(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[newline#6(x1, x2)] = 3 + 3 · x2
[newline#7(x1,...,x4)] = 3 · x2 + 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 3 + 3 · x1 + 3 · x2
[max#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 3
[+(x1, x2)] = 3 + 3 · x1
[#pred(x1)] = 3
[firstline(x1)] = 3 + 3 · x1
[firstline#1(x1)] = 3
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 2 + 1 · x1
[firstline#1#(x1)] = 1 · x1 + 0
[lcs#(x1, x2)] = 3 + 2 · x1 + 1 · x2
[lcs#1#(x1)] = 2
[lcs#2#(x1)] = 2
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 + 2 · x1 + 1 · x2
[lcstable#1#(x1, x2)] = 2 · x1 + 0 + 1 · x2
[lcstable#2#(x1, x2, x3)] = 0
[lcstable#3#(x1, x2, x3)] = 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 3
[#GT] = 3
[#LT] = 3
[::(x1, x2)] = 2 + 1 · x2
[nil] = 1
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
#abs#(#s(z0)) → c51 (94)
are strictly oriented by the following linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 3
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 3 + 3 · x1 + 3 · x2
[#compare(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 3 + 3 · x1 + 3 · x2
[lcstable#2(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[lcstable#3(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[newline#2(x1,...,x4)] = 3 + 3 · x2 + 3 · x3 + 3 · x4
[newline#3(x1,...,x5)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5
[newline#4(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[right(x1)] = 2 · x1 + 0
[right#1(x1)] = 2 · x1 + 0
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 3 + 3 · x2 + 3 · x3 + 3 · x4 + 3 · x5 + 3 · x6
[newline#6(x1, x2)] = 3 + 3 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 3 + 3 · x1 + 3 · x2
[max#1(x1, x2, x3)] = 3 + 3 · x2 + 3 · x3
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 3
[+(x1, x2)] = 3 + 3 · x1
[#pred(x1)] = 3
[firstline(x1)] = 3 + 3 · x1
[firstline#1(x1)] = 3
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 3 · x1 + 0
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 0
[lcstable#1#(x1, x2)] = 0
[lcstable#2#(x1, x2, x3)] = 0
[lcstable#3#(x1, x2, x3)] = 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 0
[newline#1#(x1, x2, x3)] = 0
[newline#2#(x1,...,x4)] = 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 1
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 3
[#GT] = 3
[#LT] = 3
[::(x1, x2)] = 1 · x1 + 0
[nil] = 2
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 2 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 2 · x2 · x2 + 1 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#1#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 1 · x3 + 0
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 1
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 1
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 2 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x1 + 2 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x1 · x2 + 0
[lcstable#1#(x1, x2)] = 2 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 2
[max#1#(x1, x2, x3)] = 2
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 2 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 2
[newline#5#(x1,...,x6)] = 2
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 1 · x1 + 0 + 1 · x1 · x1
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 1
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:

There are 108 ruless (increase limit for explicit display).

1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 1 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 1 · x1 + 2 · x2 + 2 · x2 · x2 + 1 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x1 + 0 + 1 · x1 · x2
[lcstable#1#(x1, x2)] = 1 · x1 + 0 + 1 · x1 · x2
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 1 + 1 · x3
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 2 · x1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 2 · x1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 2 · x1 + 2 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 2
[lcs#2#(x1)] = 2
[lcs#3#(x1)] = 2
[lcstable#(x1, x2)] = 2 · x1 · x2 + 0
[lcstable#1#(x1, x2)] = 2 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 2 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 2
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 1 · x1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 1 · x1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 + 2 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 + 2 · x1 + 2 · x1 · x2 + 1 · x1 · x1
[lcstable#1#(x1, x2)] = 1 + 2 · x1 + 2 · x1 · x2 + 1 · x1 · x1
[lcstable#2#(x1, x2, x3)] = 2 + 2 · x2
[lcstable#3#(x1, x2, x3)] = 2 + 2 · x2
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 + 1 · x3
[newline#1#(x1, x2, x3)] = 1 + 1 · x1
[newline#2#(x1,...,x4)] = 2 + 1 · x3
[newline#3#(x1,...,x5)] = 0
[newline#4#(x1,...,x6)] = 0
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 2
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 2 · x1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 2 · x1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 2 · x2 + 2 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#1#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 1 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 2
[newline#5#(x1,...,x6)] = 2
[newline#6#(x1, x2)] = 1
[newline#7#(x1,...,x4)] = 1
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 2
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 2 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 2 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 1 · x1 + 0 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x1 · x2 + 0 + 1 · x1 · x1
[lcstable#1#(x1, x2)] = 2 · x1 · x2 + 0 + 1 · x1 · x1
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 1 + 1 · x3
[newline#3#(x1,...,x5)] = 1
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 1
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 · x1 + 0 + 1 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 1 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x2 + 0 + 1 · x1 · x2
[lcstable#1#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 1 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 1
[right#1#(x1)] = 1
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 2 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 1
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 1 · x1 + 2 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x2 + 0 + 2 · x1 · x2
[lcstable#1#(x1, x2)] = 2 · x2 + 0 + 2 · x1 · x2
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 1 + 2 · x3
[newline#3#(x1,...,x5)] = 1
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 1
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
#abs#(#0) → c48 (88)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 1 + 2 · x1 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 1 · x1 · x1 + 0
[firstline#1#(x1)] = 1 · x1 · x1 + 0
[lcs#(x1, x2)] = 2 + 1 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 1
[lcs#2#(x1)] = 1
[lcs#3#(x1)] = 1
[lcstable#(x1, x2)] = 1 · x2 · x2 + 0 + 2 · x1 · x2 + 1 · x1 · x1
[lcstable#1#(x1, x2)] = 1 · x2 · x2 + 0 + 2 · x1 · x2 + 1 · x1 · x1
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 2 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 1
[right#1#(x1)] = 1
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 1
[+#(x1, x2)] = 0
[firstline#(x1)] = 2 · x1 + 0
[firstline#1#(x1)] = 2 · x1 + 0
[lcs#(x1, x2)] = 1 + 2 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x2 + 0 + 2 · x1 · x2 + 2 · x1 · x1
[lcstable#1#(x1, x2)] = 2 · x2 + 0 + 2 · x1 · x2 + 2 · x1 · x1
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 1
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 2 · x3
[newline#3#(x1,...,x5)] = 1
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 1
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 1
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 2 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 2 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 · x1 + 0 + 2 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#1#(x1, x2)] = 1 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0
[max#(x1, x2)] = 1
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 1 + 1 · x3
[newline#3#(x1,...,x5)] = 1
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 1
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 1
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
right#(z0) → c84(right#1#(z0)) (157)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 0
[right#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 1 + 2 · x1 + 2 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 1 · x1 · x2 + 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 2 · x1 · x2 + 0
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 2 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 1 · x1 · x1
[lcs#1#(x1)] = 2
[lcs#2#(x1)] = 2
[lcs#3#(x1)] = 1
[lcstable#(x1, x2)] = 2 · x2 + 0 + 2 · x1 · x2
[lcstable#1#(x1, x2)] = 2 · x1 · x2 + 0
[lcstable#2#(x1, x2, x3)] = 2 · x2 + 0
[lcstable#3#(x1, x2, x3)] = 2 · x2 + 0
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 2 · x3 + 0
[newline#1#(x1, x2, x3)] = 2 · x1 + 0
[newline#2#(x1,...,x4)] = 2 + 2 · x3
[newline#3#(x1,...,x5)] = 2
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 0
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 0
[right#(x1)] = 1
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 2
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 2 + 1 · x2
[nil] = 0
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Shifting

The rules
+#(z0,z1) → c54(#add#(z0,z1)) (100)
are strictly oriented by the following non-linear polynomial interpretation over the naturals
[c] = 0
[c1(x1)] = 1 · x1 + 0
[c2(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c3(x1)] = 1 · x1 + 0
[c4(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c5] = 0
[c6] = 0
[c7] = 0
[c8] = 0
[c9] = 0
[c10] = 0
[c11] = 0
[c12] = 0
[c13] = 0
[c14] = 0
[c15] = 0
[c16] = 0
[c17(x1)] = 1 · x1 + 0
[c18] = 0
[c19] = 0
[c20] = 0
[c21(x1)] = 1 · x1 + 0
[c22] = 0
[c23(x1)] = 1 · x1 + 0
[c24] = 0
[c25] = 0
[c26] = 0
[c27] = 0
[c28] = 0
[c29(x1)] = 1 · x1 + 0
[c30] = 0
[c31] = 0
[c32] = 0
[c33(x1)] = 1 · x1 + 0
[c34] = 0
[c35(x1)] = 1 · x1 + 0
[c36(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c37] = 0
[c38] = 0
[c39] = 0
[c40] = 0
[c41] = 0
[c42] = 0
[c43] = 0
[c44] = 0
[c45] = 0
[c46] = 0
[c47] = 0
[c48] = 0
[c49] = 0
[c50] = 0
[c51] = 0
[c52(x1)] = 1 · x1 + 0
[c53(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c54(x1)] = 1 · x1 + 0
[c55(x1)] = 1 · x1 + 0
[c56(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c57] = 0
[c58(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c59(x1)] = 1 · x1 + 0
[c60(x1)] = 1 · x1 + 0
[c61(x1)] = 1 · x1 + 0
[c62] = 0
[c63(x1)] = 1 · x1 + 0
[c64(x1)] = 1 · x1 + 0
[c65(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c66(x1)] = 1 · x1 + 0
[c67(x1)] = 1 · x1 + 0
[c68(x1)] = 1 · x1 + 0
[c69] = 0
[c70(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c71] = 0
[c72] = 0
[c73(x1)] = 1 · x1 + 0
[c74(x1)] = 1 · x1 + 0
[c75] = 0
[c76(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c77] = 0
[c78(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c79(x1, x2)] = 1 · x1 + 0 + 1 · x2
[c80(x1, x2, x3)] = 1 · x1 + 0 + 1 · x2 + 1 · x3
[c81] = 0
[c82(x1)] = 1 · x1 + 0
[c83(x1)] = 1 · x1 + 0
[c84(x1)] = 1 · x1 + 0
[c85] = 0
[c86(x1)] = 1 · x1 + 0
[#add(x1, x2)] = 0
[#succ(x1)] = 1
[#eq(x1, x2)] = 0
[#and(x1, x2)] = 1
[#compare(x1, x2)] = 0
[lcstable(x1, x2)] = 0
[lcstable#1(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[lcstable#3(x1, x2, x3)] = 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline(x1, x2, x3)] = 0
[newline#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#2(x1,...,x4)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[newline#3(x1,...,x5)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x1 · x5 + 1 · x1 · x1 + 1 · x2 · x1 + 1 · x3 · x1 + 1 · x4 · x1 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x3 · x3
[newline#4(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[right(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[right#1(x1)] = 2 · x1 + 0 + 2 · x1 · x1
[#abs(x1)] = 0
[newline#5(x1,...,x6)] = 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x5 + 1 · x6 + 1 · x6 · x6 + 1 · x5 · x6 + 1 · x4 · x6 + 1 · x3 · x6 + 1 · x2 · x6 + 1 · x5 · x5 + 1 · x4 · x5 + 1 · x3 · x5 + 1 · x2 · x5 + 1 · x2 · x2 + 1 · x3 · x2 + 1 · x4 · x2 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x3 · x3
[newline#6(x1, x2)] = 1 + 1 · x2 + 1 · x2 · x2
[newline#7(x1,...,x4)] = 0
[#equal(x1, x2)] = 0
[max(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[max#1(x1, x2, x3)] = 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2
[#greater(x1, x2)] = 0
[#ckgt(x1)] = 1
[+(x1, x2)] = 1 + 1 · x1 + 1 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 1 · x1 · x1
[#pred(x1)] = 1
[firstline(x1)] = 2 + 1 · x1 + 1 · x1 · x1
[firstline#1(x1)] = 1 + 1 · x1 + 1 · x1 · x1
[#add#(x1, x2)] = 0
[#and#(x1, x2)] = 0
[#ckgt#(x1)] = 0
[#compare#(x1, x2)] = 0
[#eq#(x1, x2)] = 0
[#pred#(x1)] = 0
[#succ#(x1)] = 0
[#abs#(x1)] = 2 · x1 + 0 + 1 · x1 · x1
[#equal#(x1, x2)] = 0
[#greater#(x1, x2)] = 0
[+#(x1, x2)] = 1
[firstline#(x1)] = 0
[firstline#1#(x1)] = 0
[lcs#(x1, x2)] = 2 + 2 · x1 + 2 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1
[lcs#1#(x1)] = 0
[lcs#2#(x1)] = 0
[lcs#3#(x1)] = 0
[lcstable#(x1, x2)] = 2 · x2 + 0 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#1#(x1, x2)] = 2 · x2 + 0 + 1 · x1 · x2 + 1 · x1 · x1
[lcstable#2#(x1, x2, x3)] = 1 · x2 + 0 + 2 · x3
[lcstable#3#(x1, x2, x3)] = 1 · x2 + 0 + 1 · x3
[max#(x1, x2)] = 0
[max#1#(x1, x2, x3)] = 0
[newline#(x1, x2, x3)] = 1 · x3 + 0
[newline#1#(x1, x2, x3)] = 1 · x1 + 0
[newline#2#(x1,...,x4)] = 1 + 1 · x3
[newline#3#(x1,...,x5)] = 1
[newline#4#(x1,...,x6)] = 1
[newline#5#(x1,...,x6)] = 1
[newline#6#(x1, x2)] = 0
[newline#7#(x1,...,x4)] = 1
[right#(x1)] = 0
[right#1#(x1)] = 0
[#false] = 0
[#true] = 0
[#pos(x1)] = 0
[#s(x1)] = 0
[#0] = 0
[#neg(x1)] = 0
[#EQ] = 0
[#GT] = 0
[#LT] = 0
[::(x1, x2)] = 1 + 1 · x1 + 1 · x2
[nil] = 2
which has the intended complexity. Here, only the following usable rules have been considered:
#add#(#0,z0) → c (162)
#add#(#neg(#s(#0)),z0) → c1(#pred#(z0)) (164)
#add#(#neg(#s(#s(z0))),z1) → c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (166)
#add#(#pos(#s(#0)),z0) → c3(#succ#(z0)) (168)
#add#(#pos(#s(#s(z0))),z1) → c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) (170)
#and#(#false,#false) → c5 (171)
#and#(#false,#true) → c6 (172)
#and#(#true,#false) → c7 (173)
#and#(#true,#true) → c8 (174)
#ckgt#(#EQ) → c9 (175)
#ckgt#(#GT) → c10 (176)
#ckgt#(#LT) → c11 (177)
#compare#(#0,#0) → c12 (178)
#compare#(#0,#neg(z0)) → c13 (180)
#compare#(#0,#pos(z0)) → c14 (182)
#compare#(#0,#s(z0)) → c15 (184)
#compare#(#neg(z0),#0) → c16 (186)
#compare#(#neg(z0),#neg(z1)) → c17(#compare#(z1,z0)) (188)
#compare#(#neg(z0),#pos(z1)) → c18 (190)
#compare#(#pos(z0),#0) → c19 (192)
#compare#(#pos(z0),#neg(z1)) → c20 (194)
#compare#(#pos(z0),#pos(z1)) → c21(#compare#(z0,z1)) (196)
#compare#(#s(z0),#0) → c22 (198)
#compare#(#s(z0),#s(z1)) → c23(#compare#(z0,z1)) (200)
#eq#(#0,#0) → c24 (201)
#eq#(#0,#neg(z0)) → c25 (203)
#eq#(#0,#pos(z0)) → c26 (205)
#eq#(#0,#s(z0)) → c27 (207)
#eq#(#neg(z0),#0) → c28 (209)
#eq#(#neg(z0),#neg(z1)) → c29(#eq#(z0,z1)) (211)
#eq#(#neg(z0),#pos(z1)) → c30 (213)
#eq#(#pos(z0),#0) → c31 (215)
#eq#(#pos(z0),#neg(z1)) → c32 (217)
#eq#(#pos(z0),#pos(z1)) → c33(#eq#(z0,z1)) (219)
#eq#(#s(z0),#0) → c34 (221)
#eq#(#s(z0),#s(z1)) → c35(#eq#(z0,z1)) (223)
#eq#(::(z0,z1),::(z2,z3)) → c36(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) (225)
#eq#(::(z0,z1),nil) → c37 (227)
#eq#(nil,::(z0,z1)) → c38 (229)
#eq#(nil,nil) → c39 (230)
#pred#(#0) → c40 (231)
#pred#(#neg(#s(z0))) → c41 (233)
#pred#(#pos(#s(#0))) → c42 (234)
#pred#(#pos(#s(#s(z0)))) → c43 (236)
#succ#(#0) → c44 (237)
#succ#(#neg(#s(#0))) → c45 (238)
#succ#(#neg(#s(#s(z0)))) → c46 (240)
#succ#(#pos(#s(z0))) → c47 (242)
#abs#(#0) → c48 (88)
#abs#(#neg(z0)) → c49 (90)
#abs#(#pos(z0)) → c50 (92)
#abs#(#s(z0)) → c51 (94)
#equal#(z0,z1) → c52(#eq#(z0,z1)) (96)
#greater#(z0,z1) → c53(#ckgt#(#compare(z0,z1)),#compare#(z0,z1)) (98)
+#(z0,z1) → c54(#add#(z0,z1)) (100)
firstline#(z0) → c55(firstline#1#(z0)) (102)
firstline#1#(::(z0,z1)) → c56(#abs#(#0),firstline#(z1)) (104)
firstline#1#(nil) → c57 (105)
lcs#(z0,z1) → c58(lcs#1#(lcstable(z0,z1)),lcstable#(z0,z1)) (107)
lcs#1#(z0) → c59(lcs#2#(z0)) (109)
lcs#2#(::(z0,z1)) → c60(lcs#3#(z0)) (111)
lcs#2#(nil) → c61(#abs#(#0)) (112)
lcs#3#(::(z0,z1)) → c62 (114)
lcs#3#(nil) → c63(#abs#(#0)) (115)
lcstable#(z0,z1) → c64(lcstable#1#(z0,z1)) (117)
lcstable#1#(::(z0,z1),z2) → c65(lcstable#2#(lcstable(z1,z2),z2,z0),lcstable#(z1,z2)) (119)
lcstable#1#(nil,z0) → c66(firstline#(z0)) (121)
lcstable#2#(z0,z1,z2) → c67(lcstable#3#(z0,z1,z2)) (123)
lcstable#3#(::(z0,z1),z2,z3) → c68(newline#(z3,z0,z2)) (125)
lcstable#3#(nil,z0,z1) → c69 (127)
max#(z0,z1) → c70(max#1#(#greater(z0,z1),z0,z1),#greater#(z0,z1)) (129)
max#1#(#false,z0,z1) → c71 (131)
max#1#(#true,z0,z1) → c72 (133)
newline#(z0,z1,z2) → c73(newline#1#(z2,z1,z0)) (135)
newline#1#(::(z0,z1),z2,z3) → c74(newline#2#(z2,z0,z1,z3)) (137)
newline#1#(nil,z0,z1) → c75 (139)
newline#2#(::(z0,z1),z2,z3,z4) → c76(newline#3#(newline(z4,z1,z3),z0,z1,z2,z4),newline#(z4,z1,z3)) (141)
newline#2#(nil,z0,z1,z2) → c77 (143)
newline#3#(z0,z1,z2,z3,z4) → c78(newline#4#(right(z0),z1,z2,z0,z3,z4),right#(z0)) (145)
newline#4#(z0,z1,z2,z3,z4,z5) → c79(newline#5#(right(z2),z1,z3,z0,z4,z5),right#(z2)) (147)
newline#5#(z0,z1,z2,z3,z4,z5) → c80(newline#6#(newline#7(#equal(z4,z5),z1,z0,z3),z2),newline#7#(#equal(z4,z5),z1,z0,z3),#equal#(z4,z5)) (149)
newline#6#(z0,z1) → c81 (151)
newline#7#(#false,z0,z1,z2) → c82(max#(z0,z2)) (153)
newline#7#(#true,z0,z1,z2) → c83(+#(z1,#pos(#s(#0)))) (155)
right#(z0) → c84(right#1#(z0)) (157)
right#1#(::(z0,z1)) → c85 (159)
right#1#(nil) → c86(#abs#(#0)) (160)

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 R is empty

There are no rules in the TRS R. Hence, R/S has complexity O(1).