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).