YES We show the termination of R/S, where R is half(0) -> 0 half(s(0)) -> 0 half(s(s(x))) -> s(half(x)) lastbit(0) -> 0 lastbit(s(0)) -> s(0) lastbit(s(s(x))) -> lastbit(x) conv(0) -> cons(nil,0) conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x))) and S is: rand(x) -> x rand(x) -> rand(s(x)) Since R almost dominates S and S is non-duplicating, it is enough to show finiteness of (P, Q). Here P consists of the dependency pairs half#(s(s(x))) -> half#(x) lastbit#(s(s(x))) -> lastbit#(x) conv#(s(x)) -> conv#(half(s(x))) conv#(s(x)) -> half#(s(x)) conv#(s(x)) -> lastbit#(s(x)) and Q consists of the rules: half(0) -> 0 half(s(0)) -> 0 half(s(s(x))) -> s(half(x)) lastbit(0) -> 0 lastbit(s(0)) -> s(0) lastbit(s(s(x))) -> lastbit(x) conv(0) -> cons(nil,0) conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x))) rand(x) -> x rand(x) -> rand(s(x)) The weakly monotone algebra (N^3, >_lex) with half#_A((x1,y1,z1)) = (x1, 2, 3) s_A((x1,y1,z1)) = (x1, y1 + 1, z1 + 1) lastbit#_A((x1,y1,z1)) = (x1, y1 + 1, z1) conv#_A((x1,y1,z1)) = (x1 + 1, y1, z1 + 1) half_A((x1,y1,z1)) = (x1, y1, z1) 0_A = (1, 2, 2) lastbit_A((x1,y1,z1)) = (2, 1, 1) conv_A((x1,y1,z1)) = (1, 1, 1) cons_A((x1,y1,z1),(x2,y2,z2)) = (0, 2, 2) nil_A = (1, 1, 1) rand_A((x1,y1,z1)) = (x1 + 1, 1, 0) strictly orients the following dependency pairs: lastbit#(s(s(x))) -> lastbit#(x) conv#(s(x)) -> half#(s(x)) conv#(s(x)) -> lastbit#(s(x)) We remove them from the set of dependency pairs. The weakly monotone algebra (N^3, >_lex) with half#_A((x1,y1,z1)) = (x1, 0, 0) s_A((x1,y1,z1)) = (x1, y1 + 1, 2) conv#_A((x1,y1,z1)) = (x1, y1, z1) half_A((x1,y1,z1)) = (x1, y1, 1) 0_A = (1, 1, 1) lastbit_A((x1,y1,z1)) = (x1 + 1, y1 + 1, z1) conv_A((x1,y1,z1)) = (x1 + 2, 1, 1) cons_A((x1,y1,z1),(x2,y2,z2)) = (x2, 2, 2) nil_A = (1, 1, 1) rand_A((x1,y1,z1)) = (x1 + 1, 1, 0) strictly orients the following dependency pairs: conv#(s(x)) -> conv#(half(s(x))) We remove them from the set of dependency pairs. The weakly monotone algebra (N^3, >_lex) with half#_A((x1,y1,z1)) = (x1, y1, z1) s_A((x1,y1,z1)) = (x1, y1 + 1, 3) half_A((x1,y1,z1)) = (x1 + 1, y1 + 1, 2) 0_A = (1, 2, 2) lastbit_A((x1,y1,z1)) = (2, 1, 1) conv_A((x1,y1,z1)) = (2, 1, 1) cons_A((x1,y1,z1),(x2,y2,z2)) = (x1, y1, 1) nil_A = (1, 2, 1) rand_A((x1,y1,z1)) = (x1 + 1, 1, 0) strictly orients the following dependency pairs: half#(s(s(x))) -> half#(x) We remove them from the set of dependency pairs. No dependency pair remains.