(VAR x y z) (RULES purge(nil) -> nil purge(.(x,y)) -> .(x,purge(remove(x,y))) remove(x,nil) -> nil remove(x,.(y,z)) -> if(=(x,y),remove(x,z),.(y,remove(x,z))) ) (COMMENT Example 4.31 (Purging) in \cite{SK90})