Problem:
 primes() -> sieve(from(s(s(0()))))
 from(X) -> cons(X,from(s(X)))
 head(cons(X,Y)) -> X
 tail(cons(X,Y)) -> Y
 if(true(),X,Y) -> X
 if(false(),X,Y) -> Y
 filter(s(s(X)),cons(Y,Z)) -> if(divides(s(s(X)),Y),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y))))
 sieve(cons(X,Y)) -> cons(X,filter(X,sieve(Y)))

Proof:
 Containment Processor: loop length: 1
                        terms:
                         from(X)
                        context: cons(X,[])
                        substitution:
                         X -> s(X)
  Qed