*** 1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
Strict TRS Rules:
filter(cons(X),0(),M) -> cons(0())
filter(cons(X),s(N),M) -> cons(X)
nats(N) -> cons(N)
sieve(cons(0())) -> cons(0())
sieve(cons(s(N))) -> cons(s(N))
zprimes() -> sieve(nats(s(s(0()))))
Weak DP Rules:
Weak TRS Rules:
Signature:
{filter/3,nats/1,sieve/1,zprimes/0} / {0/0,cons/1,s/1}
Obligation:
Full
basic terms: {filter,nats,sieve,zprimes}/{0,cons,s}
Applied Processor:
ToInnermost
Proof:
switch to innermost, as the system is overlay and right linear and does not contain weak rules
*** 1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
Strict TRS Rules:
filter(cons(X),0(),M) -> cons(0())
filter(cons(X),s(N),M) -> cons(X)
nats(N) -> cons(N)
sieve(cons(0())) -> cons(0())
sieve(cons(s(N))) -> cons(s(N))
zprimes() -> sieve(nats(s(s(0()))))
Weak DP Rules:
Weak TRS Rules:
Signature:
{filter/3,nats/1,sieve/1,zprimes/0} / {0/0,cons/1,s/1}
Obligation:
Innermost
basic terms: {filter,nats,sieve,zprimes}/{0,cons,s}
Applied Processor:
DependencyPairs {dpKind_ = DT}
Proof:
We add the following dependency tuples:
Strict DPs
filter#(cons(X),0(),M) -> c_1()
filter#(cons(X),s(N),M) -> c_2()
nats#(N) -> c_3()
sieve#(cons(0())) -> c_4()
sieve#(cons(s(N))) -> c_5()
zprimes#() -> c_6(sieve#(nats(s(s(0())))),nats#(s(s(0()))))
Weak DPs
and mark the set of starting terms.
*** 1.1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
filter#(cons(X),0(),M) -> c_1()
filter#(cons(X),s(N),M) -> c_2()
nats#(N) -> c_3()
sieve#(cons(0())) -> c_4()
sieve#(cons(s(N))) -> c_5()
zprimes#() -> c_6(sieve#(nats(s(s(0())))),nats#(s(s(0()))))
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
filter(cons(X),0(),M) -> cons(0())
filter(cons(X),s(N),M) -> cons(X)
nats(N) -> cons(N)
sieve(cons(0())) -> cons(0())
sieve(cons(s(N))) -> cons(s(N))
zprimes() -> sieve(nats(s(s(0()))))
Signature:
{filter/3,nats/1,sieve/1,zprimes/0,filter#/3,nats#/1,sieve#/1,zprimes#/0} / {0/0,cons/1,s/1,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/2}
Obligation:
Innermost
basic terms: {filter#,nats#,sieve#,zprimes#}/{0,cons,s}
Applied Processor:
UsableRules
Proof:
We replace rewrite rules by usable rules:
nats(N) -> cons(N)
filter#(cons(X),0(),M) -> c_1()
filter#(cons(X),s(N),M) -> c_2()
nats#(N) -> c_3()
sieve#(cons(0())) -> c_4()
sieve#(cons(s(N))) -> c_5()
zprimes#() -> c_6(sieve#(nats(s(s(0())))),nats#(s(s(0()))))
*** 1.1.1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
filter#(cons(X),0(),M) -> c_1()
filter#(cons(X),s(N),M) -> c_2()
nats#(N) -> c_3()
sieve#(cons(0())) -> c_4()
sieve#(cons(s(N))) -> c_5()
zprimes#() -> c_6(sieve#(nats(s(s(0())))),nats#(s(s(0()))))
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
nats(N) -> cons(N)
Signature:
{filter/3,nats/1,sieve/1,zprimes/0,filter#/3,nats#/1,sieve#/1,zprimes#/0} / {0/0,cons/1,s/1,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/2}
Obligation:
Innermost
basic terms: {filter#,nats#,sieve#,zprimes#}/{0,cons,s}
Applied Processor:
Trivial
Proof:
Consider the dependency graph
1:S:filter#(cons(X),0(),M) -> c_1()
2:S:filter#(cons(X),s(N),M) -> c_2()
3:S:nats#(N) -> c_3()
4:S:sieve#(cons(0())) -> c_4()
5:S:sieve#(cons(s(N))) -> c_5()
6:S:zprimes#() -> c_6(sieve#(nats(s(s(0())))),nats#(s(s(0()))))
-->_1 sieve#(cons(s(N))) -> c_5():5
-->_1 sieve#(cons(0())) -> c_4():4
-->_2 nats#(N) -> c_3():3
The dependency graph contains no loops, we remove all dependency pairs.
*** 1.1.1.1.1 Progress [(O(1),O(1))] ***
Considered Problem:
Strict DP Rules:
Strict TRS Rules:
Weak DP Rules:
Weak TRS Rules:
nats(N) -> cons(N)
Signature:
{filter/3,nats/1,sieve/1,zprimes/0,filter#/3,nats#/1,sieve#/1,zprimes#/0} / {0/0,cons/1,s/1,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/2}
Obligation:
Innermost
basic terms: {filter#,nats#,sieve#,zprimes#}/{0,cons,s}
Applied Processor:
EmptyProcessor
Proof:
The problem is already closed. The intended complexity is O(1).