(VAR F H T X ) (RULES rand(X) -> X rand(s(X)) -> rand(X) bool(0) -> false bool(s(0)) -> true filter(F, nil) -> nil filter(F, cons(H, T)) -> consif(, H, filter(F, T)) consif(true, H, T) -> cons(H, T) consif(false, H, T) -> T )