The rewrite relation of the following TRS is considered.
natsFrom(N) | → | cons(N,n__natsFrom(s(N))) | (1) |
fst(pair(XS,YS)) | → | XS | (2) |
snd(pair(XS,YS)) | → | YS | (3) |
splitAt(0,XS) | → | pair(nil,XS) | (4) |
splitAt(s(N),cons(X,XS)) | → | u(splitAt(N,activate(XS)),N,X,activate(XS)) | (5) |
u(pair(YS,ZS),N,X,XS) | → | pair(cons(activate(X),YS),ZS) | (6) |
head(cons(N,XS)) | → | N | (7) |
tail(cons(N,XS)) | → | activate(XS) | (8) |
sel(N,XS) | → | head(afterNth(N,XS)) | (9) |
take(N,XS) | → | fst(splitAt(N,XS)) | (10) |
afterNth(N,XS) | → | snd(splitAt(N,XS)) | (11) |
natsFrom(X) | → | n__natsFrom(X) | (12) |
activate(n__natsFrom(X)) | → | natsFrom(X) | (13) |
activate(X) | → | X | (14) |
activate#(n__natsFrom(X)) | → | natsFrom#(X) | (15) |
afterNth#(N,XS) | → | splitAt#(N,XS) | (16) |
tail#(cons(N,XS)) | → | activate#(XS) | (17) |
splitAt#(s(N),cons(X,XS)) | → | u#(splitAt(N,activate(XS)),N,X,activate(XS)) | (18) |
splitAt#(s(N),cons(X,XS)) | → | activate#(XS) | (19) |
splitAt#(s(N),cons(X,XS)) | → | activate#(XS) | (19) |
take#(N,XS) | → | fst#(splitAt(N,XS)) | (20) |
splitAt#(s(N),cons(X,XS)) | → | splitAt#(N,activate(XS)) | (21) |
afterNth#(N,XS) | → | snd#(splitAt(N,XS)) | (22) |
sel#(N,XS) | → | head#(afterNth(N,XS)) | (23) |
u#(pair(YS,ZS),N,X,XS) | → | activate#(X) | (24) |
take#(N,XS) | → | splitAt#(N,XS) | (25) |
sel#(N,XS) | → | afterNth#(N,XS) | (26) |
The dependency pairs are split into 1 component.
splitAt#(s(N),cons(X,XS)) | → | splitAt#(N,activate(XS)) | (21) |
[s(x1)] | = | x1 + 1 |
[take#(x1, x2)] | = | 0 |
[u(x1,...,x4)] | = | 0 |
[activate(x1)] | = | 1 |
[take(x1, x2)] | = | 0 |
[u#(x1,...,x4)] | = | 0 |
[pair(x1, x2)] | = | 0 |
[fst(x1)] | = | 0 |
[activate#(x1)] | = | 0 |
[natsFrom(x1)] | = | 2 |
[head#(x1)] | = | 0 |
[splitAt(x1, x2)] | = | 0 |
[fst#(x1)] | = | 0 |
[n__natsFrom(x1)] | = | 3 |
[tail(x1)] | = | 0 |
[0] | = | 0 |
[sel#(x1, x2)] | = | 0 |
[sel(x1, x2)] | = | 0 |
[afterNth(x1, x2)] | = | 0 |
[nil] | = | 0 |
[tail#(x1)] | = | 0 |
[splitAt#(x1, x2)] | = | x1 + 0 |
[afterNth#(x1, x2)] | = | 0 |
[head(x1)] | = | 0 |
[snd#(x1)] | = | 0 |
[cons(x1, x2)] | = | 3 |
[natsFrom#(x1)] | = | 0 |
[snd(x1)] | = | 0 |
splitAt#(s(N),cons(X,XS)) | → | splitAt#(N,activate(XS)) | (21) |
The dependency pairs are split into 0 components.