YES (VAR y x z) (RULES @(.(y,x),z) -> .(y,@(x,z)) rev(@(y,.(x,nil()))) -> .(x,rev(y)) @(nil(),y) -> y rev(nil()) -> nil() rev(.(y,x)) -> @(rev(x),.(y,nil())) rev(rev(y)) -> y )