YES TRS: rev(nil()) -> nil() rev(.(x,y)) -> ++(rev(y),.(x,nil())) car(.(x,y)) -> x cdr(.(x,y)) -> y null(nil()) -> true() null(.(x,y)) -> false() ++(nil(),y) -> y ++(.(x,y),z) -> .(x,++(y,z)) max/plus interpretations on N: rev_A(x1) = max{10, 1 + x1} rev#_A(x1) = max{0, 1 + x1} nil_A = 9 nil#_A = 7 ._A(x1,x2) = max{4, 8 + x1, x2} .#_A(x1,x2) = max{6, 3, 2} ++_A(x1,x2) = max{10, x1, 1 + x2} ++#_A(x1,x2) = max{7, 8, 4} car_A(x1) = max{0, -8 + x1} car#_A(x1) = max{0, x1} cdr_A(x1) = max{0, x1} cdr#_A(x1) = max{0, x1} null_A(x1) = max{0, -1} null#_A(x1) = max{3, 5} true_A = 0 true#_A = 4 false_A = 0 false#_A = 4 precedence: nil = null > rev = . = car = cdr = true > ++ = false