(STRATEGY INNERMOST) (VAR M N X) (DATATYPES A = µX.< cons(X), 0, s(X) >) (SIGNATURES filter :: [A x A x A] -> A sieve :: [A] -> A nats :: [A] -> A zprimes :: [] -> A) (RULES filter(cons(X),0(),M) -> cons(0()) filter(cons(X),s(N),M) -> cons(X) sieve(cons(0())) -> cons(0()) sieve(cons(s(N))) -> cons(s(N)) nats(N) -> cons(N) zprimes() -> sieve(nats(s(s(0())))))