MAYBE MAYBE TRS: { sieve(cons(X)) -> cons(X), from(X) -> cons(X), primes() -> sieve(from(s(s(0())))), head(cons(X)) -> X, tail(cons(X)) -> Y, if(true()) -> X, if(false()) -> Y, filter(s(s(X)), cons(Y)) -> if(divides(s(s(X)), Y)) } DUP: We consider a duplicating system. Trs: { sieve(cons(X)) -> cons(X), from(X) -> cons(X), primes() -> sieve(from(s(s(0())))), head(cons(X)) -> X, tail(cons(X)) -> Y, if(true()) -> X, if(false()) -> Y, filter(s(s(X)), cons(Y)) -> if(divides(s(s(X)), Y)) } Fail