MAYBE Problem: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) Proof: DP Processor: DPs: filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) sieve#(cons(0(),Y)) -> sieve#(Y) sieve#(cons(s(N),Y)) -> filter#(Y,N,N) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) nats#(N) -> nats#(s(N)) zprimes#() -> nats#(s(s(0()))) zprimes#() -> sieve#(nats(s(s(0())))) TRS: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) TDG Processor: DPs: filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) sieve#(cons(0(),Y)) -> sieve#(Y) sieve#(cons(s(N),Y)) -> filter#(Y,N,N) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) nats#(N) -> nats#(s(N)) zprimes#() -> nats#(s(s(0()))) zprimes#() -> sieve#(nats(s(s(0())))) TRS: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) graph: zprimes#() -> nats#(s(s(0()))) -> nats#(N) -> nats#(s(N)) zprimes#() -> sieve#(nats(s(s(0())))) -> sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) zprimes#() -> sieve#(nats(s(s(0())))) -> sieve#(cons(s(N),Y)) -> filter#(Y,N,N) zprimes#() -> sieve#(nats(s(s(0())))) -> sieve#(cons(0(),Y)) -> sieve#(Y) nats#(N) -> nats#(s(N)) -> nats#(N) -> nats#(s(N)) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) -> sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) -> sieve#(cons(s(N),Y)) -> filter#(Y,N,N) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) -> sieve#(cons(0(),Y)) -> sieve#(Y) sieve#(cons(s(N),Y)) -> filter#(Y,N,N) -> filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) sieve#(cons(s(N),Y)) -> filter#(Y,N,N) -> filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) sieve#(cons(0(),Y)) -> sieve#(Y) -> sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) sieve#(cons(0(),Y)) -> sieve#(Y) -> sieve#(cons(s(N),Y)) -> filter#(Y,N,N) sieve#(cons(0(),Y)) -> sieve#(Y) -> sieve#(cons(0(),Y)) -> sieve#(Y) filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) -> filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) -> filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) -> filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) -> filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) SCC Processor: #sccs: 3 #rules: 5 #arcs: 17/64 DPs: sieve#(cons(0(),Y)) -> sieve#(Y) sieve#(cons(s(N),Y)) -> sieve#(filter(Y,N,N)) TRS: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) Open DPs: filter#(cons(X,Y),0(),M) -> filter#(Y,M,M) filter#(cons(X,Y),s(N),M) -> filter#(Y,N,M) TRS: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) Open DPs: nats#(N) -> nats#(s(N)) TRS: filter(cons(X,Y),0(),M) -> cons(0(),filter(Y,M,M)) filter(cons(X,Y),s(N),M) -> cons(X,filter(Y,N,M)) sieve(cons(0(),Y)) -> cons(0(),sieve(Y)) sieve(cons(s(N),Y)) -> cons(s(N),sieve(filter(Y,N,N))) nats(N) -> cons(N,nats(s(N))) zprimes() -> sieve(nats(s(s(0())))) Open