MAYBE Time: 0.241482 TRS: { mark cons(X1, X2) -> cons(mark X1, X2), mark natsFrom X -> a__natsFrom mark X, mark s X -> s mark X, mark pair(X1, X2) -> pair(mark X1, mark X2), mark nil() -> nil(), mark 0() -> 0(), mark fst X -> a__fst mark X, mark snd X -> a__snd mark X, mark splitAt(X1, X2) -> a__splitAt(mark X1, mark X2), mark u(X1, X2, X3, X4) -> a__u(mark X1, X2, X3, X4), mark head X -> a__head mark X, mark tail X -> a__tail mark X, mark sel(X1, X2) -> a__sel(mark X1, mark X2), mark afterNth(X1, X2) -> a__afterNth(mark X1, mark X2), mark take(X1, X2) -> a__take(mark X1, mark X2), a__natsFrom N -> cons(mark N, natsFrom s N), a__natsFrom X -> natsFrom X, a__fst X -> fst X, a__fst pair(XS, YS) -> mark XS, a__snd X -> snd X, a__snd pair(XS, YS) -> mark YS, a__splitAt(X1, X2) -> splitAt(X1, X2), a__splitAt(s N, cons(X, XS)) -> a__u(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt(0(), XS) -> pair(nil(), mark XS), a__u(X1, X2, X3, X4) -> u(X1, X2, X3, X4), a__u(pair(YS, ZS), N, X, XS) -> pair(cons(mark X, YS), mark ZS), a__head X -> head X, a__head cons(N, XS) -> mark N, a__tail X -> tail X, a__tail cons(N, XS) -> mark XS, a__afterNth(N, XS) -> a__snd a__splitAt(mark N, mark XS), a__afterNth(X1, X2) -> afterNth(X1, X2), a__sel(N, XS) -> a__head a__afterNth(mark N, mark XS), a__sel(X1, X2) -> sel(X1, X2), a__take(N, XS) -> a__fst a__splitAt(mark N, mark XS), a__take(X1, X2) -> take(X1, X2)} DP: DP: { mark# cons(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X, mark# s X -> mark# X, mark# pair(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2, mark# fst X -> mark# X, mark# fst X -> a__fst# mark X, mark# snd X -> mark# X, mark# snd X -> a__snd# mark X, mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), mark# u(X1, X2, X3, X4) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4), mark# head X -> mark# X, mark# head X -> a__head# mark X, mark# tail X -> mark# X, mark# tail X -> a__tail# mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__natsFrom# N -> mark# N, a__fst# pair(XS, YS) -> mark# XS, a__snd# pair(XS, YS) -> mark# YS, a__splitAt#(s N, cons(X, XS)) -> mark# N, a__splitAt#(s N, cons(X, XS)) -> mark# XS, a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt#(0(), XS) -> mark# XS, a__u#(pair(YS, ZS), N, X, XS) -> mark# X, a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, a__head# cons(N, XS) -> mark# N, a__tail# cons(N, XS) -> mark# XS, a__afterNth#(N, XS) -> mark# N, a__afterNth#(N, XS) -> mark# XS, a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS), a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__sel#(N, XS) -> mark# N, a__sel#(N, XS) -> mark# XS, a__sel#(N, XS) -> a__head# a__afterNth(mark N, mark XS), a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__take#(N, XS) -> mark# N, a__take#(N, XS) -> mark# XS, a__take#(N, XS) -> a__fst# a__splitAt(mark N, mark XS), a__take#(N, XS) -> a__splitAt#(mark N, mark XS)} TRS: { mark cons(X1, X2) -> cons(mark X1, X2), mark natsFrom X -> a__natsFrom mark X, mark s X -> s mark X, mark pair(X1, X2) -> pair(mark X1, mark X2), mark nil() -> nil(), mark 0() -> 0(), mark fst X -> a__fst mark X, mark snd X -> a__snd mark X, mark splitAt(X1, X2) -> a__splitAt(mark X1, mark X2), mark u(X1, X2, X3, X4) -> a__u(mark X1, X2, X3, X4), mark head X -> a__head mark X, mark tail X -> a__tail mark X, mark sel(X1, X2) -> a__sel(mark X1, mark X2), mark afterNth(X1, X2) -> a__afterNth(mark X1, mark X2), mark take(X1, X2) -> a__take(mark X1, mark X2), a__natsFrom N -> cons(mark N, natsFrom s N), a__natsFrom X -> natsFrom X, a__fst X -> fst X, a__fst pair(XS, YS) -> mark XS, a__snd X -> snd X, a__snd pair(XS, YS) -> mark YS, a__splitAt(X1, X2) -> splitAt(X1, X2), a__splitAt(s N, cons(X, XS)) -> a__u(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt(0(), XS) -> pair(nil(), mark XS), a__u(X1, X2, X3, X4) -> u(X1, X2, X3, X4), a__u(pair(YS, ZS), N, X, XS) -> pair(cons(mark X, YS), mark ZS), a__head X -> head X, a__head cons(N, XS) -> mark N, a__tail X -> tail X, a__tail cons(N, XS) -> mark XS, a__afterNth(N, XS) -> a__snd a__splitAt(mark N, mark XS), a__afterNth(X1, X2) -> afterNth(X1, X2), a__sel(N, XS) -> a__head a__afterNth(mark N, mark XS), a__sel(X1, X2) -> sel(X1, X2), a__take(N, XS) -> a__fst a__splitAt(mark N, mark XS), a__take(X1, X2) -> take(X1, X2)} UR: { mark cons(X1, X2) -> cons(mark X1, X2), mark natsFrom X -> a__natsFrom mark X, mark s X -> s mark X, mark pair(X1, X2) -> pair(mark X1, mark X2), mark nil() -> nil(), mark 0() -> 0(), mark fst X -> a__fst mark X, mark snd X -> a__snd mark X, mark splitAt(X1, X2) -> a__splitAt(mark X1, mark X2), mark u(X1, X2, X3, X4) -> a__u(mark X1, X2, X3, X4), mark head X -> a__head mark X, mark tail X -> a__tail mark X, mark sel(X1, X2) -> a__sel(mark X1, mark X2), mark afterNth(X1, X2) -> a__afterNth(mark X1, mark X2), mark take(X1, X2) -> a__take(mark X1, mark X2), a__natsFrom N -> cons(mark N, natsFrom s N), a__natsFrom X -> natsFrom X, a__fst X -> fst X, a__fst pair(XS, YS) -> mark XS, a__snd X -> snd X, a__snd pair(XS, YS) -> mark YS, a__splitAt(X1, X2) -> splitAt(X1, X2), a__splitAt(s N, cons(X, XS)) -> a__u(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt(0(), XS) -> pair(nil(), mark XS), a__u(X1, X2, X3, X4) -> u(X1, X2, X3, X4), a__u(pair(YS, ZS), N, X, XS) -> pair(cons(mark X, YS), mark ZS), a__head X -> head X, a__head cons(N, XS) -> mark N, a__tail X -> tail X, a__tail cons(N, XS) -> mark XS, a__afterNth(N, XS) -> a__snd a__splitAt(mark N, mark XS), a__afterNth(X1, X2) -> afterNth(X1, X2), a__sel(N, XS) -> a__head a__afterNth(mark N, mark XS), a__sel(X1, X2) -> sel(X1, X2), a__take(N, XS) -> a__fst a__splitAt(mark N, mark XS), a__take(X1, X2) -> take(X1, X2)} EDG: { (mark# pair(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# pair(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# pair(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# pair(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# pair(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# pair(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# pair(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# pair(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# tail X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# head X -> a__head# mark X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# head X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# snd X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# fst X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# natsFrom X -> mark# X) (mark# u(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# afterNth(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# afterNth(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# afterNth(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# afterNth(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# afterNth(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# afterNth(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# afterNth(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__natsFrom# N -> mark# N, mark# take(X1, X2) -> mark# X2) (a__natsFrom# N -> mark# N, mark# take(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__natsFrom# N -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__natsFrom# N -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__natsFrom# N -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__natsFrom# N -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# tail X -> a__tail# mark X) (a__natsFrom# N -> mark# N, mark# tail X -> mark# X) (a__natsFrom# N -> mark# N, mark# head X -> a__head# mark X) (a__natsFrom# N -> mark# N, mark# head X -> mark# X) (a__natsFrom# N -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__natsFrom# N -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__natsFrom# N -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__natsFrom# N -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__natsFrom# N -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# snd X -> a__snd# mark X) (a__natsFrom# N -> mark# N, mark# snd X -> mark# X) (a__natsFrom# N -> mark# N, mark# fst X -> a__fst# mark X) (a__natsFrom# N -> mark# N, mark# fst X -> mark# X) (a__natsFrom# N -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__natsFrom# N -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__natsFrom# N -> mark# N, mark# s X -> mark# X) (a__natsFrom# N -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__natsFrom# N -> mark# N, mark# natsFrom X -> mark# X) (a__natsFrom# N -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__head# cons(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__head# cons(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__head# cons(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__head# cons(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__head# cons(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__head# cons(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# tail X -> a__tail# mark X) (a__head# cons(N, XS) -> mark# N, mark# tail X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# head X -> a__head# mark X) (a__head# cons(N, XS) -> mark# N, mark# head X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__head# cons(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__head# cons(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__head# cons(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# snd X -> a__snd# mark X) (a__head# cons(N, XS) -> mark# N, mark# snd X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# fst X -> a__fst# mark X) (a__head# cons(N, XS) -> mark# N, mark# fst X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__head# cons(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__head# cons(N, XS) -> mark# N, mark# s X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__head# cons(N, XS) -> mark# N, mark# natsFrom X -> mark# X) (a__head# cons(N, XS) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# tail X -> a__tail# mark X) (a__sel#(N, XS) -> mark# N, mark# tail X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# head X -> a__head# mark X) (a__sel#(N, XS) -> mark# N, mark# head X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__sel#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# snd X -> a__snd# mark X) (a__sel#(N, XS) -> mark# N, mark# snd X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# fst X -> a__fst# mark X) (a__sel#(N, XS) -> mark# N, mark# fst X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# N, mark# s X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__sel#(N, XS) -> mark# N, mark# natsFrom X -> mark# X) (a__sel#(N, XS) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# take(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# take(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# afterNth(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# afterNth(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# sel(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# sel(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# tail X -> a__tail# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# tail X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# head X -> a__head# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# head X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# splitAt(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# splitAt(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# snd X -> a__snd# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# snd X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# fst X -> a__fst# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# fst X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# pair(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# pair(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# s X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# natsFrom X -> a__natsFrom# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# natsFrom X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, mark# cons(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), a__sel#(N, XS) -> a__afterNth#(mark N, mark XS)) (mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), a__sel#(N, XS) -> a__head# a__afterNth(mark N, mark XS)) (mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), a__sel#(N, XS) -> mark# XS) (mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), a__sel#(N, XS) -> mark# N) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(N, XS) -> a__splitAt#(mark N, mark XS)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(N, XS) -> a__fst# a__splitAt(mark N, mark XS)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(N, XS) -> mark# XS) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(N, XS) -> mark# N) (a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(0(), XS) -> mark# XS) (a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS)) (a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS)) (a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# XS) (a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# N) (a__take#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(0(), XS) -> mark# XS) (a__take#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS)) (a__take#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS)) (a__take#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# XS) (a__take#(N, XS) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# N) (mark# s X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# s X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# s X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# tail X -> a__tail# mark X) (mark# s X -> mark# X, mark# tail X -> mark# X) (mark# s X -> mark# X, mark# head X -> a__head# mark X) (mark# s X -> mark# X, mark# head X -> mark# X) (mark# s X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# s X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# snd X -> a__snd# mark X) (mark# s X -> mark# X, mark# snd X -> mark# X) (mark# s X -> mark# X, mark# fst X -> a__fst# mark X) (mark# s X -> mark# X, mark# fst X -> mark# X) (mark# s X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# s X -> mark# X, mark# natsFrom X -> mark# X) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# snd X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# snd X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# snd X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# snd X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# snd X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# snd X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# tail X -> a__tail# mark X) (mark# snd X -> mark# X, mark# tail X -> mark# X) (mark# snd X -> mark# X, mark# head X -> a__head# mark X) (mark# snd X -> mark# X, mark# head X -> mark# X) (mark# snd X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# snd X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# snd X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# snd X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# snd X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# snd X -> a__snd# mark X) (mark# snd X -> mark# X, mark# snd X -> mark# X) (mark# snd X -> mark# X, mark# fst X -> a__fst# mark X) (mark# snd X -> mark# X, mark# fst X -> mark# X) (mark# snd X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# snd X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# snd X -> mark# X, mark# s X -> mark# X) (mark# snd X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# snd X -> mark# X, mark# natsFrom X -> mark# X) (mark# snd X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# tail X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# tail X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# tail X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# tail X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# tail X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# tail X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# tail X -> a__tail# mark X) (mark# tail X -> mark# X, mark# tail X -> mark# X) (mark# tail X -> mark# X, mark# head X -> a__head# mark X) (mark# tail X -> mark# X, mark# head X -> mark# X) (mark# tail X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# tail X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# tail X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# tail X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# tail X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# snd X -> a__snd# mark X) (mark# tail X -> mark# X, mark# snd X -> mark# X) (mark# tail X -> mark# X, mark# fst X -> a__fst# mark X) (mark# tail X -> mark# X, mark# fst X -> mark# X) (mark# tail X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# tail X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# tail X -> mark# X, mark# s X -> mark# X) (mark# tail X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# tail X -> mark# X, mark# natsFrom X -> mark# X) (mark# tail X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4), a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS) (mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4), a__u#(pair(YS, ZS), N, X, XS) -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS), a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS) (a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS), a__u#(pair(YS, ZS), N, X, XS) -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# tail X -> a__tail# mark X) (mark# splitAt(X1, X2) -> mark# X2, mark# tail X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# head X -> a__head# mark X) (mark# splitAt(X1, X2) -> mark# X2, mark# head X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# splitAt(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# snd X -> a__snd# mark X) (mark# splitAt(X1, X2) -> mark# X2, mark# snd X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# fst X -> a__fst# mark X) (mark# splitAt(X1, X2) -> mark# X2, mark# fst X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# natsFrom X -> a__natsFrom# mark X) (mark# splitAt(X1, X2) -> mark# X2, mark# natsFrom X -> mark# X) (mark# splitAt(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# tail X -> a__tail# mark X) (mark# afterNth(X1, X2) -> mark# X2, mark# tail X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# head X -> a__head# mark X) (mark# afterNth(X1, X2) -> mark# X2, mark# head X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# afterNth(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# afterNth(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# snd X -> a__snd# mark X) (mark# afterNth(X1, X2) -> mark# X2, mark# snd X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# fst X -> a__fst# mark X) (mark# afterNth(X1, X2) -> mark# X2, mark# fst X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X2) (mark# afterNth(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X1) (mark# afterNth(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# natsFrom X -> a__natsFrom# mark X) (mark# afterNth(X1, X2) -> mark# X2, mark# natsFrom X -> mark# X) (mark# afterNth(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__fst# pair(XS, YS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__fst# pair(XS, YS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__fst# pair(XS, YS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__fst# pair(XS, YS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__fst# pair(XS, YS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__fst# pair(XS, YS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__fst# pair(XS, YS) -> mark# XS, mark# tail X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# head X -> a__head# mark X) (a__fst# pair(XS, YS) -> mark# XS, mark# head X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__fst# pair(XS, YS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__fst# pair(XS, YS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__fst# pair(XS, YS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__fst# pair(XS, YS) -> mark# XS, mark# snd X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__fst# pair(XS, YS) -> mark# XS, mark# fst X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__fst# pair(XS, YS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__fst# pair(XS, YS) -> mark# XS, mark# s X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__fst# pair(XS, YS) -> mark# XS, mark# natsFrom X -> mark# X) (a__fst# pair(XS, YS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__splitAt#(0(), XS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__splitAt#(0(), XS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__splitAt#(0(), XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__splitAt#(0(), XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__splitAt#(0(), XS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__splitAt#(0(), XS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__splitAt#(0(), XS) -> mark# XS, mark# tail X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# head X -> a__head# mark X) (a__splitAt#(0(), XS) -> mark# XS, mark# head X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__splitAt#(0(), XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__splitAt#(0(), XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__splitAt#(0(), XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__splitAt#(0(), XS) -> mark# XS, mark# snd X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__splitAt#(0(), XS) -> mark# XS, mark# fst X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__splitAt#(0(), XS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__splitAt#(0(), XS) -> mark# XS, mark# s X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__splitAt#(0(), XS) -> mark# XS, mark# natsFrom X -> mark# X) (a__splitAt#(0(), XS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__afterNth#(N, XS) -> mark# XS, mark# tail X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# head X -> a__head# mark X) (a__afterNth#(N, XS) -> mark# XS, mark# head X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__afterNth#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__afterNth#(N, XS) -> mark# XS, mark# snd X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__afterNth#(N, XS) -> mark# XS, mark# fst X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# XS, mark# s X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__afterNth#(N, XS) -> mark# XS, mark# natsFrom X -> mark# X) (a__afterNth#(N, XS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__take#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__take#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__take#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__take#(N, XS) -> mark# XS, mark# tail X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# head X -> a__head# mark X) (a__take#(N, XS) -> mark# XS, mark# head X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__take#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__take#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__take#(N, XS) -> mark# XS, mark# snd X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__take#(N, XS) -> mark# XS, mark# fst X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# XS, mark# s X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__take#(N, XS) -> mark# XS, mark# natsFrom X -> mark# X) (a__take#(N, XS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__sel#(N, XS) -> a__head# a__afterNth(mark N, mark XS), a__head# cons(N, XS) -> mark# N) (mark# natsFrom X -> a__natsFrom# mark X, a__natsFrom# N -> mark# N) (mark# snd X -> a__snd# mark X, a__snd# pair(XS, YS) -> mark# YS) (mark# tail X -> a__tail# mark X, a__tail# cons(N, XS) -> mark# XS) (mark# head X -> a__head# mark X, a__head# cons(N, XS) -> mark# N) (mark# fst X -> a__fst# mark X, a__fst# pair(XS, YS) -> mark# XS) (a__take#(N, XS) -> a__fst# a__splitAt(mark N, mark XS), a__fst# pair(XS, YS) -> mark# XS) (a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS), a__snd# pair(XS, YS) -> mark# YS) (a__sel#(N, XS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# natsFrom X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__sel#(N, XS) -> mark# XS, mark# s X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# XS, mark# fst X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__sel#(N, XS) -> mark# XS, mark# snd X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__sel#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__sel#(N, XS) -> mark# XS, mark# head X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# head X -> a__head# mark X) (a__sel#(N, XS) -> mark# XS, mark# tail X -> mark# X) (a__sel#(N, XS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__sel#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__sel#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__sel#(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__sel#(N, XS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__tail# cons(N, XS) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# natsFrom X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__tail# cons(N, XS) -> mark# XS, mark# s X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__tail# cons(N, XS) -> mark# XS, mark# fst X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# fst X -> a__fst# mark X) (a__tail# cons(N, XS) -> mark# XS, mark# snd X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# snd X -> a__snd# mark X) (a__tail# cons(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__tail# cons(N, XS) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__tail# cons(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__tail# cons(N, XS) -> mark# XS, mark# head X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# head X -> a__head# mark X) (a__tail# cons(N, XS) -> mark# XS, mark# tail X -> mark# X) (a__tail# cons(N, XS) -> mark# XS, mark# tail X -> a__tail# mark X) (a__tail# cons(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__tail# cons(N, XS) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__tail# cons(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__tail# cons(N, XS) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__tail# cons(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__tail# cons(N, XS) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__tail# cons(N, XS) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# cons(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# natsFrom X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# natsFrom X -> a__natsFrom# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# s X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# pair(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# pair(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# fst X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# fst X -> a__fst# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# snd X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# snd X -> a__snd# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# splitAt(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# splitAt(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# head X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# head X -> a__head# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# tail X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# tail X -> a__tail# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# sel(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# sel(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# afterNth(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# afterNth(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# take(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# take(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# XS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# natsFrom X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# natsFrom X -> a__natsFrom# mark X) (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# fst X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# fst X -> a__fst# mark X) (mark# take(X1, X2) -> mark# X2, mark# snd X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# snd X -> a__snd# mark X) (mark# take(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# head X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# head X -> a__head# mark X) (mark# take(X1, X2) -> mark# X2, mark# tail X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# tail X -> a__tail# mark X) (mark# take(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# natsFrom X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# natsFrom X -> a__natsFrom# mark X) (mark# sel(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# fst X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# fst X -> a__fst# mark X) (mark# sel(X1, X2) -> mark# X2, mark# snd X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# snd X -> a__snd# mark X) (mark# sel(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# sel(X1, X2) -> mark# X2, mark# head X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# head X -> a__head# mark X) (mark# sel(X1, X2) -> mark# X2, mark# tail X -> mark# X) (mark# sel(X1, X2) -> mark# X2, mark# tail X -> a__tail# mark X) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# natsFrom X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# natsFrom X -> a__natsFrom# mark X) (mark# pair(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# pair(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X2, mark# fst X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# fst X -> a__fst# mark X) (mark# pair(X1, X2) -> mark# X2, mark# snd X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# snd X -> a__snd# mark X) (mark# pair(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# pair(X1, X2) -> mark# X2, mark# head X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# head X -> a__head# mark X) (mark# pair(X1, X2) -> mark# X2, mark# tail X -> mark# X) (mark# pair(X1, X2) -> mark# X2, mark# tail X -> a__tail# mark X) (mark# pair(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# sel(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# pair(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# pair(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# pair(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__snd# pair(XS, YS) -> mark# YS, mark# cons(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# natsFrom X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# natsFrom X -> a__natsFrom# mark X) (a__snd# pair(XS, YS) -> mark# YS, mark# s X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# pair(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# pair(X1, X2) -> mark# X2) (a__snd# pair(XS, YS) -> mark# YS, mark# fst X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# fst X -> a__fst# mark X) (a__snd# pair(XS, YS) -> mark# YS, mark# snd X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# snd X -> a__snd# mark X) (a__snd# pair(XS, YS) -> mark# YS, mark# splitAt(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# splitAt(X1, X2) -> mark# X2) (a__snd# pair(XS, YS) -> mark# YS, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__snd# pair(XS, YS) -> mark# YS, mark# u(X1, X2, X3, X4) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__snd# pair(XS, YS) -> mark# YS, mark# head X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# head X -> a__head# mark X) (a__snd# pair(XS, YS) -> mark# YS, mark# tail X -> mark# X) (a__snd# pair(XS, YS) -> mark# YS, mark# tail X -> a__tail# mark X) (a__snd# pair(XS, YS) -> mark# YS, mark# sel(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# sel(X1, X2) -> mark# X2) (a__snd# pair(XS, YS) -> mark# YS, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__snd# pair(XS, YS) -> mark# YS, mark# afterNth(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# afterNth(X1, X2) -> mark# X2) (a__snd# pair(XS, YS) -> mark# YS, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__snd# pair(XS, YS) -> mark# YS, mark# take(X1, X2) -> mark# X1) (a__snd# pair(XS, YS) -> mark# YS, mark# take(X1, X2) -> mark# X2) (a__snd# pair(XS, YS) -> mark# YS, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# cons(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# natsFrom X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# s X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# pair(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# pair(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# fst X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# fst X -> a__fst# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# snd X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# snd X -> a__snd# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# head X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# head X -> a__head# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# tail X -> mark# X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# tail X -> a__tail# mark X) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# sel(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# sel(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# take(X1, X2) -> mark# X1) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# take(X1, X2) -> mark# X2) (a__u#(pair(YS, ZS), N, X, XS) -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# head X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# natsFrom X -> mark# X) (mark# head X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# head X -> mark# X, mark# s X -> mark# X) (mark# head X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# head X -> mark# X, mark# fst X -> mark# X) (mark# head X -> mark# X, mark# fst X -> a__fst# mark X) (mark# head X -> mark# X, mark# snd X -> mark# X) (mark# head X -> mark# X, mark# snd X -> a__snd# mark X) (mark# head X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# head X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# head X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# head X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# head X -> mark# X, mark# head X -> mark# X) (mark# head X -> mark# X, mark# head X -> a__head# mark X) (mark# head X -> mark# X, mark# tail X -> mark# X) (mark# head X -> mark# X, mark# tail X -> a__tail# mark X) (mark# head X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# head X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# head X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# head X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# head X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# head X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# head X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# fst X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# natsFrom X -> mark# X) (mark# fst X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# fst X -> mark# X, mark# s X -> mark# X) (mark# fst X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# fst X -> mark# X, mark# fst X -> mark# X) (mark# fst X -> mark# X, mark# fst X -> a__fst# mark X) (mark# fst X -> mark# X, mark# snd X -> mark# X) (mark# fst X -> mark# X, mark# snd X -> a__snd# mark X) (mark# fst X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# fst X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# fst X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# fst X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# fst X -> mark# X, mark# head X -> mark# X) (mark# fst X -> mark# X, mark# head X -> a__head# mark X) (mark# fst X -> mark# X, mark# tail X -> mark# X) (mark# fst X -> mark# X, mark# tail X -> a__tail# mark X) (mark# fst X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# fst X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# fst X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# fst X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# fst X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# fst X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# fst X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# natsFrom X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# natsFrom X -> mark# X) (mark# natsFrom X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X) (mark# natsFrom X -> mark# X, mark# s X -> mark# X) (mark# natsFrom X -> mark# X, mark# pair(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# pair(X1, X2) -> mark# X2) (mark# natsFrom X -> mark# X, mark# fst X -> mark# X) (mark# natsFrom X -> mark# X, mark# fst X -> a__fst# mark X) (mark# natsFrom X -> mark# X, mark# snd X -> mark# X) (mark# natsFrom X -> mark# X, mark# snd X -> a__snd# mark X) (mark# natsFrom X -> mark# X, mark# splitAt(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# splitAt(X1, X2) -> mark# X2) (mark# natsFrom X -> mark# X, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# natsFrom X -> mark# X, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# natsFrom X -> mark# X, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# natsFrom X -> mark# X, mark# head X -> mark# X) (mark# natsFrom X -> mark# X, mark# head X -> a__head# mark X) (mark# natsFrom X -> mark# X, mark# tail X -> mark# X) (mark# natsFrom X -> mark# X, mark# tail X -> a__tail# mark X) (mark# natsFrom X -> mark# X, mark# sel(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# sel(X1, X2) -> mark# X2) (mark# natsFrom X -> mark# X, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# natsFrom X -> mark# X, mark# afterNth(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# afterNth(X1, X2) -> mark# X2) (mark# natsFrom X -> mark# X, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# natsFrom X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# natsFrom X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# natsFrom X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__afterNth#(N, XS) -> mark# N) (a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__afterNth#(N, XS) -> mark# XS) (a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS)) (a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS)) (a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# N) (a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> mark# XS) (a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS)) (a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS)) (a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(0(), XS) -> mark# XS) (mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), a__afterNth#(N, XS) -> mark# N) (mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), a__afterNth#(N, XS) -> mark# XS) (mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS)) (mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS)) (mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), a__splitAt#(s N, cons(X, XS)) -> mark# N) (mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), a__splitAt#(s N, cons(X, XS)) -> mark# XS) (mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS)) (mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS)) (mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), a__splitAt#(0(), XS) -> mark# XS) (a__take#(N, XS) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# natsFrom X -> mark# X) (a__take#(N, XS) -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__take#(N, XS) -> mark# N, mark# s X -> mark# X) (a__take#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# N, mark# fst X -> mark# X) (a__take#(N, XS) -> mark# N, mark# fst X -> a__fst# mark X) (a__take#(N, XS) -> mark# N, mark# snd X -> mark# X) (a__take#(N, XS) -> mark# N, mark# snd X -> a__snd# mark X) (a__take#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__take#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__take#(N, XS) -> mark# N, mark# head X -> mark# X) (a__take#(N, XS) -> mark# N, mark# head X -> a__head# mark X) (a__take#(N, XS) -> mark# N, mark# tail X -> mark# X) (a__take#(N, XS) -> mark# N, mark# tail X -> a__tail# mark X) (a__take#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__take#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__take#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__take#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__take#(N, XS) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# natsFrom X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__afterNth#(N, XS) -> mark# N, mark# s X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# N, mark# fst X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# fst X -> a__fst# mark X) (a__afterNth#(N, XS) -> mark# N, mark# snd X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# snd X -> a__snd# mark X) (a__afterNth#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__afterNth#(N, XS) -> mark# N, mark# head X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# head X -> a__head# mark X) (a__afterNth#(N, XS) -> mark# N, mark# tail X -> mark# X) (a__afterNth#(N, XS) -> mark# N, mark# tail X -> a__tail# mark X) (a__afterNth#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__afterNth#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__afterNth#(N, XS) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__afterNth#(N, XS) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# natsFrom X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# natsFrom X -> a__natsFrom# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# s X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# pair(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# pair(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# fst X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# fst X -> a__fst# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# snd X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# snd X -> a__snd# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# splitAt(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# splitAt(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# u(X1, X2, X3, X4) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# head X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# head X -> a__head# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# tail X -> mark# X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# tail X -> a__tail# mark X) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# sel(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# sel(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# afterNth(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# afterNth(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__splitAt#(s N, cons(X, XS)) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# take(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# take(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# take(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# take(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# sel(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# sel(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# sel(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# sel(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# sel(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# sel(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# sel(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# sel(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# sel(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# splitAt(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# splitAt(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# splitAt(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# splitAt(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# splitAt(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# splitAt(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# splitAt(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# splitAt(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# splitAt(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# natsFrom X -> a__natsFrom# mark X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# fst X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# fst X -> a__fst# mark X) (mark# cons(X1, X2) -> mark# X1, mark# snd X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# snd X -> a__snd# mark X) (mark# cons(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# head X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# head X -> a__head# mark X) (mark# cons(X1, X2) -> mark# X1, mark# tail X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# tail X -> a__tail# mark X) (mark# cons(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) } STATUS: arrows: 0.630178 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X, mark# s X -> mark# X, mark# pair(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2, mark# fst X -> mark# X, mark# fst X -> a__fst# mark X, mark# snd X -> mark# X, mark# snd X -> a__snd# mark X, mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), mark# u(X1, X2, X3, X4) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4), mark# head X -> mark# X, mark# head X -> a__head# mark X, mark# tail X -> mark# X, mark# tail X -> a__tail# mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__natsFrom# N -> mark# N, a__fst# pair(XS, YS) -> mark# XS, a__snd# pair(XS, YS) -> mark# YS, a__splitAt#(s N, cons(X, XS)) -> mark# N, a__splitAt#(s N, cons(X, XS)) -> mark# XS, a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt#(0(), XS) -> mark# XS, a__u#(pair(YS, ZS), N, X, XS) -> mark# X, a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, a__head# cons(N, XS) -> mark# N, a__tail# cons(N, XS) -> mark# XS, a__afterNth#(N, XS) -> mark# N, a__afterNth#(N, XS) -> mark# XS, a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS), a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__sel#(N, XS) -> mark# N, a__sel#(N, XS) -> mark# XS, a__sel#(N, XS) -> a__head# a__afterNth(mark N, mark XS), a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__take#(N, XS) -> mark# N, a__take#(N, XS) -> mark# XS, a__take#(N, XS) -> a__fst# a__splitAt(mark N, mark XS), a__take#(N, XS) -> a__splitAt#(mark N, mark XS)} SCC (52): Strict: { mark# cons(X1, X2) -> mark# X1, mark# natsFrom X -> mark# X, mark# natsFrom X -> a__natsFrom# mark X, mark# s X -> mark# X, mark# pair(X1, X2) -> mark# X1, mark# pair(X1, X2) -> mark# X2, mark# fst X -> mark# X, mark# fst X -> a__fst# mark X, mark# snd X -> mark# X, mark# snd X -> a__snd# mark X, mark# splitAt(X1, X2) -> mark# X1, mark# splitAt(X1, X2) -> mark# X2, mark# splitAt(X1, X2) -> a__splitAt#(mark X1, mark X2), mark# u(X1, X2, X3, X4) -> mark# X1, mark# u(X1, X2, X3, X4) -> a__u#(mark X1, X2, X3, X4), mark# head X -> mark# X, mark# head X -> a__head# mark X, mark# tail X -> mark# X, mark# tail X -> a__tail# mark X, mark# sel(X1, X2) -> mark# X1, mark# sel(X1, X2) -> mark# X2, mark# sel(X1, X2) -> a__sel#(mark X1, mark X2), mark# afterNth(X1, X2) -> mark# X1, mark# afterNth(X1, X2) -> mark# X2, mark# afterNth(X1, X2) -> a__afterNth#(mark X1, mark X2), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__natsFrom# N -> mark# N, a__fst# pair(XS, YS) -> mark# XS, a__snd# pair(XS, YS) -> mark# YS, a__splitAt#(s N, cons(X, XS)) -> mark# N, a__splitAt#(s N, cons(X, XS)) -> mark# XS, a__splitAt#(s N, cons(X, XS)) -> a__splitAt#(mark N, mark XS), a__splitAt#(s N, cons(X, XS)) -> a__u#(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt#(0(), XS) -> mark# XS, a__u#(pair(YS, ZS), N, X, XS) -> mark# X, a__u#(pair(YS, ZS), N, X, XS) -> mark# ZS, a__head# cons(N, XS) -> mark# N, a__tail# cons(N, XS) -> mark# XS, a__afterNth#(N, XS) -> mark# N, a__afterNth#(N, XS) -> mark# XS, a__afterNth#(N, XS) -> a__snd# a__splitAt(mark N, mark XS), a__afterNth#(N, XS) -> a__splitAt#(mark N, mark XS), a__sel#(N, XS) -> mark# N, a__sel#(N, XS) -> mark# XS, a__sel#(N, XS) -> a__head# a__afterNth(mark N, mark XS), a__sel#(N, XS) -> a__afterNth#(mark N, mark XS), a__take#(N, XS) -> mark# N, a__take#(N, XS) -> mark# XS, a__take#(N, XS) -> a__fst# a__splitAt(mark N, mark XS), a__take#(N, XS) -> a__splitAt#(mark N, mark XS)} Weak: { mark cons(X1, X2) -> cons(mark X1, X2), mark natsFrom X -> a__natsFrom mark X, mark s X -> s mark X, mark pair(X1, X2) -> pair(mark X1, mark X2), mark nil() -> nil(), mark 0() -> 0(), mark fst X -> a__fst mark X, mark snd X -> a__snd mark X, mark splitAt(X1, X2) -> a__splitAt(mark X1, mark X2), mark u(X1, X2, X3, X4) -> a__u(mark X1, X2, X3, X4), mark head X -> a__head mark X, mark tail X -> a__tail mark X, mark sel(X1, X2) -> a__sel(mark X1, mark X2), mark afterNth(X1, X2) -> a__afterNth(mark X1, mark X2), mark take(X1, X2) -> a__take(mark X1, mark X2), a__natsFrom N -> cons(mark N, natsFrom s N), a__natsFrom X -> natsFrom X, a__fst X -> fst X, a__fst pair(XS, YS) -> mark XS, a__snd X -> snd X, a__snd pair(XS, YS) -> mark YS, a__splitAt(X1, X2) -> splitAt(X1, X2), a__splitAt(s N, cons(X, XS)) -> a__u(a__splitAt(mark N, mark XS), N, X, XS), a__splitAt(0(), XS) -> pair(nil(), mark XS), a__u(X1, X2, X3, X4) -> u(X1, X2, X3, X4), a__u(pair(YS, ZS), N, X, XS) -> pair(cons(mark X, YS), mark ZS), a__head X -> head X, a__head cons(N, XS) -> mark N, a__tail X -> tail X, a__tail cons(N, XS) -> mark XS, a__afterNth(N, XS) -> a__snd a__splitAt(mark N, mark XS), a__afterNth(X1, X2) -> afterNth(X1, X2), a__sel(N, XS) -> a__head a__afterNth(mark N, mark XS), a__sel(X1, X2) -> sel(X1, X2), a__take(N, XS) -> a__fst a__splitAt(mark N, mark XS), a__take(X1, X2) -> take(X1, X2)} Open