We consider the following Problem:
Strict Trs:
{ primes() -> sieve(from(s(s(0()))))
, from(X) -> cons(X, n__from(s(X)))
, head(cons(X, Y)) -> X
, tail(cons(X, Y)) -> activate(Y)
, if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, filter(s(s(X)), cons(Y, Z)) ->
if(divides(s(s(X)), Y),
n__filter(s(s(X)), activate(Z)),
n__cons(Y, n__filter(X, sieve(Y))))
, sieve(cons(X, Y)) -> cons(X, n__filter(X, sieve(activate(Y))))
, from(X) -> n__from(X)
, filter(X1, X2) -> n__filter(X1, X2)
, cons(X1, X2) -> n__cons(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
Arguments of following rules are not normal-forms:
{ head(cons(X, Y)) -> X
, tail(cons(X, Y)) -> activate(Y)
, filter(s(s(X)), cons(Y, Z)) ->
if(divides(s(s(X)), Y),
n__filter(s(s(X)), activate(Z)),
n__cons(Y, n__filter(X, sieve(Y))))
, sieve(cons(X, Y)) -> cons(X, n__filter(X, sieve(activate(Y))))}
All above mentioned rules can be savely removed.
We consider the following Problem:
Strict Trs:
{ primes() -> sieve(from(s(s(0()))))
, from(X) -> cons(X, n__from(s(X)))
, if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, from(X) -> n__from(X)
, filter(X1, X2) -> n__filter(X1, X2)
, cons(X1, X2) -> n__cons(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component:
{ primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [2]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 1] [1]
from(x1) = [1 1] x1 + [0]
[0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [1 1] [1]
n__from(x1) = [0 0] x1 + [0]
[1 1] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 1] x1 + [1]
[0 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ from(X) -> cons(X, n__from(s(X)))
, if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, from(X) -> n__from(X)
, filter(X1, X2) -> n__filter(X1, X2)
, cons(X1, X2) -> n__cons(X1, X2)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
Weak Trs:
{ primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {filter(X1, X2) -> n__filter(X1, X2)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [1]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 1] [1]
from(x1) = [1 1] x1 + [0]
[0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__from(x1) = [0 1] x1 + [0]
[1 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 1] x1 + [1]
[0 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [1]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ from(X) -> cons(X, n__from(s(X)))
, if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
Weak Trs:
{ filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {from(X) -> cons(X, n__from(s(X)))}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [3]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [1 1] x1 + [2]
[0 0] [1]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__from(x1) = [0 1] x1 + [0]
[1 0] [2]
head(x1) = [1 0] x1 + [0]
[0 1] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 1] x1 + [1]
[0 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {cons(X1, X2) -> n__cons(X1, X2)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [3]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [1 0] x1 + [2]
[1 0] [2]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1]
[1 0] [0 0] [1]
n__from(x1) = [1 0] x1 + [2]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [1]
[1 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, from(X) -> n__from(X)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
Weak Trs:
{ cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {from(X) -> n__from(X)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [3]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [1 0] x1 + [2]
[1 0] [2]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1]
[1 0] [0 0] [1]
n__from(x1) = [1 0] x1 + [1]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [1]
[1 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, activate(X) -> X}
Weak Trs:
{ from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {activate(n__cons(X1, X2)) -> cons(X1, X2)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [2]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [0 0] x1 + [0]
[0 0] [1]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
n__from(x1) = [0 0] x1 + [0]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [1]
[0 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ if(true(), X, Y) -> activate(X)
, if(false(), X, Y) -> activate(Y)
, activate(X) -> X}
Weak Trs:
{ activate(n__cons(X1, X2)) -> cons(X1, X2)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {if(true(), X, Y) -> activate(X)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [2]
[2]
sieve(x1) = [1 0] x1 + [1]
[1 0] [1]
from(x1) = [0 0] x1 + [0]
[0 0] [1]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[0 0] [0 0] [1]
n__from(x1) = [0 0] x1 + [0]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [0]
[1 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1]
[0 0] [1 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ if(false(), X, Y) -> activate(Y)
, activate(X) -> X}
Weak Trs:
{ if(true(), X, Y) -> activate(X)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {if(false(), X, Y) -> activate(Y)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [2]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [0 0] x1 + [0]
[0 0] [1]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
n__from(x1) = [0 0] x1 + [0]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [0]
[0 0] [1]
if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1]
[0 0] [0 0] [0 0] [1]
true() = [0]
[0]
false() = [0]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs: {activate(X) -> X}
Weak Trs:
{ if(false(), X, Y) -> activate(Y)
, if(true(), X, Y) -> activate(X)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {activate(X) -> X}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {},
Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {},
Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {},
Uargs(n__cons) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
primes() = [3]
[2]
sieve(x1) = [1 0] x1 + [1]
[0 0] [1]
from(x1) = [0 0] x1 + [2]
[0 0] [1]
s(x1) = [1 0] x1 + [0]
[0 1] [0]
0() = [0]
[0]
cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__from(x1) = [0 0] x1 + [2]
[0 0] [0]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
activate(x1) = [1 0] x1 + [1]
[0 1] [1]
if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0]
[0 0] [0 1] [0 1] [1]
true() = [2]
[0]
false() = [1]
[0]
filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Weak Trs:
{ activate(X) -> X
, if(false(), X, Y) -> activate(Y)
, if(true(), X, Y) -> activate(X)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(X) -> X
, if(false(), X, Y) -> activate(Y)
, if(true(), X, Y) -> activate(X)
, activate(n__cons(X1, X2)) -> cons(X1, X2)
, from(X) -> n__from(X)
, cons(X1, X2) -> n__cons(X1, X2)
, from(X) -> cons(X, n__from(s(X)))
, filter(X1, X2) -> n__filter(X1, X2)
, primes() -> sieve(from(s(s(0()))))
, activate(n__from(X)) -> from(X)
, activate(n__filter(X1, X2)) -> filter(X1, X2)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
Hurray, we answered YES(?,O(n^1))