MAYBE MAYBE TRS: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(natsFrom(X)) -> active(natsFrom(mark(X))), mark(s(X)) -> active(s(mark(X))), mark(fst(X)) -> active(fst(mark(X))), mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))), mark(snd(X)) -> active(snd(mark(X))), mark(nil()) -> active(nil()), mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))), mark(0()) -> active(0()), mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)), mark(head(X)) -> active(head(mark(X))), mark(tail(X)) -> active(tail(mark(X))), mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))), mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), cons(X1, mark(X2)) -> cons(X1, X2), cons(X1, active(X2)) -> cons(X1, X2), cons(mark(X1), X2) -> cons(X1, X2), cons(active(X1), X2) -> cons(X1, X2), natsFrom(mark(X)) -> natsFrom(X), natsFrom(active(X)) -> natsFrom(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))), active(fst(pair(XS, YS))) -> mark(XS), active(snd(pair(XS, YS))) -> mark(YS), active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)), active(splitAt(0(), XS)) -> mark(pair(nil(), XS)), active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)), active(head(cons(N, XS))) -> mark(N), active(tail(cons(N, XS))) -> mark(XS), active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))), active(sel(N, XS)) -> mark(head(afterNth(N, XS))), active(take(N, XS)) -> mark(fst(splitAt(N, XS))), fst(mark(X)) -> fst(X), fst(active(X)) -> fst(X), pair(X1, mark(X2)) -> pair(X1, X2), pair(X1, active(X2)) -> pair(X1, X2), pair(mark(X1), X2) -> pair(X1, X2), pair(active(X1), X2) -> pair(X1, X2), snd(mark(X)) -> snd(X), snd(active(X)) -> snd(X), splitAt(X1, mark(X2)) -> splitAt(X1, X2), splitAt(X1, active(X2)) -> splitAt(X1, X2), splitAt(mark(X1), X2) -> splitAt(X1, X2), splitAt(active(X1), X2) -> splitAt(X1, X2), u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4), u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4), u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4), u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4), u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4), u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4), u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4), u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4), head(mark(X)) -> head(X), head(active(X)) -> head(X), tail(mark(X)) -> tail(X), tail(active(X)) -> tail(X), afterNth(X1, mark(X2)) -> afterNth(X1, X2), afterNth(X1, active(X2)) -> afterNth(X1, X2), afterNth(mark(X1), X2) -> afterNth(X1, X2), afterNth(active(X1), X2) -> afterNth(X1, X2), sel(X1, mark(X2)) -> sel(X1, X2), sel(X1, active(X2)) -> sel(X1, X2), sel(mark(X1), X2) -> sel(X1, X2), sel(active(X1), X2) -> sel(X1, X2), take(X1, mark(X2)) -> take(X1, X2), take(X1, active(X2)) -> take(X1, X2), take(mark(X1), X2) -> take(X1, X2), take(active(X1), X2) -> take(X1, X2) } DUP: We consider a duplicating system. Trs: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(natsFrom(X)) -> active(natsFrom(mark(X))), mark(s(X)) -> active(s(mark(X))), mark(fst(X)) -> active(fst(mark(X))), mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))), mark(snd(X)) -> active(snd(mark(X))), mark(nil()) -> active(nil()), mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))), mark(0()) -> active(0()), mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)), mark(head(X)) -> active(head(mark(X))), mark(tail(X)) -> active(tail(mark(X))), mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))), mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), cons(X1, mark(X2)) -> cons(X1, X2), cons(X1, active(X2)) -> cons(X1, X2), cons(mark(X1), X2) -> cons(X1, X2), cons(active(X1), X2) -> cons(X1, X2), natsFrom(mark(X)) -> natsFrom(X), natsFrom(active(X)) -> natsFrom(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))), active(fst(pair(XS, YS))) -> mark(XS), active(snd(pair(XS, YS))) -> mark(YS), active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)), active(splitAt(0(), XS)) -> mark(pair(nil(), XS)), active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)), active(head(cons(N, XS))) -> mark(N), active(tail(cons(N, XS))) -> mark(XS), active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))), active(sel(N, XS)) -> mark(head(afterNth(N, XS))), active(take(N, XS)) -> mark(fst(splitAt(N, XS))), fst(mark(X)) -> fst(X), fst(active(X)) -> fst(X), pair(X1, mark(X2)) -> pair(X1, X2), pair(X1, active(X2)) -> pair(X1, X2), pair(mark(X1), X2) -> pair(X1, X2), pair(active(X1), X2) -> pair(X1, X2), snd(mark(X)) -> snd(X), snd(active(X)) -> snd(X), splitAt(X1, mark(X2)) -> splitAt(X1, X2), splitAt(X1, active(X2)) -> splitAt(X1, X2), splitAt(mark(X1), X2) -> splitAt(X1, X2), splitAt(active(X1), X2) -> splitAt(X1, X2), u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4), u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4), u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4), u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4), u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4), u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4), u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4), u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4), head(mark(X)) -> head(X), head(active(X)) -> head(X), tail(mark(X)) -> tail(X), tail(active(X)) -> tail(X), afterNth(X1, mark(X2)) -> afterNth(X1, X2), afterNth(X1, active(X2)) -> afterNth(X1, X2), afterNth(mark(X1), X2) -> afterNth(X1, X2), afterNth(active(X1), X2) -> afterNth(X1, X2), sel(X1, mark(X2)) -> sel(X1, X2), sel(X1, active(X2)) -> sel(X1, X2), sel(mark(X1), X2) -> sel(X1, X2), sel(active(X1), X2) -> sel(X1, X2), take(X1, mark(X2)) -> take(X1, X2), take(X1, active(X2)) -> take(X1, X2), take(mark(X1), X2) -> take(X1, X2), take(active(X1), X2) -> take(X1, X2) } Fail