We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(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)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(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)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We consider the following Problem:
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(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)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We have computed the following dependency pairs
Strict DPs:
{ natsFrom^#(N) -> c_1()
, fst^#(pair(XS, YS)) -> c_2()
, snd^#(pair(XS, YS)) -> c_3()
, splitAt^#(0(), XS) -> c_4()
, splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, head^#(cons(N, XS)) -> c_7()
, 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) -> c_12()
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, activate^#(X) -> c_14()}
We consider the following Problem:
Strict DPs:
{ natsFrom^#(N) -> c_1()
, fst^#(pair(XS, YS)) -> c_2()
, snd^#(pair(XS, YS)) -> c_3()
, splitAt^#(0(), XS) -> c_4()
, splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, head^#(cons(N, XS)) -> c_7()
, 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) -> c_12()
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, activate^#(X) -> c_14()}
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(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)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
We consider the following Problem:
Strict DPs:
{ natsFrom^#(N) -> c_1()
, fst^#(pair(XS, YS)) -> c_2()
, snd^#(pair(XS, YS)) -> c_3()
, splitAt^#(0(), XS) -> c_4()
, splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, head^#(cons(N, XS)) -> c_7()
, 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) -> c_12()
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, activate^#(X) -> c_14()}
Strict Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(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:
Dependency Pairs:
{ fst^#(pair(XS, YS)) -> c_2()
, snd^#(pair(XS, YS)) -> c_3()
, splitAt^#(0(), XS) -> c_4()
, splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
TRS Component:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
Interpretation of constant growth:
----------------------------------
The following argument positions are usable:
Uargs(natsFrom) = {}, Uargs(cons) = {1}, Uargs(n__natsFrom) = {},
Uargs(s) = {}, Uargs(fst) = {}, Uargs(pair) = {1},
Uargs(snd) = {1}, Uargs(splitAt) = {2}, Uargs(u) = {1, 4},
Uargs(activate) = {}, Uargs(head) = {}, Uargs(tail) = {},
Uargs(sel) = {}, Uargs(afterNth) = {}, Uargs(take) = {},
Uargs(natsFrom^#) = {}, Uargs(fst^#) = {1}, Uargs(snd^#) = {1},
Uargs(splitAt^#) = {}, Uargs(u^#) = {1, 4}, Uargs(activate^#) = {},
Uargs(head^#) = {1}, Uargs(tail^#) = {}, Uargs(sel^#) = {},
Uargs(take^#) = {}, Uargs(afterNth^#) = {}
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] [3]
cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
[0 0] [1 1] [2]
n__natsFrom(x1) = [1 0] x1 + [0]
[0 0] [1]
s(x1) = [0 0] x1 + [0]
[0 1] [3]
fst(x1) = [0 0] x1 + [0]
[0 0] [0]
pair(x1, x2) = [1 0] x1 + [1 0] x2 + [2]
[0 0] [0 1] [0]
snd(x1) = [1 0] x1 + [0]
[0 1] [1]
splitAt(x1, x2) = [0 3] x1 + [1 2] x2 + [0]
[0 0] [0 2] [0]
0() = [0]
[3]
nil() = [1]
[0]
u(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [1 0] x3 + [1 0] x4 + [3]
[0 1] [0 0] [0 0] [0 0] [0]
activate(x1) = [1 0] x1 + [2]
[0 1] [2]
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 3] x1 + [1 2] x2 + [2]
[0 0] [0 2] [2]
take(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
natsFrom^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_1() = [0]
[0]
fst^#(x1) = [1 0] x1 + [0]
[0 0] [0]
c_2() = [0]
[0]
snd^#(x1) = [1 0] x1 + [0]
[0 0] [0]
c_3() = [0]
[0]
splitAt^#(x1, x2) = [0 3] x1 + [0 3] x2 + [0]
[0 0] [0 0] [0]
c_4() = [0]
[0]
u^#(x1, x2, x3, x4) = [1 0] x1 + [0 0] x2 + [0 0] x3 + [2 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
activate^#(x1) = [0 0] x1 + [0]
[0 0] [0]
head^#(x1) = [1 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
tail^#(x1) = [1 0] x1 + [0]
[0 0] [0]
sel^#(x1, x2) = [0 3] x1 + [2 2] x2 + [0]
[0 0] [0 0] [0]
take^#(x1, x2) = [0 3] x1 + [2 2] x2 + [0]
[0 0] [0 0] [0]
afterNth^#(x1, x2) = [0 3] x1 + [2 2] x2 + [0]
[0 0] [0 0] [0]
c_12() = [0]
[0]
c_14() = [0]
[0]
The strictly oriented rules are moved into the weak component.
We consider the following Problem:
Strict DPs:
{ natsFrom^#(N) -> c_1()
, head^#(cons(N, XS)) -> c_7()
, 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) -> c_12()
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, activate^#(X) -> c_14()}
Weak DPs:
{ fst^#(pair(XS, YS)) -> c_2()
, snd^#(pair(XS, YS)) -> c_3()
, splitAt^#(0(), XS) -> c_4()
, splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,O(n^1))
Proof:
We use following congruence DG for path analysis
->9:{3} [ YES(O(1),O(1)) ]
|
|->11:{8} [ YES(O(1),O(1)) ]
| |
| |->14:{1} [ YES(O(1),O(1)) ]
| |
| `->12:{7} [ YES(O(1),O(1)) ]
|
`->10:{9} [ YES(O(1),O(1)) ]
->8:{4} [ YES(O(1),O(1)) ]
|
`->13:{2} [ YES(O(1),O(1)) ]
->6:{5} [ YES(O(1),O(1)) ]
|
`->7:{10} [ YES(O(1),O(1)) ]
->4:{6} [ YES(O(1),O(1)) ]
|
`->5:{11} [ YES(O(1),O(1)) ]
->3:{12} [ YES(O(1),O(1)) ]
->1:{13} [ subsumed ]
|
`->2:{14} [ subsumed ]
|
|->11:{8} [ YES(O(1),O(1)) ]
| |
| |->14:{1} [ YES(O(1),O(1)) ]
| |
| `->12:{7} [ YES(O(1),O(1)) ]
|
`->10:{9} [ YES(O(1),O(1)) ]
Here dependency-pairs are as follows:
Strict DPs:
{ 1: natsFrom^#(N) -> c_1()
, 2: head^#(cons(N, XS)) -> c_7()
, 3: tail^#(cons(N, XS)) -> activate^#(XS)
, 4: sel^#(N, XS) -> head^#(afterNth(N, XS))
, 5: take^#(N, XS) -> fst^#(splitAt(N, XS))
, 6: afterNth^#(N, XS) -> snd^#(splitAt(N, XS))
, 7: natsFrom^#(X) -> c_12()
, 8: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, 9: activate^#(X) -> c_14()}
WeakDPs DPs:
{ 10: fst^#(pair(XS, YS)) -> c_2()
, 11: snd^#(pair(XS, YS)) -> c_3()
, 12: splitAt^#(0(), XS) -> c_4()
, 13: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 14: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
* Path 9:{3}: YES(O(1),O(1))
--------------------------
We consider the following Problem:
Strict DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{3}->11:{8}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Strict DPs: {activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
2: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
WeakDPs DPs:
{2: tail^#(cons(N, XS)) -> activate^#(XS)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{3}->11:{8}->14:{1}: YES(O(1),O(1))
------------------------------------------
We consider the following Problem:
Strict DPs: {natsFrom^#(N) -> c_1()}
Weak DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: natsFrom^#(N) -> c_1()
2: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :3
3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
-->_1 natsFrom^#(N) -> c_1() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: natsFrom^#(N) -> c_1()}
WeakDPs DPs:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, 1: natsFrom^#(N) -> c_1()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{3}->11:{8}->12:{7}: YES(O(1),O(1))
------------------------------------------
We consider the following Problem:
Strict DPs: {natsFrom^#(X) -> c_12()}
Weak DPs:
{ tail^#(cons(N, XS)) -> activate^#(XS)
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: natsFrom^#(X) -> c_12()
2: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :3
3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
-->_1 natsFrom^#(X) -> c_12() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: natsFrom^#(X) -> c_12()}
WeakDPs DPs:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 3: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, 1: natsFrom^#(X) -> c_12()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{3}->10:{9}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Strict DPs: {activate^#(X) -> c_14()}
Weak DPs: {tail^#(cons(N, XS)) -> activate^#(XS)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: activate^#(X) -> c_14()
2: tail^#(cons(N, XS)) -> activate^#(XS)
-->_1 activate^#(X) -> c_14() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: activate^#(X) -> c_14()}
WeakDPs DPs:
{2: tail^#(cons(N, XS)) -> activate^#(XS)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: tail^#(cons(N, XS)) -> activate^#(XS)
, 1: activate^#(X) -> c_14()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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 8:{4}: YES(O(1),O(1))
--------------------------
We consider the following Problem:
Strict DPs: {sel^#(N, XS) -> head^#(afterNth(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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 8:{4}->13:{2}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Strict DPs: {head^#(cons(N, XS)) -> c_7()}
Weak DPs: {sel^#(N, XS) -> head^#(afterNth(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: head^#(cons(N, XS)) -> c_7()
2: sel^#(N, XS) -> head^#(afterNth(N, XS))
-->_1 head^#(cons(N, XS)) -> c_7() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: head^#(cons(N, XS)) -> c_7()}
WeakDPs DPs:
{2: 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:
{ 2: sel^#(N, XS) -> head^#(afterNth(N, XS))
, 1: head^#(cons(N, XS)) -> c_7()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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 6:{5}: YES(O(1),O(1))
--------------------------
We consider the following Problem:
Strict DPs: {take^#(N, XS) -> fst^#(splitAt(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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 6:{5}->7:{10}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {take^#(N, XS) -> fst^#(splitAt(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{6}: YES(O(1),O(1))
--------------------------
We consider the following Problem:
Strict DPs: {afterNth^#(N, XS) -> snd^#(splitAt(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{6}->5:{11}: YES(O(1),O(1))
----------------------------------
We consider the following Problem:
Weak DPs: {afterNth^#(N, XS) -> snd^#(splitAt(N, XS))}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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:{12}: YES(O(1),O(1))
---------------------------
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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}: subsumed
---------------------
This path is subsumed by the proof of paths 1:{13}->2:{14}.
* Path 1:{13}->2:{14}: subsumed
-----------------------------
This path is subsumed by the proof of paths 1:{13}->2:{14}->11:{8},
1:{13}->2:{14}->10:{9}.
* Path 1:{13}->2:{14}->11:{8}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Strict DPs: {activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak DPs:
{ splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
-->_1 u^#(pair(YS, ZS), N, X, XS) -> activate^#(X) :3
3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
WeakDPs DPs:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: 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:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 1: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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}->2:{14}->11:{8}->14:{1}: YES(O(1),O(1))
---------------------------------------------------
We consider the following Problem:
Strict DPs: {natsFrom^#(N) -> c_1()}
Weak DPs:
{ splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: natsFrom^#(N) -> c_1()
2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
-->_1 u^#(pair(YS, ZS), N, X, XS) -> activate^#(X) :3
3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :4
4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
-->_1 natsFrom^#(N) -> c_1() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{4} Weak SCC
|
`->4:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: natsFrom^#(N) -> c_1()}
WeakDPs DPs:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, 1: natsFrom^#(N) -> c_1()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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}->2:{14}->11:{8}->12:{7}: YES(O(1),O(1))
---------------------------------------------------
We consider the following Problem:
Strict DPs: {natsFrom^#(X) -> c_12()}
Weak DPs:
{ splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: natsFrom^#(X) -> c_12()
2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
-->_1 u^#(pair(YS, ZS), N, X, XS) -> activate^#(X) :3
3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(n__natsFrom(X)) -> natsFrom^#(X) :4
4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
-->_1 natsFrom^#(X) -> c_12() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{4} Weak SCC
|
`->4:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: natsFrom^#(X) -> c_12()}
WeakDPs DPs:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)}
The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 4: activate^#(n__natsFrom(X)) -> natsFrom^#(X)
, 1: natsFrom^#(X) -> c_12()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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}->2:{14}->10:{9}: YES(O(1),O(1))
-------------------------------------------
We consider the following Problem:
Strict DPs: {activate^#(X) -> c_14()}
Weak DPs:
{ splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)}
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the the dependency-graph
1: activate^#(X) -> c_14()
2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
-->_1 u^#(pair(YS, ZS), N, X, XS) -> activate^#(X) :3
3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
-->_1 activate^#(X) -> c_14() :1
together with the congruence-graph
->1:{2} Weak SCC
|
`->2:{3} Weak SCC
|
`->3:{1} Noncyclic, trivial, SCC
Here dependency-pairs are as follows:
Strict DPs:
{1: activate^#(X) -> c_14()}
WeakDPs DPs:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: 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:
{ 2: splitAt^#(s(N), cons(X, XS)) ->
u^#(splitAt(N, activate(XS)), N, X, activate(XS))
, 3: u^#(pair(YS, ZS), N, X, XS) -> activate^#(X)
, 1: activate^#(X) -> c_14()}
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(O(1),O(1))
Proof:
We consider the following Problem:
Weak Trs:
{ natsFrom(N) -> cons(N, n__natsFrom(s(N)))
, 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)
, afterNth(N, XS) -> snd(splitAt(N, XS))
, natsFrom(X) -> n__natsFrom(X)
, activate(n__natsFrom(X)) -> natsFrom(X)
, activate(X) -> 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))