YES We show the termination of R/S, where R is rev(nil) -> nil rev(cons(x,l)) -> cons(rev1(x,l),rev2(x,l)) rev1(0,nil) -> 0 rev1(s(x),nil) -> s(x) rev1(x,cons(y,l)) -> rev1(y,l) rev2(x,nil) -> nil rev2(x,cons(y,l)) -> rev(cons(x,rev2(y,l))) 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 rev#(cons(x,l)) -> rev1#(x,l) rev#(cons(x,l)) -> rev2#(x,l) rev1#(x,cons(y,l)) -> rev1#(y,l) rev2#(x,cons(y,l)) -> rev#(cons(x,rev2(y,l))) rev2#(x,cons(y,l)) -> rev2#(y,l) and Q consists of the rules: rev(nil) -> nil rev(cons(x,l)) -> cons(rev1(x,l),rev2(x,l)) rev1(0,nil) -> 0 rev1(s(x),nil) -> s(x) rev1(x,cons(y,l)) -> rev1(y,l) rev2(x,nil) -> nil rev2(x,cons(y,l)) -> rev(cons(x,rev2(y,l))) rand(x) -> x rand(x) -> rand(s(x)) The weakly monotone algebra (N^2, >_lex) with rev#_A((x1,y1)) = (1, 1) cons_A((x1,y1),(x2,y2)) = (1, 3) rev1#_A((x1,y1),(x2,y2)) = (0, 0) rev2#_A((x1,y1),(x2,y2)) = (1, 1) rev2_A((x1,y1),(x2,y2)) = (3, 1) rev_A((x1,y1)) = (2, 2) nil_A = (1, 3) rev1_A((x1,y1),(x2,y2)) = (2, 1) 0_A = (1, 2) s_A((x1,y1)) = (0, 2) rand_A((x1,y1)) = (x1 + 1, 0) strictly orients the following dependency pairs: rev#(cons(x,l)) -> rev1#(x,l) We remove them from the set of dependency pairs. The weakly monotone algebra (N^2, >_lex) with rev#_A((x1,y1)) = (x1, y1) cons_A((x1,y1),(x2,y2)) = (x2, y2 + 2) rev2#_A((x1,y1),(x2,y2)) = (x2, y2 + 1) rev1#_A((x1,y1),(x2,y2)) = (x2, y2) rev2_A((x1,y1),(x2,y2)) = (x2, y2) rev_A((x1,y1)) = (x1, y1) nil_A = (0, 1) rev1_A((x1,y1),(x2,y2)) = (2, 1) 0_A = (1, 2) s_A((x1,y1)) = (0, 0) rand_A((x1,y1)) = (x1 + 1, y1) strictly orients the following dependency pairs: rev#(cons(x,l)) -> rev2#(x,l) rev1#(x,cons(y,l)) -> rev1#(y,l) rev2#(x,cons(y,l)) -> rev#(cons(x,rev2(y,l))) rev2#(x,cons(y,l)) -> rev2#(y,l) We remove them from the set of dependency pairs. No dependency pair remains.