We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, splitAt(0(), XS) -> pair(nil(), XS)
, splitAt(s(N), cons(X, XS)) ->
u(splitAt(N, activate(XS)), N, X, activate(XS))
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, sel(N, XS) -> head(afterNth(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
Arguments of following rules are not normal-forms:
{splitAt(s(N), cons(X, XS)) ->
u(splitAt(N, activate(XS)), N, X, activate(XS))}
All above mentioned rules can be savely removed.
We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, splitAt(0(), XS) -> pair(nil(), XS)
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, sel(N, XS) -> head(afterNth(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, 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:
{ splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 1] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
snd(x1) = [1 0] x1 + [1]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [1]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [0]
[0 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
afterNth(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
take(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:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, sel(N, XS) -> head(afterNth(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {sel(N, XS) -> head(afterNth(N, XS))}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 1] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
snd(x1) = [1 0] x1 + [1]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [1]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [0]
[0 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
afterNth(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
take(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:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, take(N, XS) -> fst(splitAt(N, XS))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {take(N, XS) -> fst(splitAt(N, XS))}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 1] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
snd(x1) = [1 1] x1 + [0]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [2]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [1]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [0]
[0 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [1]
sel(x1, x2) = [0 1] x1 + [0 0] x2 + [0]
[0 0] [0 0] [2]
afterNth(x1, x2) = [0 1] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
take(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {afterNth(N, XS) -> snd(splitAt(N, XS))}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 1] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 1] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
snd(x1) = [1 0] x1 + [1]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [1]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [0]
[0 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
afterNth(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
take(x1, x2) = [0 1] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 1] x1 + [2]
[0 0] [1]
cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
snd(x1) = [1 0] x1 + [1]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [0]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [0]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [0]
[0 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
afterNth(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
take(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component:
{u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 0] [1]
pair(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
snd(x1) = [1 0] x1 + [1]
[0 0] [1]
splitAt(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [1]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [1 0] x3 + [1 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [1]
head(x1) = [1 0] x1 + [1]
[0 0] [1]
tail(x1) = [1 0] x1 + [1]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [3]
[0 0] [0 0] [2]
afterNth(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
take(x1, x2) = [0 0] x1 + [0 0] x2 + [2]
[0 0] [0 0] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ fst(pair(XS, YS)) -> XS
, snd(pair(XS, YS)) -> YS
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {snd(pair(XS, YS)) -> YS}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [0]
[0 0] [1]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [0]
[1 0] [0]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [3]
[0 0] [0 1] [0]
snd(x1) = [1 0] x1 + [2]
[0 1] [1]
splitAt(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 0] [0 1] [0]
0() = [3]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [0]
[0 0] [1]
u(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [0 0] x4 + [0]
[0 1] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [1]
head(x1) = [1 0] x1 + [1]
[1 0] [1]
tail(x1) = [1 0] x1 + [0]
[0 0] [0]
sel(x1, x2) = [1 0] x1 + [1 0] x2 + [3]
[1 0] [1 0] [3]
afterNth(x1, x2) = [1 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [2]
take(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[1 0] [1 0] [0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ fst(pair(XS, YS)) -> XS
, head(cons(N, XS)) -> N
, tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {head(cons(N, XS)) -> N}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [0]
[1 1] [3]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [0]
[1 0] [1]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
[0 0] [0 1] [0]
snd(x1) = [1 0] x1 + [0]
[0 1] [1]
splitAt(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 1] [0 1] [0]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [0]
[0 0] [1]
u(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [0 0] x4 + [0]
[0 1] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [1]
head(x1) = [1 0] x1 + [1]
[0 1] [1]
tail(x1) = [1 0] x1 + [1]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [1 0] x2 + [3]
[0 1] [0 1] [3]
afterNth(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 1] [0 1] [2]
take(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 0] [1 0] [3]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ fst(pair(XS, YS)) -> XS
, tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ head(cons(N, XS)) -> N
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
TRS Component: {fst(pair(XS, YS)) -> XS}
Interpretation of nonconstant growth:
-------------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [0]
[1 1] [1]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [0]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 1] [1]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 1] [0 1] [0]
snd(x1) = [1 0] x1 + [1]
[0 1] [1]
splitAt(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[0 0] [0 1] [0]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [0]
[0 0] [1]
u(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [0 0] x4 + [1]
[0 1] [0 0] [0 0] [0 0] [1]
activate(x1) = [1 0] x1 + [0]
[0 0] [0]
head(x1) = [1 0] x1 + [1]
[0 1] [1]
tail(x1) = [1 0] x1 + [1]
[0 0] [0]
sel(x1, x2) = [0 0] x1 + [1 0] x2 + [3]
[0 0] [0 1] [3]
afterNth(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [2]
take(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X}
Weak Trs:
{ fst(pair(XS, YS)) -> XS
, head(cons(N, XS)) -> N
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
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(natsFrom) = {1}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {1}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {1},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}
We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [0]
[0 1] [1]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 1] [1]
n__s(x1) = [1 0] x1 + [0]
[0 0] [0]
fst(x1) = [1 0] x1 + [1]
[0 1] [1]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 1] [0 1] [0]
snd(x1) = [1 0] x1 + [1]
[0 1] [1]
splitAt(x1, x2) = [0 0] x1 + [1 0] x2 + [0]
[0 0] [0 1] [1]
0() = [0]
[0]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [0]
[0 0] [1]
u(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [0 0] x4 + [3]
[0 1] [0 0] [0 1] [0 0] [1]
activate(x1) = [1 0] x1 + [2]
[0 1] [0]
head(x1) = [1 0] x1 + [1]
[0 1] [1]
tail(x1) = [1 0] x1 + [1]
[0 0] [1]
sel(x1, x2) = [0 0] x1 + [1 0] x2 + [3]
[0 0] [0 1] [3]
afterNth(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [2]
take(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [2]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict Trs:
{ tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Weak Trs:
{ activate(X) -> X
, fst(pair(XS, YS)) -> XS
, head(cons(N, XS)) -> N
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Weak Trs:
{ activate(X) -> X
, fst(pair(XS, YS)) -> XS
, head(cons(N, XS)) -> N
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We have computed the following dependency pairs
Strict DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, activate^#(n__s(X)) -> s^#(activate(X))}
Weak DPs:
{ activate^#(X) -> c_4()
, fst^#(pair(XS, YS)) -> c_5()
, head^#(cons(N, XS)) -> c_6()
, snd^#(pair(XS, YS)) -> c_7()
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, natsFrom^#(N) -> c_9()
, afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, take^#(N, XS) -> fst^#(splitAt(N, XS))
, sel^#(N, XS) -> head^#(afterNth(N, XS))
, splitAt^#(0(), XS) -> c_13()
, natsFrom^#(X) -> c_14()
, s^#(X) -> c_15()}
We consider the following Problem:
Strict DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, activate^#(n__s(X)) -> s^#(activate(X))}
Strict Trs:
{ tail(cons(N, XS)) -> activate(XS)
, activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Weak DPs:
{ activate^#(X) -> c_4()
, fst^#(pair(XS, YS)) -> c_5()
, head^#(cons(N, XS)) -> c_6()
, snd^#(pair(XS, YS)) -> c_7()
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, natsFrom^#(N) -> c_9()
, afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, take^#(N, XS) -> fst^#(splitAt(N, XS))
, sel^#(N, XS) -> head^#(afterNth(N, XS))
, splitAt^#(0(), XS) -> c_13()
, natsFrom^#(X) -> c_14()
, s^#(X) -> c_15()}
Weak Trs:
{ activate(X) -> X
, fst(pair(XS, YS)) -> XS
, head(cons(N, XS)) -> N
, snd(pair(XS, YS)) -> YS
, u(pair(YS, ZS), N, X, XS) -> pair(cons(activate(X), YS), ZS)
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, take(N, XS) -> fst(splitAt(N, XS))
, sel(N, XS) -> head(afterNth(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We replace strict/weak-rules by the corresponding usable rules:
Strict Usable Rules:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Weak Usable Rules:
{ activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
We consider the following Problem:
Strict DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, activate^#(n__s(X)) -> s^#(activate(X))}
Strict Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Weak DPs:
{ activate^#(X) -> c_4()
, fst^#(pair(XS, YS)) -> c_5()
, head^#(cons(N, XS)) -> c_6()
, snd^#(pair(XS, YS)) -> c_7()
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, natsFrom^#(N) -> c_9()
, afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, take^#(N, XS) -> fst^#(splitAt(N, XS))
, sel^#(N, XS) -> head^#(afterNth(N, XS))
, splitAt^#(0(), XS) -> c_13()
, natsFrom^#(X) -> c_14()
, s^#(X) -> c_15()}
Weak Trs:
{ activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
The weightgap principle applies, where following rules are oriented strictly:
Dependency Pairs:
{ activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, activate^#(n__s(X)) -> s^#(activate(X))}
TRS Component:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))}
Interpretation of constant growth:
----------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {1}, Uargs(cons) = {}, Uargs(n__natsFrom) = {},
Uargs(n__s) = {}, Uargs(fst) = {}, Uargs(pair) = {},
Uargs(snd) = {1}, Uargs(splitAt) = {}, Uargs(s) = {1},
Uargs(u) = {}, Uargs(activate) = {}, Uargs(head) = {},
Uargs(tail) = {}, Uargs(sel) = {}, Uargs(afterNth) = {},
Uargs(take) = {}, Uargs(tail^#) = {}, Uargs(activate^#) = {},
Uargs(natsFrom^#) = {1}, Uargs(s^#) = {1}, Uargs(fst^#) = {1},
Uargs(head^#) = {1}, Uargs(snd^#) = {1}, Uargs(u^#) = {},
Uargs(afterNth^#) = {}, Uargs(take^#) = {}, Uargs(sel^#) = {},
Uargs(splitAt^#) = {}
We have the following constructor-based EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation:
Interpretation Functions:
natsFrom(x1) = [1 0] x1 + [1]
[0 0] [1]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [1]
[0 0] [0 0] [1]
n__natsFrom(x1) = [1 0] x1 + [1]
[0 0] [0]
n__s(x1) = [1 0] x1 + [2]
[0 0] [0]
fst(x1) = [0 0] x1 + [0]
[0 0] [0]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
[0 1] [0 1] [0]
snd(x1) = [1 0] x1 + [1]
[0 2] [1]
splitAt(x1, x2) = [0 0] x1 + [2 0] x2 + [0]
[0 0] [0 1] [0]
0() = [1]
[1]
nil() = [0]
[0]
s(x1) = [1 0] x1 + [3]
[0 0] [1]
u(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
activate(x1) = [2 0] x1 + [0]
[0 1] [1]
head(x1) = [0 0] x1 + [0]
[0 0] [0]
tail(x1) = [0 0] x1 + [0]
[0 0] [0]
sel(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
afterNth(x1, x2) = [0 0] x1 + [2 0] x2 + [1]
[0 0] [0 2] [2]
take(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
tail^#(x1) = [2 0] x1 + [0]
[0 0] [0]
activate^#(x1) = [2 0] x1 + [0]
[0 0] [0]
natsFrom^#(x1) = [1 0] x1 + [0]
[0 0] [0]
s^#(x1) = [1 0] x1 + [0]
[0 0] [0]
c_4() = [0]
[0]
fst^#(x1) = [1 0] x1 + [1]
[0 0] [1]
c_5() = [0]
[0]
head^#(x1) = [1 0] x1 + [0]
[0 0] [1]
c_6() = [0]
[0]
snd^#(x1) = [1 0] x1 + [1]
[0 0] [1]
c_7() = [0]
[0]
u^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [2 0] x3 + [0 0] x4 + [1]
[0 0] [0 0] [0 0] [0 0] [1]
c_9() = [0]
[0]
afterNth^#(x1, x2) = [0 0] x1 + [2 0] x2 + [2]
[0 0] [0 0] [2]
take^#(x1, x2) = [0 0] x1 + [2 0] x2 + [2]
[0 0] [0 0] [2]
sel^#(x1, x2) = [0 0] x1 + [2 0] x2 + [2]
[0 0] [0 0] [2]
splitAt^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 1] [0 0] [0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15() = [0]
[0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak DPs:
{ activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, activate^#(n__s(X)) -> s^#(activate(X))
, activate^#(X) -> c_4()
, fst^#(pair(XS, YS)) -> c_5()
, head^#(cons(N, XS)) -> c_6()
, snd^#(pair(XS, YS)) -> c_7()
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, natsFrom^#(N) -> c_9()
, afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, take^#(N, XS) -> fst^#(splitAt(N, XS))
, sel^#(N, XS) -> head^#(afterNth(N, XS))
, splitAt^#(0(), XS) -> c_13()
, natsFrom^#(X) -> c_14()
, s^#(X) -> c_15()}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We use following congruence DG for path analysis
->9:{1} [ YES(O(1),O(1)) ]
|
|->11:{2} [ subsumed ]
| |
| |->12:{9} [ YES(O(1),O(1)) ]
| |
| `->13:{14} [ YES(O(1),O(1)) ]
|
|->14:{3} [ subsumed ]
| |
| `->15:{15} [ YES(O(1),O(1)) ]
|
`->10:{4} [ YES(O(1),O(1)) ]
->5:{8} [ subsumed ]
|
|->11:{2} [ subsumed ]
| |
| |->12:{9} [ YES(O(1),O(1)) ]
| |
| `->13:{14} [ YES(O(1),O(1)) ]
|
|->14:{3} [ subsumed ]
| |
| `->15:{15} [ YES(O(1),O(1)) ]
|
`->10:{4} [ YES(O(1),O(1)) ]
->4:{10} [ subsumed ]
|
`->6:{7} [ YES(O(1),O(1)) ]
->3:{11} [ subsumed ]
|
`->8:{5} [ YES(O(1),O(1)) ]
->2:{12} [ subsumed ]
|
`->7:{6} [ YES(O(1),O(1)) ]
->1:{13} [ YES(O(1),O(1)) ]
Here dependency-pairs are as follows:
Strict DPs:
{1: tail^#(cons(N, XS)) -> activate^#(XS)}
WeakDPs DPs:
{ 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
, 3: activate^#(n__s(X)) -> s^#(activate(X))
, 4: activate^#(X) -> c_4()
, 5: fst^#(pair(XS, YS)) -> c_5()
, 6: head^#(cons(N, XS)) -> c_6()
, 7: snd^#(pair(XS, YS)) -> c_7()
, 8: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 9: natsFrom^#(N) -> c_9()
, 10: afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, 11: take^#(N, XS) -> fst^#(splitAt(N, XS))
, 12: sel^#(N, XS) -> head^#(afterNth(N, XS))
, 13: splitAt^#(0(), XS) -> c_13()
, 14: natsFrom^#(X) -> c_14()
, 15: s^#(X) -> c_15()}
* Path 9:{1}: YES(O(1),O(1))
--------------------------
We consider the following Problem:
Strict DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: tail^#(cons(N, XS)) -> activate^#(XS)
together with the congruence-graph
->1:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: tail^#(cons(N, XS)) -> activate^#(XS)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: tail^#(cons(N, XS)) -> activate^#(XS)}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 9:{1}->11:{2}: subsumed
----------------------------
This path is subsumed by the proof of paths 9:{1}->11:{2}->13:{14},
9:{1}->11:{2}->12:{9}.
* Path 9:{1}->11:{2}->12:{9}: YES(O(1),O(1))
------------------------------------------
We consider the following Problem:
Weak DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__natsFrom(X)) ->
natsFrom^#(activate(X)) :2
2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 9:{1}->11:{2}->13:{14}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Weak DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__natsFrom(X)) ->
natsFrom^#(activate(X)) :2
2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 9:{1}->14:{3}: subsumed
----------------------------
This path is subsumed by the proof of paths 9:{1}->14:{3}->15:{15}.
* Path 9:{1}->14:{3}->15:{15}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Weak DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__s(X)) -> s^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__s(X)) -> s^#(activate(X)) :2
2: activate^#(n__s(X)) -> s^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__s(X)) -> s^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: tail^#(cons(N, XS)) -> activate^#(XS)
, 2: activate^#(n__s(X)) -> s^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 9:{1}->10:{4}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: tail^#(cons(N, XS)) -> activate^#(XS)
together with the congruence-graph
->1:{1} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{1: tail^#(cons(N, XS)) -> activate^#(XS)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: tail^#(cons(N, XS)) -> activate^#(XS)}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 5:{8}: subsumed
--------------------
This path is subsumed by the proof of paths 5:{8}->14:{3},
5:{8}->11:{2},
5:{8}->10:{4}.
* Path 5:{8}->11:{2}: subsumed
----------------------------
This path is subsumed by the proof of paths 5:{8}->11:{2}->13:{14},
5:{8}->11:{2}->12:{9}.
* Path 5:{8}->11:{2}->12:{9}: YES(O(1),O(1))
------------------------------------------
We consider the following Problem:
Weak DPs:
{ u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__natsFrom(X)) ->
natsFrom^#(activate(X)) :2
2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 5:{8}->11:{2}->13:{14}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Weak DPs:
{ u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__natsFrom(X)) ->
natsFrom^#(activate(X)) :2
2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__natsFrom(X)) -> natsFrom^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 5:{8}->14:{3}: subsumed
----------------------------
This path is subsumed by the proof of paths 5:{8}->14:{3}->15:{15}.
* Path 5:{8}->14:{3}->15:{15}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Weak DPs:
{ u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, activate^#(n__s(X)) -> s^#(activate(X))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__s(X)) -> s^#(activate(X)) :2
2: activate^#(n__s(X)) -> s^#(activate(X))
together with the congruence-graph
->1:{1} Weak SCC
|
`->2:{2} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__s(X)) -> s^#(activate(X))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 2: activate^#(n__s(X)) -> s^#(activate(X))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 5:{8}->10:{4}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
together with the congruence-graph
->1:{1} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 4:{10}: subsumed
---------------------
This path is subsumed by the proof of paths 4:{10}->6:{7}.
* Path 4:{10}->6:{7}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {afterNth^#(N, XS) -> snd^#(splitAt(N, XS))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
together with the congruence-graph
->1:{1} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{1: afterNth^#(N, XS) -> snd^#(splitAt(N, XS))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: afterNth^#(N, XS) -> snd^#(splitAt(N, XS))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 3:{11}: subsumed
---------------------
This path is subsumed by the proof of paths 3:{11}->8:{5}.
* Path 3:{11}->8:{5}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {take^#(N, XS) -> fst^#(splitAt(N, XS))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: take^#(N, XS) -> fst^#(splitAt(N, XS))
together with the congruence-graph
->1:{1} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{1: take^#(N, XS) -> fst^#(splitAt(N, XS))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: take^#(N, XS) -> fst^#(splitAt(N, XS))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 2:{12}: subsumed
---------------------
This path is subsumed by the proof of paths 2:{12}->7:{6}.
* Path 2:{12}->7:{6}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {sel^#(N, XS) -> head^#(afterNth(N, XS))}
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: sel^#(N, XS) -> head^#(afterNth(N, XS))
together with the congruence-graph
->1:{1} Weak SCC
Here dependency-pairs are as follows:
WeakDPs DPs:
{1: sel^#(N, XS) -> head^#(afterNth(N, XS))}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{1: sel^#(N, XS) -> head^#(afterNth(N, XS))}
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
* Path 1:{13}: YES(O(1),O(1))
---------------------------
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ activate(n__natsFrom(X)) -> natsFrom(activate(X))
, activate(n__s(X)) -> s(activate(X))
, activate(X) -> X
, snd(pair(XS, YS)) -> YS
, natsFrom(N) -> cons(N, n__natsFrom(n__s(N)))
, afterNth(N, XS) -> snd(splitAt(N, XS))
, splitAt(0(), XS) -> pair(nil(), XS)
, natsFrom(X) -> n__natsFrom(X)
, s(X) -> n__s(X)}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
No rule is usable.
We consider the following Problem:
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
Empty rules are trivially bounded
Hurray, we answered YES(?,O(n^1))