NO Problem: tail(cons(X)) -> Y if(true()) -> X if(false()) -> Y primes() -> sieve(from(s(s(0())))) from(X) -> cons(X) head(cons(X)) -> X filter(s(s(X)),cons(Y)) -> if(divides(s(s(X)),Y)) sieve(cons(X)) -> cons(X) Proof: Fresh Variable Processor: loop length: 1 terms: tail(cons(X)) context: [] substitution: Y -> tail(cons(X)) Qed