MAYBE Time: 1.041557 TRS: { a__filter(X1, X2, X3) -> filter(X1, X2, X3), a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M)), a__filter(cons(X, Y), s N, M) -> cons(mark X, filter(Y, N, M)), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark filter(X1, X2, X3) -> a__filter(mark X1, mark X2, mark X3), mark s X -> s mark X, mark sieve X -> a__sieve mark X, mark nats X -> a__nats mark X, mark zprimes() -> a__zprimes(), a__sieve X -> sieve X, a__sieve cons(0(), Y) -> cons(0(), sieve Y), a__sieve cons(s N, Y) -> cons(s mark N, sieve filter(Y, N, N)), a__nats X -> nats X, a__nats N -> cons(mark N, nats s N), a__zprimes() -> a__sieve a__nats s s 0(), a__zprimes() -> zprimes()} DP: DP: {a__filter#(cons(X, Y), s N, M) -> mark# X, mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3), mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X3, mark# s X -> mark# X, mark# sieve X -> mark# X, mark# sieve X -> a__sieve# mark X, mark# nats X -> mark# X, mark# nats X -> a__nats# mark X, mark# zprimes() -> a__zprimes#(), a__sieve# cons(s N, Y) -> mark# N, a__nats# N -> mark# N, a__zprimes#() -> a__sieve# a__nats s s 0(), a__zprimes#() -> a__nats# s s 0()} TRS: { a__filter(X1, X2, X3) -> filter(X1, X2, X3), a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M)), a__filter(cons(X, Y), s N, M) -> cons(mark X, filter(Y, N, M)), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark filter(X1, X2, X3) -> a__filter(mark X1, mark X2, mark X3), mark s X -> s mark X, mark sieve X -> a__sieve mark X, mark nats X -> a__nats mark X, mark zprimes() -> a__zprimes(), a__sieve X -> sieve X, a__sieve cons(0(), Y) -> cons(0(), sieve Y), a__sieve cons(s N, Y) -> cons(s mark N, sieve filter(Y, N, N)), a__nats X -> nats X, a__nats N -> cons(mark N, nats s N), a__zprimes() -> a__sieve a__nats s s 0(), a__zprimes() -> zprimes()} UR: { a__filter(X1, X2, X3) -> filter(X1, X2, X3), a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M)), a__filter(cons(X, Y), s N, M) -> cons(mark X, filter(Y, N, M)), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark filter(X1, X2, X3) -> a__filter(mark X1, mark X2, mark X3), mark s X -> s mark X, mark sieve X -> a__sieve mark X, mark nats X -> a__nats mark X, mark zprimes() -> a__zprimes(), a__sieve X -> sieve X, a__sieve cons(0(), Y) -> cons(0(), sieve Y), a__sieve cons(s N, Y) -> cons(s mark N, sieve filter(Y, N, N)), a__nats X -> nats X, a__nats N -> cons(mark N, nats s N), a__zprimes() -> a__sieve a__nats s s 0(), a__zprimes() -> zprimes()} EDG: {(mark# nats X -> a__nats# mark X, a__nats# N -> mark# N) (mark# filter(X1, X2, X3) -> mark# X1, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X1, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X1, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X1, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3), a__filter#(cons(X, Y), s N, M) -> mark# X) (a__zprimes#() -> a__nats# s s 0(), a__nats# N -> mark# N) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# zprimes() -> a__zprimes#()) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# nats X -> a__nats# mark X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# nats X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# sieve X -> a__sieve# mark X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# sieve X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# s X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# sieve X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# sieve X -> mark# X, mark# nats X -> a__nats# mark X) (mark# sieve X -> mark# X, mark# nats X -> mark# X) (mark# sieve X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# sieve X -> mark# X, mark# sieve X -> mark# X) (mark# sieve X -> mark# X, mark# s X -> mark# X) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# sieve X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X3, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X3, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X3, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X3, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X3, mark# cons(X1, X2) -> mark# X1) (a__nats# N -> mark# N, mark# zprimes() -> a__zprimes#()) (a__nats# N -> mark# N, mark# nats X -> a__nats# mark X) (a__nats# N -> mark# N, mark# nats X -> mark# X) (a__nats# N -> mark# N, mark# sieve X -> a__sieve# mark X) (a__nats# N -> mark# N, mark# sieve X -> mark# X) (a__nats# N -> mark# N, mark# s X -> mark# X) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X3) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X2) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X1) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__nats# N -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X2) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X3) (a__sieve# cons(s N, Y) -> mark# N, mark# s X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# sieve X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# sieve X -> a__sieve# mark X) (a__sieve# cons(s N, Y) -> mark# N, mark# nats X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# nats X -> a__nats# mark X) (a__sieve# cons(s N, Y) -> mark# N, mark# zprimes() -> a__zprimes#()) (mark# nats X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# nats X -> mark# X, mark# s X -> mark# X) (mark# nats X -> mark# X, mark# sieve X -> mark# X) (mark# nats X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# nats X -> mark# X, mark# nats X -> mark# X) (mark# nats X -> mark# X, mark# nats X -> a__nats# mark X) (mark# nats X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# sieve X -> mark# X) (mark# s X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# s X -> mark# X, mark# nats X -> mark# X) (mark# s X -> mark# X, mark# nats X -> a__nats# mark X) (mark# s X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X2, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X2, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X2, mark# zprimes() -> a__zprimes#()) (a__zprimes#() -> a__sieve# a__nats s s 0(), a__sieve# cons(s N, Y) -> mark# N) (mark# zprimes() -> a__zprimes#(), a__zprimes#() -> a__sieve# a__nats s s 0()) (mark# zprimes() -> a__zprimes#(), a__zprimes#() -> a__nats# s s 0()) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X3) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# sieve X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# sieve X -> a__sieve# mark X) (mark# cons(X1, X2) -> mark# X1, mark# nats X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# nats X -> a__nats# mark X) (mark# cons(X1, X2) -> mark# X1, mark# zprimes() -> a__zprimes#()) (mark# sieve X -> a__sieve# mark X, a__sieve# cons(s N, Y) -> mark# N)} EDG: {(mark# nats X -> a__nats# mark X, a__nats# N -> mark# N) (mark# filter(X1, X2, X3) -> mark# X1, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X1, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X1, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X1, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3), a__filter#(cons(X, Y), s N, M) -> mark# X) (a__zprimes#() -> a__nats# s s 0(), a__nats# N -> mark# N) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# zprimes() -> a__zprimes#()) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# nats X -> a__nats# mark X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# nats X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# sieve X -> a__sieve# mark X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# sieve X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# s X -> mark# X) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__filter#(cons(X, Y), s N, M) -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# sieve X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# sieve X -> mark# X, mark# nats X -> a__nats# mark X) (mark# sieve X -> mark# X, mark# nats X -> mark# X) (mark# sieve X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# sieve X -> mark# X, mark# sieve X -> mark# X) (mark# sieve X -> mark# X, mark# s X -> mark# X) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# sieve X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# sieve X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X3, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X3, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X3, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X3, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X3, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X3, mark# cons(X1, X2) -> mark# X1) (a__nats# N -> mark# N, mark# zprimes() -> a__zprimes#()) (a__nats# N -> mark# N, mark# nats X -> a__nats# mark X) (a__nats# N -> mark# N, mark# nats X -> mark# X) (a__nats# N -> mark# N, mark# sieve X -> a__sieve# mark X) (a__nats# N -> mark# N, mark# sieve X -> mark# X) (a__nats# N -> mark# N, mark# s X -> mark# X) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X3) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X2) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> mark# X1) (a__nats# N -> mark# N, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__nats# N -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X1) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X2) (a__sieve# cons(s N, Y) -> mark# N, mark# filter(X1, X2, X3) -> mark# X3) (a__sieve# cons(s N, Y) -> mark# N, mark# s X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# sieve X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# sieve X -> a__sieve# mark X) (a__sieve# cons(s N, Y) -> mark# N, mark# nats X -> mark# X) (a__sieve# cons(s N, Y) -> mark# N, mark# nats X -> a__nats# mark X) (a__sieve# cons(s N, Y) -> mark# N, mark# zprimes() -> a__zprimes#()) (mark# nats X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# nats X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# nats X -> mark# X, mark# s X -> mark# X) (mark# nats X -> mark# X, mark# sieve X -> mark# X) (mark# nats X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# nats X -> mark# X, mark# nats X -> mark# X) (mark# nats X -> mark# X, mark# nats X -> a__nats# mark X) (mark# nats X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X2) (mark# s X -> mark# X, mark# filter(X1, X2, X3) -> mark# X3) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# sieve X -> mark# X) (mark# s X -> mark# X, mark# sieve X -> a__sieve# mark X) (mark# s X -> mark# X, mark# nats X -> mark# X) (mark# s X -> mark# X, mark# nats X -> a__nats# mark X) (mark# s X -> mark# X, mark# zprimes() -> a__zprimes#()) (mark# filter(X1, X2, X3) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X1) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X2) (mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X3) (mark# filter(X1, X2, X3) -> mark# X2, mark# s X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# sieve X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# sieve X -> a__sieve# mark X) (mark# filter(X1, X2, X3) -> mark# X2, mark# nats X -> mark# X) (mark# filter(X1, X2, X3) -> mark# X2, mark# nats X -> a__nats# mark X) (mark# filter(X1, X2, X3) -> mark# X2, mark# zprimes() -> a__zprimes#()) (a__zprimes#() -> a__sieve# a__nats s s 0(), a__sieve# cons(s N, Y) -> mark# N) (mark# zprimes() -> a__zprimes#(), a__zprimes#() -> a__sieve# a__nats s s 0()) (mark# zprimes() -> a__zprimes#(), a__zprimes#() -> a__nats# s s 0()) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3)) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X3) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# sieve X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# sieve X -> a__sieve# mark X) (mark# cons(X1, X2) -> mark# X1, mark# nats X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# nats X -> a__nats# mark X) (mark# cons(X1, X2) -> mark# X1, mark# zprimes() -> a__zprimes#()) (mark# sieve X -> a__sieve# mark X, a__sieve# cons(s N, Y) -> mark# N)} STATUS: arrows: 0.542969 SCCS (1): Scc: {a__filter#(cons(X, Y), s N, M) -> mark# X, mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3), mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X3, mark# s X -> mark# X, mark# sieve X -> mark# X, mark# sieve X -> a__sieve# mark X, mark# nats X -> mark# X, mark# nats X -> a__nats# mark X, mark# zprimes() -> a__zprimes#(), a__sieve# cons(s N, Y) -> mark# N, a__nats# N -> mark# N, a__zprimes#() -> a__sieve# a__nats s s 0(), a__zprimes#() -> a__nats# s s 0()} SCC (16): Strict: {a__filter#(cons(X, Y), s N, M) -> mark# X, mark# cons(X1, X2) -> mark# X1, mark# filter(X1, X2, X3) -> a__filter#(mark X1, mark X2, mark X3), mark# filter(X1, X2, X3) -> mark# X1, mark# filter(X1, X2, X3) -> mark# X2, mark# filter(X1, X2, X3) -> mark# X3, mark# s X -> mark# X, mark# sieve X -> mark# X, mark# sieve X -> a__sieve# mark X, mark# nats X -> mark# X, mark# nats X -> a__nats# mark X, mark# zprimes() -> a__zprimes#(), a__sieve# cons(s N, Y) -> mark# N, a__nats# N -> mark# N, a__zprimes#() -> a__sieve# a__nats s s 0(), a__zprimes#() -> a__nats# s s 0()} Weak: { a__filter(X1, X2, X3) -> filter(X1, X2, X3), a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M)), a__filter(cons(X, Y), s N, M) -> cons(mark X, filter(Y, N, M)), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark filter(X1, X2, X3) -> a__filter(mark X1, mark X2, mark X3), mark s X -> s mark X, mark sieve X -> a__sieve mark X, mark nats X -> a__nats mark X, mark zprimes() -> a__zprimes(), a__sieve X -> sieve X, a__sieve cons(0(), Y) -> cons(0(), sieve Y), a__sieve cons(s N, Y) -> cons(s mark N, sieve filter(Y, N, N)), a__nats X -> nats X, a__nats N -> cons(mark N, nats s N), a__zprimes() -> a__sieve a__nats s s 0(), a__zprimes() -> zprimes()} Open