YES (VAR x0 x1 x y z) (RULES rev(@(x0,.(x1,nil()))) -> .(x1,rev(x0)) rev(rev(x)) -> x rev(.(x,y)) -> @(rev(y),.(x,nil())) rev(nil()) -> nil() @(.(x,y),z) -> .(x,@(y,z)) @(nil(),y) -> y ) (COMMENT Termination is shown by ELPO with interpretations on natural numbers @_A(x1,x2) = x1 + x2 nil_A = 0 ._A(x1,x2) = x2 + 1 rev_A(x1) = x1 + 1 @#_A(x1,x2) = x2 nil#_A = 0 rev#_A(x1) = x1 and precedence: rev > @ > . > nil )