(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U101(tt, V1, V2)) → mark(U102(isNaturalKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isLNatKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isLNatKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNatural(V1), V2))
active(U105(tt, V2)) → mark(U106(isLNat(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(U12(isNaturalKind(N), N, XS))
active(U111(tt, V2)) → mark(U112(isLNatKind(V2)))
active(U112(tt)) → mark(tt)
active(U12(tt, N, XS)) → mark(U13(isLNat(XS), N, XS))
active(U121(tt, V2)) → mark(U122(isLNatKind(V2)))
active(U122(tt)) → mark(tt)
active(U13(tt, N, XS)) → mark(U14(isLNatKind(XS), N, XS))
active(U131(tt)) → mark(tt)
active(U14(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U141(tt)) → mark(tt)
active(U151(tt)) → mark(tt)
active(U161(tt)) → mark(tt)
active(U171(tt, V2)) → mark(U172(isLNatKind(V2)))
active(U172(tt)) → mark(tt)
active(U181(tt, V1)) → mark(U182(isLNatKind(V1), V1))
active(U182(tt, V1)) → mark(U183(isLNat(V1)))
active(U183(tt)) → mark(tt)
active(U191(tt, V1)) → mark(U192(isNaturalKind(V1), V1))
active(U192(tt, V1)) → mark(U193(isNatural(V1)))
active(U193(tt)) → mark(tt)
active(U201(tt, V1, V2)) → mark(U202(isNaturalKind(V1), V1, V2))
active(U202(tt, V1, V2)) → mark(U203(isLNatKind(V2), V1, V2))
active(U203(tt, V1, V2)) → mark(U204(isLNatKind(V2), V1, V2))
active(U204(tt, V1, V2)) → mark(U205(isNatural(V1), V2))
active(U205(tt, V2)) → mark(U206(isLNat(V2)))
active(U206(tt)) → mark(tt)
active(U21(tt, X, Y)) → mark(U22(isLNatKind(X), X, Y))
active(U211(tt)) → mark(tt)
active(U22(tt, X, Y)) → mark(U23(isLNat(Y), X, Y))
active(U221(tt)) → mark(tt)
active(U23(tt, X, Y)) → mark(U24(isLNatKind(Y), X))
active(U231(tt, V2)) → mark(U232(isLNatKind(V2)))
active(U232(tt)) → mark(tt)
active(U24(tt, X)) → mark(X)
active(U241(tt, V1, V2)) → mark(U242(isLNatKind(V1), V1, V2))
active(U242(tt, V1, V2)) → mark(U243(isLNatKind(V2), V1, V2))
active(U243(tt, V1, V2)) → mark(U244(isLNatKind(V2), V1, V2))
active(U244(tt, V1, V2)) → mark(U245(isLNat(V1), V2))
active(U245(tt, V2)) → mark(U246(isLNat(V2)))
active(U246(tt)) → mark(tt)
active(U251(tt, V1, V2)) → mark(U252(isNaturalKind(V1), V1, V2))
active(U252(tt, V1, V2)) → mark(U253(isLNatKind(V2), V1, V2))
active(U253(tt, V1, V2)) → mark(U254(isLNatKind(V2), V1, V2))
active(U254(tt, V1, V2)) → mark(U255(isNatural(V1), V2))
active(U255(tt, V2)) → mark(U256(isLNat(V2)))
active(U256(tt)) → mark(tt)
active(U261(tt, V2)) → mark(U262(isLNatKind(V2)))
active(U262(tt)) → mark(tt)
active(U271(tt, V2)) → mark(U272(isLNatKind(V2)))
active(U272(tt)) → mark(tt)
active(U281(tt, N)) → mark(U282(isNaturalKind(N), N))
active(U282(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U291(tt, N, XS)) → mark(U292(isNaturalKind(N), N, XS))
active(U292(tt, N, XS)) → mark(U293(isLNat(XS), N, XS))
active(U293(tt, N, XS)) → mark(U294(isLNatKind(XS), N, XS))
active(U294(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U301(tt, X, Y)) → mark(U302(isLNatKind(X), Y))
active(U302(tt, Y)) → mark(U303(isLNat(Y), Y))
active(U303(tt, Y)) → mark(U304(isLNatKind(Y), Y))
active(U304(tt, Y)) → mark(Y)
active(U31(tt, N, XS)) → mark(U32(isNaturalKind(N), N, XS))
active(U311(tt, XS)) → mark(U312(isLNatKind(XS), XS))
active(U312(tt, XS)) → mark(pair(nil, XS))
active(U32(tt, N, XS)) → mark(U33(isLNat(XS), N, XS))
active(U321(tt, N, X, XS)) → mark(U322(isNaturalKind(N), N, X, XS))
active(U322(tt, N, X, XS)) → mark(U323(isNatural(X), N, X, XS))
active(U323(tt, N, X, XS)) → mark(U324(isNaturalKind(X), N, X, XS))
active(U324(tt, N, X, XS)) → mark(U325(isLNat(XS), N, X, XS))
active(U325(tt, N, X, XS)) → mark(U326(isLNatKind(XS), N, X, XS))
active(U326(tt, N, X, XS)) → mark(U327(splitAt(N, XS), X))
active(U327(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U33(tt, N, XS)) → mark(U34(isLNatKind(XS), N))
active(U331(tt, N, XS)) → mark(U332(isNaturalKind(N), XS))
active(U332(tt, XS)) → mark(U333(isLNat(XS), XS))
active(U333(tt, XS)) → mark(U334(isLNatKind(XS), XS))
active(U334(tt, XS)) → mark(XS)
active(U34(tt, N)) → mark(N)
active(U341(tt, N, XS)) → mark(U342(isNaturalKind(N), N, XS))
active(U342(tt, N, XS)) → mark(U343(isLNat(XS), N, XS))
active(U343(tt, N, XS)) → mark(U344(isLNatKind(XS), N, XS))
active(U344(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U41(tt, V1, V2)) → mark(U42(isNaturalKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isLNatKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isLNatKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNatural(V1), V2))
active(U45(tt, V2)) → mark(U46(isLNat(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNaturalKind(V1), V1, V2))
active(U52(tt, V1, V2)) → mark(U53(isLNatKind(V2), V1, V2))
active(U53(tt, V1, V2)) → mark(U54(isLNatKind(V2), V1, V2))
active(U54(tt, V1, V2)) → mark(U55(isNatural(V1), V2))
active(U55(tt, V2)) → mark(U56(isLNat(V2)))
active(U56(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNatKind(V1), V1))
active(U62(tt, V1)) → mark(U63(isPLNat(V1)))
active(U63(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNaturalKind(V1), V1))
active(U72(tt, V1)) → mark(U73(isNatural(V1)))
active(U73(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNatKind(V1), V1))
active(U82(tt, V1)) → mark(U83(isPLNat(V1)))
active(U83(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNatKind(V1), V1))
active(U92(tt, V1)) → mark(U93(isLNat(V1)))
active(U93(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(isNatural(N), N, XS))
active(fst(pair(X, Y))) → mark(U21(isLNat(X), X, Y))
active(head(cons(N, XS))) → mark(U31(isNatural(N), N, XS))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(isNaturalKind(V1), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(isNaturalKind(V1), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(isNaturalKind(V1), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(U111(isNaturalKind(V1), V2))
active(isLNatKind(cons(V1, V2))) → mark(U121(isNaturalKind(V1), V2))
active(isLNatKind(fst(V1))) → mark(U131(isPLNatKind(V1)))
active(isLNatKind(natsFrom(V1))) → mark(U141(isNaturalKind(V1)))
active(isLNatKind(snd(V1))) → mark(U151(isPLNatKind(V1)))
active(isLNatKind(tail(V1))) → mark(U161(isLNatKind(V1)))
active(isLNatKind(take(V1, V2))) → mark(U171(isNaturalKind(V1), V2))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U181(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U191(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U201(isNaturalKind(V1), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(U211(isLNatKind(V1)))
active(isNaturalKind(s(V1))) → mark(U221(isNaturalKind(V1)))
active(isNaturalKind(sel(V1, V2))) → mark(U231(isNaturalKind(V1), V2))
active(isPLNat(pair(V1, V2))) → mark(U241(isLNatKind(V1), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U251(isNaturalKind(V1), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(U261(isLNatKind(V1), V2))
active(isPLNatKind(splitAt(V1, V2))) → mark(U271(isNaturalKind(V1), V2))
active(natsFrom(N)) → mark(U281(isNatural(N), N))
active(sel(N, XS)) → mark(U291(isNatural(N), N, XS))
active(snd(pair(X, Y))) → mark(U301(isLNat(X), X, Y))
active(splitAt(0, XS)) → mark(U311(isLNat(XS), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U321(isNatural(N), N, X, XS))
active(tail(cons(N, XS))) → mark(U331(isNatural(N), N, XS))
active(take(N, XS)) → mark(U341(isNatural(N), N, XS))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U111(X1, X2)) → U111(active(X1), X2)
active(U112(X)) → U112(active(X))
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U131(X)) → U131(active(X))
active(snd(X)) → snd(active(X))
active(splitAt(X1, X2)) → splitAt(active(X1), X2)
active(splitAt(X1, X2)) → splitAt(X1, active(X2))
active(U141(X)) → U141(active(X))
active(U151(X)) → U151(active(X))
active(U161(X)) → U161(active(X))
active(U171(X1, X2)) → U171(active(X1), X2)
active(U172(X)) → U172(active(X))
active(U181(X1, X2)) → U181(active(X1), X2)
active(U182(X1, X2)) → U182(active(X1), X2)
active(U183(X)) → U183(active(X))
active(U191(X1, X2)) → U191(active(X1), X2)
active(U192(X1, X2)) → U192(active(X1), X2)
active(U193(X)) → U193(active(X))
active(U201(X1, X2, X3)) → U201(active(X1), X2, X3)
active(U202(X1, X2, X3)) → U202(active(X1), X2, X3)
active(U203(X1, X2, X3)) → U203(active(X1), X2, X3)
active(U204(X1, X2, X3)) → U204(active(X1), X2, X3)
active(U205(X1, X2)) → U205(active(X1), X2)
active(U206(X)) → U206(active(X))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2, X3)) → U22(active(X1), X2, X3)
active(U211(X)) → U211(active(X))
active(U23(X1, X2, X3)) → U23(active(X1), X2, X3)
active(U221(X)) → U221(active(X))
active(U24(X1, X2)) → U24(active(X1), X2)
active(U231(X1, X2)) → U231(active(X1), X2)
active(U232(X)) → U232(active(X))
active(U241(X1, X2, X3)) → U241(active(X1), X2, X3)
active(U242(X1, X2, X3)) → U242(active(X1), X2, X3)
active(U243(X1, X2, X3)) → U243(active(X1), X2, X3)
active(U244(X1, X2, X3)) → U244(active(X1), X2, X3)
active(U245(X1, X2)) → U245(active(X1), X2)
active(U246(X)) → U246(active(X))
active(U251(X1, X2, X3)) → U251(active(X1), X2, X3)
active(U252(X1, X2, X3)) → U252(active(X1), X2, X3)
active(U253(X1, X2, X3)) → U253(active(X1), X2, X3)
active(U254(X1, X2, X3)) → U254(active(X1), X2, X3)
active(U255(X1, X2)) → U255(active(X1), X2)
active(U256(X)) → U256(active(X))
active(U261(X1, X2)) → U261(active(X1), X2)
active(U262(X)) → U262(active(X))
active(U271(X1, X2)) → U271(active(X1), X2)
active(U272(X)) → U272(active(X))
active(U281(X1, X2)) → U281(active(X1), X2)
active(U282(X1, X2)) → U282(active(X1), X2)
active(cons(X1, X2)) → cons(active(X1), X2)
active(natsFrom(X)) → natsFrom(active(X))
active(s(X)) → s(active(X))
active(U291(X1, X2, X3)) → U291(active(X1), X2, X3)
active(U292(X1, X2, X3)) → U292(active(X1), X2, X3)
active(U293(X1, X2, X3)) → U293(active(X1), X2, X3)
active(U294(X1, X2, X3)) → U294(active(X1), X2, X3)
active(head(X)) → head(active(X))
active(afterNth(X1, X2)) → afterNth(active(X1), X2)
active(afterNth(X1, X2)) → afterNth(X1, active(X2))
active(U301(X1, X2, X3)) → U301(active(X1), X2, X3)
active(U302(X1, X2)) → U302(active(X1), X2)
active(U303(X1, X2)) → U303(active(X1), X2)
active(U304(X1, X2)) → U304(active(X1), X2)
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U311(X1, X2)) → U311(active(X1), X2)
active(U312(X1, X2)) → U312(active(X1), X2)
active(pair(X1, X2)) → pair(active(X1), X2)
active(pair(X1, X2)) → pair(X1, active(X2))
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U321(X1, X2, X3, X4)) → U321(active(X1), X2, X3, X4)
active(U322(X1, X2, X3, X4)) → U322(active(X1), X2, X3, X4)
active(U323(X1, X2, X3, X4)) → U323(active(X1), X2, X3, X4)
active(U324(X1, X2, X3, X4)) → U324(active(X1), X2, X3, X4)
active(U325(X1, X2, X3, X4)) → U325(active(X1), X2, X3, X4)
active(U326(X1, X2, X3, X4)) → U326(active(X1), X2, X3, X4)
active(U327(X1, X2)) → U327(active(X1), X2)
active(U34(X1, X2)) → U34(active(X1), X2)
active(U331(X1, X2, X3)) → U331(active(X1), X2, X3)
active(U332(X1, X2)) → U332(active(X1), X2)
active(U333(X1, X2)) → U333(active(X1), X2)
active(U334(X1, X2)) → U334(active(X1), X2)
active(U341(X1, X2, X3)) → U341(active(X1), X2, X3)
active(U342(X1, X2, X3)) → U342(active(X1), X2, X3)
active(U343(X1, X2, X3)) → U343(active(X1), X2, X3)
active(U344(X1, X2, X3)) → U344(active(X1), X2, X3)
active(fst(X)) → fst(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2, X3)) → U51(active(X1), X2, X3)
active(U52(X1, X2, X3)) → U52(active(X1), X2, X3)
active(U53(X1, X2, X3)) → U53(active(X1), X2, X3)
active(U54(X1, X2, X3)) → U54(active(X1), X2, X3)
active(U55(X1, X2)) → U55(active(X1), X2)
active(U56(X)) → U56(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X1, X2)) → U62(active(X1), X2)
active(U63(X)) → U63(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U73(X)) → U73(active(X))
active(U81(X1, X2)) → U81(active(X1), X2)
active(U82(X1, X2)) → U82(active(X1), X2)
active(U83(X)) → U83(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X1, X2)) → U92(active(X1), X2)
active(U93(X)) → U93(active(X))
active(tail(X)) → tail(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U111(mark(X1), X2) → mark(U111(X1, X2))
U112(mark(X)) → mark(U112(X))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U131(mark(X)) → mark(U131(X))
snd(mark(X)) → mark(snd(X))
splitAt(mark(X1), X2) → mark(splitAt(X1, X2))
splitAt(X1, mark(X2)) → mark(splitAt(X1, X2))
U141(mark(X)) → mark(U141(X))
U151(mark(X)) → mark(U151(X))
U161(mark(X)) → mark(U161(X))
U171(mark(X1), X2) → mark(U171(X1, X2))
U172(mark(X)) → mark(U172(X))
U181(mark(X1), X2) → mark(U181(X1, X2))
U182(mark(X1), X2) → mark(U182(X1, X2))
U183(mark(X)) → mark(U183(X))
U191(mark(X1), X2) → mark(U191(X1, X2))
U192(mark(X1), X2) → mark(U192(X1, X2))
U193(mark(X)) → mark(U193(X))
U201(mark(X1), X2, X3) → mark(U201(X1, X2, X3))
U202(mark(X1), X2, X3) → mark(U202(X1, X2, X3))
U203(mark(X1), X2, X3) → mark(U203(X1, X2, X3))
U204(mark(X1), X2, X3) → mark(U204(X1, X2, X3))
U205(mark(X1), X2) → mark(U205(X1, X2))
U206(mark(X)) → mark(U206(X))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2, X3) → mark(U22(X1, X2, X3))
U211(mark(X)) → mark(U211(X))
U23(mark(X1), X2, X3) → mark(U23(X1, X2, X3))
U221(mark(X)) → mark(U221(X))
U24(mark(X1), X2) → mark(U24(X1, X2))
U231(mark(X1), X2) → mark(U231(X1, X2))
U232(mark(X)) → mark(U232(X))
U241(mark(X1), X2, X3) → mark(U241(X1, X2, X3))
U242(mark(X1), X2, X3) → mark(U242(X1, X2, X3))
U243(mark(X1), X2, X3) → mark(U243(X1, X2, X3))
U244(mark(X1), X2, X3) → mark(U244(X1, X2, X3))
U245(mark(X1), X2) → mark(U245(X1, X2))
U246(mark(X)) → mark(U246(X))
U251(mark(X1), X2, X3) → mark(U251(X1, X2, X3))
U252(mark(X1), X2, X3) → mark(U252(X1, X2, X3))
U253(mark(X1), X2, X3) → mark(U253(X1, X2, X3))
U254(mark(X1), X2, X3) → mark(U254(X1, X2, X3))
U255(mark(X1), X2) → mark(U255(X1, X2))
U256(mark(X)) → mark(U256(X))
U261(mark(X1), X2) → mark(U261(X1, X2))
U262(mark(X)) → mark(U262(X))
U271(mark(X1), X2) → mark(U271(X1, X2))
U272(mark(X)) → mark(U272(X))
U281(mark(X1), X2) → mark(U281(X1, X2))
U282(mark(X1), X2) → mark(U282(X1, X2))
cons(mark(X1), X2) → mark(cons(X1, X2))
natsFrom(mark(X)) → mark(natsFrom(X))
s(mark(X)) → mark(s(X))
U291(mark(X1), X2, X3) → mark(U291(X1, X2, X3))
U292(mark(X1), X2, X3) → mark(U292(X1, X2, X3))
U293(mark(X1), X2, X3) → mark(U293(X1, X2, X3))
U294(mark(X1), X2, X3) → mark(U294(X1, X2, X3))
head(mark(X)) → mark(head(X))
afterNth(mark(X1), X2) → mark(afterNth(X1, X2))
afterNth(X1, mark(X2)) → mark(afterNth(X1, X2))
U301(mark(X1), X2, X3) → mark(U301(X1, X2, X3))
U302(mark(X1), X2) → mark(U302(X1, X2))
U303(mark(X1), X2) → mark(U303(X1, X2))
U304(mark(X1), X2) → mark(U304(X1, X2))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U311(mark(X1), X2) → mark(U311(X1, X2))
U312(mark(X1), X2) → mark(U312(X1, X2))
pair(mark(X1), X2) → mark(pair(X1, X2))
pair(X1, mark(X2)) → mark(pair(X1, X2))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U321(mark(X1), X2, X3, X4) → mark(U321(X1, X2, X3, X4))
U322(mark(X1), X2, X3, X4) → mark(U322(X1, X2, X3, X4))
U323(mark(X1), X2, X3, X4) → mark(U323(X1, X2, X3, X4))
U324(mark(X1), X2, X3, X4) → mark(U324(X1, X2, X3, X4))
U325(mark(X1), X2, X3, X4) → mark(U325(X1, X2, X3, X4))
U326(mark(X1), X2, X3, X4) → mark(U326(X1, X2, X3, X4))
U327(mark(X1), X2) → mark(U327(X1, X2))
U34(mark(X1), X2) → mark(U34(X1, X2))
U331(mark(X1), X2, X3) → mark(U331(X1, X2, X3))
U332(mark(X1), X2) → mark(U332(X1, X2))
U333(mark(X1), X2) → mark(U333(X1, X2))
U334(mark(X1), X2) → mark(U334(X1, X2))
U341(mark(X1), X2, X3) → mark(U341(X1, X2, X3))
U342(mark(X1), X2, X3) → mark(U342(X1, X2, X3))
U343(mark(X1), X2, X3) → mark(U343(X1, X2, X3))
U344(mark(X1), X2, X3) → mark(U344(X1, X2, X3))
fst(mark(X)) → mark(fst(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2, X3) → mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3) → mark(U52(X1, X2, X3))
U53(mark(X1), X2, X3) → mark(U53(X1, X2, X3))
U54(mark(X1), X2, X3) → mark(U54(X1, X2, X3))
U55(mark(X1), X2) → mark(U55(X1, X2))
U56(mark(X)) → mark(U56(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X1), X2) → mark(U62(X1, X2))
U63(mark(X)) → mark(U63(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U73(mark(X)) → mark(U73(X))
U81(mark(X1), X2) → mark(U81(X1, X2))
U82(mark(X1), X2) → mark(U82(X1, X2))
U83(mark(X)) → mark(U83(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X1), X2) → mark(U92(X1, X2))
U93(mark(X)) → mark(U93(X))
tail(mark(X)) → mark(tail(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNaturalKind(X)) → isNaturalKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isLNatKind(X)) → isLNatKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNatural(X)) → isNatural(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isLNat(X)) → isLNat(proper(X))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U111(X1, X2)) → U111(proper(X1), proper(X2))
proper(U112(X)) → U112(proper(X))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U131(X)) → U131(proper(X))
proper(snd(X)) → snd(proper(X))
proper(splitAt(X1, X2)) → splitAt(proper(X1), proper(X2))
proper(U141(X)) → U141(proper(X))
proper(U151(X)) → U151(proper(X))
proper(U161(X)) → U161(proper(X))
proper(U171(X1, X2)) → U171(proper(X1), proper(X2))
proper(U172(X)) → U172(proper(X))
proper(U181(X1, X2)) → U181(proper(X1), proper(X2))
proper(U182(X1, X2)) → U182(proper(X1), proper(X2))
proper(U183(X)) → U183(proper(X))
proper(U191(X1, X2)) → U191(proper(X1), proper(X2))
proper(U192(X1, X2)) → U192(proper(X1), proper(X2))
proper(U193(X)) → U193(proper(X))
proper(U201(X1, X2, X3)) → U201(proper(X1), proper(X2), proper(X3))
proper(U202(X1, X2, X3)) → U202(proper(X1), proper(X2), proper(X3))
proper(U203(X1, X2, X3)) → U203(proper(X1), proper(X2), proper(X3))
proper(U204(X1, X2, X3)) → U204(proper(X1), proper(X2), proper(X3))
proper(U205(X1, X2)) → U205(proper(X1), proper(X2))
proper(U206(X)) → U206(proper(X))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2, X3)) → U22(proper(X1), proper(X2), proper(X3))
proper(U211(X)) → U211(proper(X))
proper(U23(X1, X2, X3)) → U23(proper(X1), proper(X2), proper(X3))
proper(U221(X)) → U221(proper(X))
proper(U24(X1, X2)) → U24(proper(X1), proper(X2))
proper(U231(X1, X2)) → U231(proper(X1), proper(X2))
proper(U232(X)) → U232(proper(X))
proper(U241(X1, X2, X3)) → U241(proper(X1), proper(X2), proper(X3))
proper(U242(X1, X2, X3)) → U242(proper(X1), proper(X2), proper(X3))
proper(U243(X1, X2, X3)) → U243(proper(X1), proper(X2), proper(X3))
proper(U244(X1, X2, X3)) → U244(proper(X1), proper(X2), proper(X3))
proper(U245(X1, X2)) → U245(proper(X1), proper(X2))
proper(U246(X)) → U246(proper(X))
proper(U251(X1, X2, X3)) → U251(proper(X1), proper(X2), proper(X3))
proper(U252(X1, X2, X3)) → U252(proper(X1), proper(X2), proper(X3))
proper(U253(X1, X2, X3)) → U253(proper(X1), proper(X2), proper(X3))
proper(U254(X1, X2, X3)) → U254(proper(X1), proper(X2), proper(X3))
proper(U255(X1, X2)) → U255(proper(X1), proper(X2))
proper(U256(X)) → U256(proper(X))
proper(U261(X1, X2)) → U261(proper(X1), proper(X2))
proper(U262(X)) → U262(proper(X))
proper(U271(X1, X2)) → U271(proper(X1), proper(X2))
proper(U272(X)) → U272(proper(X))
proper(U281(X1, X2)) → U281(proper(X1), proper(X2))
proper(U282(X1, X2)) → U282(proper(X1), proper(X2))
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(natsFrom(X)) → natsFrom(proper(X))
proper(s(X)) → s(proper(X))
proper(U291(X1, X2, X3)) → U291(proper(X1), proper(X2), proper(X3))
proper(U292(X1, X2, X3)) → U292(proper(X1), proper(X2), proper(X3))
proper(U293(X1, X2, X3)) → U293(proper(X1), proper(X2), proper(X3))
proper(U294(X1, X2, X3)) → U294(proper(X1), proper(X2), proper(X3))
proper(head(X)) → head(proper(X))
proper(afterNth(X1, X2)) → afterNth(proper(X1), proper(X2))
proper(U301(X1, X2, X3)) → U301(proper(X1), proper(X2), proper(X3))
proper(U302(X1, X2)) → U302(proper(X1), proper(X2))
proper(U303(X1, X2)) → U303(proper(X1), proper(X2))
proper(U304(X1, X2)) → U304(proper(X1), proper(X2))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U311(X1, X2)) → U311(proper(X1), proper(X2))
proper(U312(X1, X2)) → U312(proper(X1), proper(X2))
proper(pair(X1, X2)) → pair(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U321(X1, X2, X3, X4)) → U321(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U322(X1, X2, X3, X4)) → U322(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U323(X1, X2, X3, X4)) → U323(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U324(X1, X2, X3, X4)) → U324(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U325(X1, X2, X3, X4)) → U325(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U326(X1, X2, X3, X4)) → U326(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U327(X1, X2)) → U327(proper(X1), proper(X2))
proper(U34(X1, X2)) → U34(proper(X1), proper(X2))
proper(U331(X1, X2, X3)) → U331(proper(X1), proper(X2), proper(X3))
proper(U332(X1, X2)) → U332(proper(X1), proper(X2))
proper(U333(X1, X2)) → U333(proper(X1), proper(X2))
proper(U334(X1, X2)) → U334(proper(X1), proper(X2))
proper(U341(X1, X2, X3)) → U341(proper(X1), proper(X2), proper(X3))
proper(U342(X1, X2, X3)) → U342(proper(X1), proper(X2), proper(X3))
proper(U343(X1, X2, X3)) → U343(proper(X1), proper(X2), proper(X3))
proper(U344(X1, X2, X3)) → U344(proper(X1), proper(X2), proper(X3))
proper(fst(X)) → fst(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2, X3)) → U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3)) → U52(proper(X1), proper(X2), proper(X3))
proper(U53(X1, X2, X3)) → U53(proper(X1), proper(X2), proper(X3))
proper(U54(X1, X2, X3)) → U54(proper(X1), proper(X2), proper(X3))
proper(U55(X1, X2)) → U55(proper(X1), proper(X2))
proper(U56(X)) → U56(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X1, X2)) → U62(proper(X1), proper(X2))
proper(isPLNatKind(X)) → isPLNatKind(proper(X))
proper(U63(X)) → U63(proper(X))
proper(isPLNat(X)) → isPLNat(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U73(X)) → U73(proper(X))
proper(U81(X1, X2)) → U81(proper(X1), proper(X2))
proper(U82(X1, X2)) → U82(proper(X1), proper(X2))
proper(U83(X)) → U83(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X1, X2)) → U92(proper(X1), proper(X2))
proper(U93(X)) → U93(proper(X))
proper(tail(X)) → tail(proper(X))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(0) → ok(0)
proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNaturalKind(ok(X)) → ok(isNaturalKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isLNatKind(ok(X)) → ok(isLNatKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNatural(ok(X)) → ok(isNatural(X))
U106(ok(X)) → ok(U106(X))
isLNat(ok(X)) → ok(isLNat(X))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U111(ok(X1), ok(X2)) → ok(U111(X1, X2))
U112(ok(X)) → ok(U112(X))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U131(ok(X)) → ok(U131(X))
snd(ok(X)) → ok(snd(X))
splitAt(ok(X1), ok(X2)) → ok(splitAt(X1, X2))
U141(ok(X)) → ok(U141(X))
U151(ok(X)) → ok(U151(X))
U161(ok(X)) → ok(U161(X))
U171(ok(X1), ok(X2)) → ok(U171(X1, X2))
U172(ok(X)) → ok(U172(X))
U181(ok(X1), ok(X2)) → ok(U181(X1, X2))
U182(ok(X1), ok(X2)) → ok(U182(X1, X2))
U183(ok(X)) → ok(U183(X))
U191(ok(X1), ok(X2)) → ok(U191(X1, X2))
U192(ok(X1), ok(X2)) → ok(U192(X1, X2))
U193(ok(X)) → ok(U193(X))
U201(ok(X1), ok(X2), ok(X3)) → ok(U201(X1, X2, X3))
U202(ok(X1), ok(X2), ok(X3)) → ok(U202(X1, X2, X3))
U203(ok(X1), ok(X2), ok(X3)) → ok(U203(X1, X2, X3))
U204(ok(X1), ok(X2), ok(X3)) → ok(U204(X1, X2, X3))
U205(ok(X1), ok(X2)) → ok(U205(X1, X2))
U206(ok(X)) → ok(U206(X))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2), ok(X3)) → ok(U22(X1, X2, X3))
U211(ok(X)) → ok(U211(X))
U23(ok(X1), ok(X2), ok(X3)) → ok(U23(X1, X2, X3))
U221(ok(X)) → ok(U221(X))
U24(ok(X1), ok(X2)) → ok(U24(X1, X2))
U231(ok(X1), ok(X2)) → ok(U231(X1, X2))
U232(ok(X)) → ok(U232(X))
U241(ok(X1), ok(X2), ok(X3)) → ok(U241(X1, X2, X3))
U242(ok(X1), ok(X2), ok(X3)) → ok(U242(X1, X2, X3))
U243(ok(X1), ok(X2), ok(X3)) → ok(U243(X1, X2, X3))
U244(ok(X1), ok(X2), ok(X3)) → ok(U244(X1, X2, X3))
U245(ok(X1), ok(X2)) → ok(U245(X1, X2))
U246(ok(X)) → ok(U246(X))
U251(ok(X1), ok(X2), ok(X3)) → ok(U251(X1, X2, X3))
U252(ok(X1), ok(X2), ok(X3)) → ok(U252(X1, X2, X3))
U253(ok(X1), ok(X2), ok(X3)) → ok(U253(X1, X2, X3))
U254(ok(X1), ok(X2), ok(X3)) → ok(U254(X1, X2, X3))
U255(ok(X1), ok(X2)) → ok(U255(X1, X2))
U256(ok(X)) → ok(U256(X))
U261(ok(X1), ok(X2)) → ok(U261(X1, X2))
U262(ok(X)) → ok(U262(X))
U271(ok(X1), ok(X2)) → ok(U271(X1, X2))
U272(ok(X)) → ok(U272(X))
U281(ok(X1), ok(X2)) → ok(U281(X1, X2))
U282(ok(X1), ok(X2)) → ok(U282(X1, X2))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
natsFrom(ok(X)) → ok(natsFrom(X))
s(ok(X)) → ok(s(X))
U291(ok(X1), ok(X2), ok(X3)) → ok(U291(X1, X2, X3))
U292(ok(X1), ok(X2), ok(X3)) → ok(U292(X1, X2, X3))
U293(ok(X1), ok(X2), ok(X3)) → ok(U293(X1, X2, X3))
U294(ok(X1), ok(X2), ok(X3)) → ok(U294(X1, X2, X3))
head(ok(X)) → ok(head(X))
afterNth(ok(X1), ok(X2)) → ok(afterNth(X1, X2))
U301(ok(X1), ok(X2), ok(X3)) → ok(U301(X1, X2, X3))
U302(ok(X1), ok(X2)) → ok(U302(X1, X2))
U303(ok(X1), ok(X2)) → ok(U303(X1, X2))
U304(ok(X1), ok(X2)) → ok(U304(X1, X2))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U311(ok(X1), ok(X2)) → ok(U311(X1, X2))
U312(ok(X1), ok(X2)) → ok(U312(X1, X2))
pair(ok(X1), ok(X2)) → ok(pair(X1, X2))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U321(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U321(X1, X2, X3, X4))
U322(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U322(X1, X2, X3, X4))
U323(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U323(X1, X2, X3, X4))
U324(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U324(X1, X2, X3, X4))
U325(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U325(X1, X2, X3, X4))
U326(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U326(X1, X2, X3, X4))
U327(ok(X1), ok(X2)) → ok(U327(X1, X2))
U34(ok(X1), ok(X2)) → ok(U34(X1, X2))
U331(ok(X1), ok(X2), ok(X3)) → ok(U331(X1, X2, X3))
U332(ok(X1), ok(X2)) → ok(U332(X1, X2))
U333(ok(X1), ok(X2)) → ok(U333(X1, X2))
U334(ok(X1), ok(X2)) → ok(U334(X1, X2))
U341(ok(X1), ok(X2), ok(X3)) → ok(U341(X1, X2, X3))
U342(ok(X1), ok(X2), ok(X3)) → ok(U342(X1, X2, X3))
U343(ok(X1), ok(X2), ok(X3)) → ok(U343(X1, X2, X3))
U344(ok(X1), ok(X2), ok(X3)) → ok(U344(X1, X2, X3))
fst(ok(X)) → ok(fst(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2), ok(X3)) → ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3)) → ok(U52(X1, X2, X3))
U53(ok(X1), ok(X2), ok(X3)) → ok(U53(X1, X2, X3))
U54(ok(X1), ok(X2), ok(X3)) → ok(U54(X1, X2, X3))
U55(ok(X1), ok(X2)) → ok(U55(X1, X2))
U56(ok(X)) → ok(U56(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X1), ok(X2)) → ok(U62(X1, X2))
isPLNatKind(ok(X)) → ok(isPLNatKind(X))
U63(ok(X)) → ok(U63(X))
isPLNat(ok(X)) → ok(isPLNat(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U73(ok(X)) → ok(U73(X))
U81(ok(X1), ok(X2)) → ok(U81(X1, X2))
U82(ok(X1), ok(X2)) → ok(U82(X1, X2))
U83(ok(X)) → ok(U83(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X1), ok(X2)) → ok(U92(X1, X2))
U93(ok(X)) → ok(U93(X))
tail(ok(X)) → ok(tail(X))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Q is empty.