R
↳Dependency Pair Analysis
AFILTER(cons(X, Y), s(N), M) -> MARK(X)
ASIEVE(cons(s(N), Y)) -> MARK(N)
ANATS(N) -> MARK(N)
AZPRIMES -> ASIEVE(anats(s(s(0))))
AZPRIMES -> ANATS(s(s(0)))
MARK(filter(X1, X2, X3)) -> AFILTER(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(sieve(X)) -> ASIEVE(mark(X))
MARK(sieve(X)) -> MARK(X)
MARK(nats(X)) -> ANATS(mark(X))
MARK(nats(X)) -> MARK(X)
MARK(zprimes) -> AZPRIMES
MARK(cons(X1, X2)) -> MARK(X1)
MARK(s(X)) -> MARK(X)
R
↳DPs
→DP Problem 1
↳Negative Polynomial Order
MARK(s(X)) -> MARK(X)
MARK(cons(X1, X2)) -> MARK(X1)
AZPRIMES -> ANATS(s(s(0)))
AZPRIMES -> ASIEVE(anats(s(s(0))))
MARK(zprimes) -> AZPRIMES
MARK(nats(X)) -> MARK(X)
ANATS(N) -> MARK(N)
MARK(nats(X)) -> ANATS(mark(X))
MARK(sieve(X)) -> MARK(X)
ASIEVE(cons(s(N), Y)) -> MARK(N)
MARK(sieve(X)) -> ASIEVE(mark(X))
MARK(filter(X1, X2, X3)) -> MARK(X3)
MARK(filter(X1, X2, X3)) -> MARK(X2)
MARK(filter(X1, X2, X3)) -> MARK(X1)
MARK(filter(X1, X2, X3)) -> AFILTER(mark(X1), mark(X2), mark(X3))
AFILTER(cons(X, Y), s(N), M) -> MARK(X)
afilter(cons(X, Y), 0, M) -> cons(0, filter(Y, M, M))
afilter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
afilter(X1, X2, X3) -> filter(X1, X2, X3)
asieve(cons(0, Y)) -> cons(0, sieve(Y))
asieve(cons(s(N), Y)) -> cons(s(mark(N)), sieve(filter(Y, N, N)))
asieve(X) -> sieve(X)
anats(N) -> cons(mark(N), nats(s(N)))
anats(X) -> nats(X)
azprimes -> asieve(anats(s(s(0))))
azprimes -> zprimes
mark(filter(X1, X2, X3)) -> afilter(mark(X1), mark(X2), mark(X3))
mark(sieve(X)) -> asieve(mark(X))
mark(nats(X)) -> anats(mark(X))
mark(zprimes) -> azprimes
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(0) -> 0
mark(s(X)) -> s(mark(X))
innermost
MARK(cons(X1, X2)) -> MARK(X1)
AZPRIMES -> ANATS(s(s(0)))
MARK(nats(X)) -> MARK(X)
MARK(nats(X)) -> ANATS(mark(X))
ASIEVE(cons(s(N), Y)) -> MARK(N)
AFILTER(cons(X, Y), s(N), M) -> MARK(X)
asieve(cons(s(N), Y)) -> cons(s(mark(N)), sieve(filter(Y, N, N)))
asieve(X) -> sieve(X)
mark(s(X)) -> s(mark(X))
afilter(X1, X2, X3) -> filter(X1, X2, X3)
mark(filter(X1, X2, X3)) -> afilter(mark(X1), mark(X2), mark(X3))
afilter(cons(X, Y), 0, M) -> cons(0, filter(Y, M, M))
anats(X) -> nats(X)
azprimes -> zprimes
anats(N) -> cons(mark(N), nats(s(N)))
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(zprimes) -> azprimes
mark(nats(X)) -> anats(mark(X))
afilter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
azprimes -> asieve(anats(s(s(0))))
mark(sieve(X)) -> asieve(mark(X))
mark(0) -> 0
asieve(cons(0, Y)) -> cons(0, sieve(Y))
POL( MARK(x1) ) = x1
POL( cons(x1, x2) ) = x1 + 1
POL( filter(x1, ..., x3) ) = x1 + x2 + x3
POL( AFILTER(x1, ..., x3) ) = x1
POL( mark(x1) ) = x1
POL( nats(x1) ) = x1 + 1
POL( ANATS(x1) ) = x1
POL( ASIEVE(x1) ) = x1
POL( s(x1) ) = x1
POL( sieve(x1) ) = x1
POL( AZPRIMES ) = 1
POL( 0 ) = 0
POL( zprimes ) = 1
POL( anats(x1) ) = x1 + 1
POL( asieve(x1) ) = x1
POL( afilter(x1, ..., x3) ) = x1 + x2 + x3
POL( azprimes ) = 1
R
↳DPs
→DP Problem 1
↳Neg POLO
→DP Problem 2
↳Dependency Graph
MARK(s(X)) -> MARK(X)
AZPRIMES -> ASIEVE(anats(s(s(0))))
MARK(zprimes) -> AZPRIMES
ANATS(N) -> MARK(N)
MARK(sieve(X)) -> MARK(X)
MARK(sieve(X)) -> ASIEVE(mark(X))
MARK(filter(X1, X2, X3)) -> MARK(X3)
MARK(filter(X1, X2, X3)) -> MARK(X2)
MARK(filter(X1, X2, X3)) -> MARK(X1)
MARK(filter(X1, X2, X3)) -> AFILTER(mark(X1), mark(X2), mark(X3))
afilter(cons(X, Y), 0, M) -> cons(0, filter(Y, M, M))
afilter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
afilter(X1, X2, X3) -> filter(X1, X2, X3)
asieve(cons(0, Y)) -> cons(0, sieve(Y))
asieve(cons(s(N), Y)) -> cons(s(mark(N)), sieve(filter(Y, N, N)))
asieve(X) -> sieve(X)
anats(N) -> cons(mark(N), nats(s(N)))
anats(X) -> nats(X)
azprimes -> asieve(anats(s(s(0))))
azprimes -> zprimes
mark(filter(X1, X2, X3)) -> afilter(mark(X1), mark(X2), mark(X3))
mark(sieve(X)) -> asieve(mark(X))
mark(nats(X)) -> anats(mark(X))
mark(zprimes) -> azprimes
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(0) -> 0
mark(s(X)) -> s(mark(X))
innermost
R
↳DPs
→DP Problem 1
↳Neg POLO
→DP Problem 2
↳DGraph
...
→DP Problem 3
↳Usable Rules (Innermost)
MARK(sieve(X)) -> MARK(X)
MARK(filter(X1, X2, X3)) -> MARK(X3)
MARK(filter(X1, X2, X3)) -> MARK(X2)
MARK(filter(X1, X2, X3)) -> MARK(X1)
MARK(s(X)) -> MARK(X)
afilter(cons(X, Y), 0, M) -> cons(0, filter(Y, M, M))
afilter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
afilter(X1, X2, X3) -> filter(X1, X2, X3)
asieve(cons(0, Y)) -> cons(0, sieve(Y))
asieve(cons(s(N), Y)) -> cons(s(mark(N)), sieve(filter(Y, N, N)))
asieve(X) -> sieve(X)
anats(N) -> cons(mark(N), nats(s(N)))
anats(X) -> nats(X)
azprimes -> asieve(anats(s(s(0))))
azprimes -> zprimes
mark(filter(X1, X2, X3)) -> afilter(mark(X1), mark(X2), mark(X3))
mark(sieve(X)) -> asieve(mark(X))
mark(nats(X)) -> anats(mark(X))
mark(zprimes) -> azprimes
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(0) -> 0
mark(s(X)) -> s(mark(X))
innermost
R
↳DPs
→DP Problem 1
↳Neg POLO
→DP Problem 2
↳DGraph
...
→DP Problem 4
↳Size-Change Principle
MARK(sieve(X)) -> MARK(X)
MARK(filter(X1, X2, X3)) -> MARK(X3)
MARK(filter(X1, X2, X3)) -> MARK(X2)
MARK(filter(X1, X2, X3)) -> MARK(X1)
MARK(s(X)) -> MARK(X)
none
innermost
|
|
trivial
filter(x1, x2, x3) -> filter(x1, x2, x3)
sieve(x1) -> sieve(x1)
s(x1) -> s(x1)