U11#(tt, N, XS) | → | splitAt#(activate(N), activate(XS)) | | and#(tt, X) | → | activate#(X) |
sel#(N, XS) | → | isNatural#(N) | | U81#(tt, N, X, XS) | → | splitAt#(activate(N), activate(XS)) |
isLNat#(n__afterNth(V1, V2)) | → | isNatural#(activate(V1)) | | activate#(n__snd(X)) | → | snd#(X) |
afterNth#(N, XS) | → | isNatural#(N) | | U11#(tt, N, XS) | → | snd#(splitAt(activate(N), activate(XS))) |
take#(N, XS) | → | and#(isNatural(N), n__isLNat(XS)) | | fst#(pair(X, Y)) | → | and#(isLNat(X), n__isLNat(Y)) |
isLNat#(n__cons(V1, V2)) | → | activate#(V2) | | isLNat#(n__take(V1, V2)) | → | isNatural#(activate(V1)) |
U82#(pair(YS, ZS), X) | → | pair#(cons(activate(X), YS), ZS) | | isLNat#(n__take(V1, V2)) | → | activate#(V1) |
isNatural#(n__s(V1)) | → | isNatural#(activate(V1)) | | U51#(tt, N, XS) | → | activate#(N) |
take#(N, XS) | → | U101#(and(isNatural(N), n__isLNat(XS)), N, XS) | | head#(cons(N, XS)) | → | activate#(XS) |
snd#(pair(X, Y)) | → | isLNat#(X) | | isLNat#(n__take(V1, V2)) | → | and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
fst#(pair(X, Y)) | → | U21#(and(isLNat(X), n__isLNat(Y)), X) | | isPLNat#(n__pair(V1, V2)) | → | activate#(V1) |
isLNat#(n__tail(V1)) | → | activate#(V1) | | activate#(n__head(X)) | → | head#(X) |
U91#(tt, XS) | → | activate#(XS) | | U81#(tt, N, X, XS) | → | activate#(N) |
activate#(n__isLNat(X)) | → | isLNat#(X) | | activate#(n__splitAt(X1, X2)) | → | splitAt#(X1, X2) |
U101#(tt, N, XS) | → | splitAt#(activate(N), activate(XS)) | | activate#(n__tail(X)) | → | tail#(X) |
U82#(pair(YS, ZS), X) | → | cons#(activate(X), YS) | | U41#(tt, N) | → | s#(activate(N)) |
isPLNat#(n__splitAt(V1, V2)) | → | and#(isNatural(activate(V1)), n__isLNat(activate(V2))) | | head#(cons(N, XS)) | → | U31#(and(isNatural(N), n__isLNat(activate(XS))), N) |
U51#(tt, N, XS) | → | activate#(XS) | | isLNat#(n__natsFrom(V1)) | → | activate#(V1) |
activate#(n__sel(X1, X2)) | → | sel#(X1, X2) | | isNatural#(n__head(V1)) | → | activate#(V1) |
afterNth#(N, XS) | → | and#(isNatural(N), n__isLNat(XS)) | | natsFrom#(N) | → | isNatural#(N) |
fst#(pair(X, Y)) | → | isLNat#(X) | | sel#(N, XS) | → | U51#(and(isNatural(N), n__isLNat(XS)), N, XS) |
isNatural#(n__s(V1)) | → | activate#(V1) | | isLNat#(n__afterNth(V1, V2)) | → | activate#(V2) |
isLNat#(n__cons(V1, V2)) | → | and#(isNatural(activate(V1)), n__isLNat(activate(V2))) | | splitAt#(s(N), cons(X, XS)) | → | and#(isNatural(N), n__and(isNatural(X), n__isLNat(activate(XS)))) |
isLNat#(n__tail(V1)) | → | isLNat#(activate(V1)) | | splitAt#(s(N), cons(X, XS)) | → | U81#(and(isNatural(N), n__and(isNatural(X), n__isLNat(activate(XS)))), N, X, activate(XS)) |
isLNat#(n__cons(V1, V2)) | → | isNatural#(activate(V1)) | | take#(N, XS) | → | isNatural#(N) |
isLNat#(n__afterNth(V1, V2)) | → | and#(isNatural(activate(V1)), n__isLNat(activate(V2))) | | head#(cons(N, XS)) | → | isNatural#(N) |
isPLNat#(n__splitAt(V1, V2)) | → | activate#(V2) | | isNatural#(n__sel(V1, V2)) | → | and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
isNatural#(n__sel(V1, V2)) | → | isNatural#(activate(V1)) | | activate#(n__afterNth(X1, X2)) | → | afterNth#(X1, X2) |
isLNat#(n__natsFrom(V1)) | → | isNatural#(activate(V1)) | | U11#(tt, N, XS) | → | activate#(XS) |
activate#(n__take(X1, X2)) | → | take#(X1, X2) | | isPLNat#(n__splitAt(V1, V2)) | → | isNatural#(activate(V1)) |
isLNat#(n__snd(V1)) | → | isPLNat#(activate(V1)) | | isLNat#(n__snd(V1)) | → | activate#(V1) |
activate#(n__and(X1, X2)) | → | and#(X1, X2) | | snd#(pair(X, Y)) | → | U61#(and(isLNat(X), n__isLNat(Y)), Y) |
U41#(tt, N) | → | cons#(activate(N), n__natsFrom(s(activate(N)))) | | splitAt#(s(N), cons(X, XS)) | → | isNatural#(N) |
splitAt#(s(N), cons(X, XS)) | → | activate#(XS) | | U41#(tt, N) | → | activate#(N) |
U101#(tt, N, XS) | → | fst#(splitAt(activate(N), activate(XS))) | | sel#(N, XS) | → | and#(isNatural(N), n__isLNat(XS)) |
U51#(tt, N, XS) | → | afterNth#(activate(N), activate(XS)) | | tail#(cons(N, XS)) | → | isNatural#(N) |
isLNat#(n__take(V1, V2)) | → | activate#(V2) | | tail#(cons(N, XS)) | → | and#(isNatural(N), n__isLNat(activate(XS))) |
isNatural#(n__sel(V1, V2)) | → | activate#(V2) | | snd#(pair(X, Y)) | → | and#(isLNat(X), n__isLNat(Y)) |
splitAt#(s(N), cons(X, XS)) | → | isNatural#(X) | | activate#(n__pair(X1, X2)) | → | pair#(X1, X2) |
head#(cons(N, XS)) | → | and#(isNatural(N), n__isLNat(activate(XS))) | | activate#(n__0) | → | 0# |
U81#(tt, N, X, XS) | → | activate#(X) | | isPLNat#(n__pair(V1, V2)) | → | and#(isLNat(activate(V1)), n__isLNat(activate(V2))) |
tail#(cons(N, XS)) | → | U91#(and(isNatural(N), n__isLNat(activate(XS))), activate(XS)) | | U82#(pair(YS, ZS), X) | → | activate#(X) |
U81#(tt, N, X, XS) | → | U82#(splitAt(activate(N), activate(XS)), activate(X)) | | afterNth#(N, XS) | → | U11#(and(isNatural(N), n__isLNat(XS)), N, XS) |
natsFrom#(N) | → | U41#(isNatural(N), N) | | tail#(cons(N, XS)) | → | activate#(XS) |
U21#(tt, X) | → | activate#(X) | | U61#(tt, Y) | → | activate#(Y) |
isPLNat#(n__pair(V1, V2)) | → | isLNat#(activate(V1)) | | isNatural#(n__sel(V1, V2)) | → | activate#(V1) |
U101#(tt, N, XS) | → | activate#(XS) | | U71#(tt, XS) | → | pair#(nil, activate(XS)) |
isPLNat#(n__splitAt(V1, V2)) | → | activate#(V1) | | U71#(tt, XS) | → | nil# |
isLNat#(n__fst(V1)) | → | activate#(V1) | | splitAt#(0, XS) | → | isLNat#(XS) |
isLNat#(n__afterNth(V1, V2)) | → | activate#(V1) | | U11#(tt, N, XS) | → | activate#(N) |
activate#(n__cons(X1, X2)) | → | cons#(X1, X2) | | isLNat#(n__fst(V1)) | → | isPLNat#(activate(V1)) |
activate#(n__natsFrom(X)) | → | natsFrom#(X) | | isPLNat#(n__pair(V1, V2)) | → | activate#(V2) |
U31#(tt, N) | → | activate#(N) | | activate#(n__fst(X)) | → | fst#(X) |
activate#(n__s(X)) | → | s#(X) | | U51#(tt, N, XS) | → | head#(afterNth(activate(N), activate(XS))) |
activate#(n__nil) | → | nil# | | splitAt#(0, XS) | → | U71#(isLNat(XS), XS) |
isNatural#(n__head(V1)) | → | isLNat#(activate(V1)) | | isLNat#(n__cons(V1, V2)) | → | activate#(V1) |
U71#(tt, XS) | → | activate#(XS) | | U101#(tt, N, XS) | → | activate#(N) |
U81#(tt, N, X, XS) | → | activate#(XS) |
U101(tt, N, XS) | → | fst(splitAt(activate(N), activate(XS))) | | U11(tt, N, XS) | → | snd(splitAt(activate(N), activate(XS))) |
U21(tt, X) | → | activate(X) | | U31(tt, N) | → | activate(N) |
U41(tt, N) | → | cons(activate(N), n__natsFrom(s(activate(N)))) | | U51(tt, N, XS) | → | head(afterNth(activate(N), activate(XS))) |
U61(tt, Y) | → | activate(Y) | | U71(tt, XS) | → | pair(nil, activate(XS)) |
U81(tt, N, X, XS) | → | U82(splitAt(activate(N), activate(XS)), activate(X)) | | U82(pair(YS, ZS), X) | → | pair(cons(activate(X), YS), ZS) |
U91(tt, XS) | → | activate(XS) | | afterNth(N, XS) | → | U11(and(isNatural(N), n__isLNat(XS)), N, XS) |
and(tt, X) | → | activate(X) | | fst(pair(X, Y)) | → | U21(and(isLNat(X), n__isLNat(Y)), X) |
head(cons(N, XS)) | → | U31(and(isNatural(N), n__isLNat(activate(XS))), N) | | isLNat(n__nil) | → | tt |
isLNat(n__afterNth(V1, V2)) | → | and(isNatural(activate(V1)), n__isLNat(activate(V2))) | | isLNat(n__cons(V1, V2)) | → | and(isNatural(activate(V1)), n__isLNat(activate(V2))) |
isLNat(n__fst(V1)) | → | isPLNat(activate(V1)) | | isLNat(n__natsFrom(V1)) | → | isNatural(activate(V1)) |
isLNat(n__snd(V1)) | → | isPLNat(activate(V1)) | | isLNat(n__tail(V1)) | → | isLNat(activate(V1)) |
isLNat(n__take(V1, V2)) | → | and(isNatural(activate(V1)), n__isLNat(activate(V2))) | | isNatural(n__0) | → | tt |
isNatural(n__head(V1)) | → | isLNat(activate(V1)) | | isNatural(n__s(V1)) | → | isNatural(activate(V1)) |
isNatural(n__sel(V1, V2)) | → | and(isNatural(activate(V1)), n__isLNat(activate(V2))) | | isPLNat(n__pair(V1, V2)) | → | and(isLNat(activate(V1)), n__isLNat(activate(V2))) |
isPLNat(n__splitAt(V1, V2)) | → | and(isNatural(activate(V1)), n__isLNat(activate(V2))) | | natsFrom(N) | → | U41(isNatural(N), N) |
sel(N, XS) | → | U51(and(isNatural(N), n__isLNat(XS)), N, XS) | | snd(pair(X, Y)) | → | U61(and(isLNat(X), n__isLNat(Y)), Y) |
splitAt(0, XS) | → | U71(isLNat(XS), XS) | | splitAt(s(N), cons(X, XS)) | → | U81(and(isNatural(N), n__and(isNatural(X), n__isLNat(activate(XS)))), N, X, activate(XS)) |
tail(cons(N, XS)) | → | U91(and(isNatural(N), n__isLNat(activate(XS))), activate(XS)) | | take(N, XS) | → | U101(and(isNatural(N), n__isLNat(XS)), N, XS) |
natsFrom(X) | → | n__natsFrom(X) | | isLNat(X) | → | n__isLNat(X) |
nil | → | n__nil | | afterNth(X1, X2) | → | n__afterNth(X1, X2) |
cons(X1, X2) | → | n__cons(X1, X2) | | fst(X) | → | n__fst(X) |
snd(X) | → | n__snd(X) | | tail(X) | → | n__tail(X) |
take(X1, X2) | → | n__take(X1, X2) | | 0 | → | n__0 |
head(X) | → | n__head(X) | | s(X) | → | n__s(X) |
sel(X1, X2) | → | n__sel(X1, X2) | | pair(X1, X2) | → | n__pair(X1, X2) |
splitAt(X1, X2) | → | n__splitAt(X1, X2) | | and(X1, X2) | → | n__and(X1, X2) |
activate(n__natsFrom(X)) | → | natsFrom(X) | | activate(n__isLNat(X)) | → | isLNat(X) |
activate(n__nil) | → | nil | | activate(n__afterNth(X1, X2)) | → | afterNth(X1, X2) |
activate(n__cons(X1, X2)) | → | cons(X1, X2) | | activate(n__fst(X)) | → | fst(X) |
activate(n__snd(X)) | → | snd(X) | | activate(n__tail(X)) | → | tail(X) |
activate(n__take(X1, X2)) | → | take(X1, X2) | | activate(n__0) | → | 0 |
activate(n__head(X)) | → | head(X) | | activate(n__s(X)) | → | s(X) |
activate(n__sel(X1, X2)) | → | sel(X1, X2) | | activate(n__pair(X1, X2)) | → | pair(X1, X2) |
activate(n__splitAt(X1, X2)) | → | splitAt(X1, X2) | | activate(n__and(X1, X2)) | → | and(X1, X2) |
activate(X) | → | X |
U11#(tt, N, XS) → splitAt#(activate(N), activate(XS)) | and#(tt, X) → activate#(X) |
U81#(tt, N, X, XS) → splitAt#(activate(N), activate(XS)) | sel#(N, XS) → isNatural#(N) |
isLNat#(n__afterNth(V1, V2)) → isNatural#(activate(V1)) | activate#(n__snd(X)) → snd#(X) |
afterNth#(N, XS) → isNatural#(N) | U11#(tt, N, XS) → snd#(splitAt(activate(N), activate(XS))) |
take#(N, XS) → and#(isNatural(N), n__isLNat(XS)) | fst#(pair(X, Y)) → and#(isLNat(X), n__isLNat(Y)) |
isLNat#(n__cons(V1, V2)) → activate#(V2) | isLNat#(n__take(V1, V2)) → isNatural#(activate(V1)) |
isLNat#(n__take(V1, V2)) → activate#(V1) | isNatural#(n__s(V1)) → isNatural#(activate(V1)) |
take#(N, XS) → U101#(and(isNatural(N), n__isLNat(XS)), N, XS) | U51#(tt, N, XS) → activate#(N) |
head#(cons(N, XS)) → activate#(XS) | snd#(pair(X, Y)) → isLNat#(X) |
isLNat#(n__take(V1, V2)) → and#(isNatural(activate(V1)), n__isLNat(activate(V2))) | fst#(pair(X, Y)) → U21#(and(isLNat(X), n__isLNat(Y)), X) |
isPLNat#(n__pair(V1, V2)) → activate#(V1) | isLNat#(n__tail(V1)) → activate#(V1) |
activate#(n__head(X)) → head#(X) | U91#(tt, XS) → activate#(XS) |
U81#(tt, N, X, XS) → activate#(N) | activate#(n__isLNat(X)) → isLNat#(X) |
activate#(n__splitAt(X1, X2)) → splitAt#(X1, X2) | U101#(tt, N, XS) → splitAt#(activate(N), activate(XS)) |
activate#(n__tail(X)) → tail#(X) | isPLNat#(n__splitAt(V1, V2)) → and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
head#(cons(N, XS)) → U31#(and(isNatural(N), n__isLNat(activate(XS))), N) | U51#(tt, N, XS) → activate#(XS) |
isLNat#(n__natsFrom(V1)) → activate#(V1) | activate#(n__sel(X1, X2)) → sel#(X1, X2) |
afterNth#(N, XS) → and#(isNatural(N), n__isLNat(XS)) | isNatural#(n__head(V1)) → activate#(V1) |
natsFrom#(N) → isNatural#(N) | fst#(pair(X, Y)) → isLNat#(X) |
sel#(N, XS) → U51#(and(isNatural(N), n__isLNat(XS)), N, XS) | isNatural#(n__s(V1)) → activate#(V1) |
isLNat#(n__afterNth(V1, V2)) → activate#(V2) | isLNat#(n__cons(V1, V2)) → and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
isLNat#(n__tail(V1)) → isLNat#(activate(V1)) | splitAt#(s(N), cons(X, XS)) → and#(isNatural(N), n__and(isNatural(X), n__isLNat(activate(XS)))) |
splitAt#(s(N), cons(X, XS)) → U81#(and(isNatural(N), n__and(isNatural(X), n__isLNat(activate(XS)))), N, X, activate(XS)) | isLNat#(n__cons(V1, V2)) → isNatural#(activate(V1)) |
take#(N, XS) → isNatural#(N) | head#(cons(N, XS)) → isNatural#(N) |
isPLNat#(n__splitAt(V1, V2)) → activate#(V2) | isLNat#(n__afterNth(V1, V2)) → and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
isNatural#(n__sel(V1, V2)) → isNatural#(activate(V1)) | isNatural#(n__sel(V1, V2)) → and#(isNatural(activate(V1)), n__isLNat(activate(V2))) |
activate#(n__afterNth(X1, X2)) → afterNth#(X1, X2) | isLNat#(n__natsFrom(V1)) → isNatural#(activate(V1)) |
U11#(tt, N, XS) → activate#(XS) | activate#(n__take(X1, X2)) → take#(X1, X2) |
isPLNat#(n__splitAt(V1, V2)) → isNatural#(activate(V1)) | isLNat#(n__snd(V1)) → isPLNat#(activate(V1)) |
isLNat#(n__snd(V1)) → activate#(V1) | activate#(n__and(X1, X2)) → and#(X1, X2) |
snd#(pair(X, Y)) → U61#(and(isLNat(X), n__isLNat(Y)), Y) | splitAt#(s(N), cons(X, XS)) → isNatural#(N) |
splitAt#(s(N), cons(X, XS)) → activate#(XS) | U41#(tt, N) → activate#(N) |
U101#(tt, N, XS) → fst#(splitAt(activate(N), activate(XS))) | sel#(N, XS) → and#(isNatural(N), n__isLNat(XS)) |
U51#(tt, N, XS) → afterNth#(activate(N), activate(XS)) | tail#(cons(N, XS)) → isNatural#(N) |
isLNat#(n__take(V1, V2)) → activate#(V2) | tail#(cons(N, XS)) → and#(isNatural(N), n__isLNat(activate(XS))) |
isNatural#(n__sel(V1, V2)) → activate#(V2) | snd#(pair(X, Y)) → and#(isLNat(X), n__isLNat(Y)) |
splitAt#(s(N), cons(X, XS)) → isNatural#(X) | head#(cons(N, XS)) → and#(isNatural(N), n__isLNat(activate(XS))) |
U81#(tt, N, X, XS) → activate#(X) | isPLNat#(n__pair(V1, V2)) → and#(isLNat(activate(V1)), n__isLNat(activate(V2))) |
tail#(cons(N, XS)) → U91#(and(isNatural(N), n__isLNat(activate(XS))), activate(XS)) | U82#(pair(YS, ZS), X) → activate#(X) |
U81#(tt, N, X, XS) → U82#(splitAt(activate(N), activate(XS)), activate(X)) | afterNth#(N, XS) → U11#(and(isNatural(N), n__isLNat(XS)), N, XS) |
tail#(cons(N, XS)) → activate#(XS) | natsFrom#(N) → U41#(isNatural(N), N) |
U21#(tt, X) → activate#(X) | isPLNat#(n__pair(V1, V2)) → isLNat#(activate(V1)) |
U61#(tt, Y) → activate#(Y) | isNatural#(n__sel(V1, V2)) → activate#(V1) |
U101#(tt, N, XS) → activate#(XS) | isPLNat#(n__splitAt(V1, V2)) → activate#(V1) |
isLNat#(n__fst(V1)) → activate#(V1) | splitAt#(0, XS) → isLNat#(XS) |
isLNat#(n__afterNth(V1, V2)) → activate#(V1) | U11#(tt, N, XS) → activate#(N) |
isLNat#(n__fst(V1)) → isPLNat#(activate(V1)) | activate#(n__natsFrom(X)) → natsFrom#(X) |
isPLNat#(n__pair(V1, V2)) → activate#(V2) | U31#(tt, N) → activate#(N) |
activate#(n__fst(X)) → fst#(X) | U51#(tt, N, XS) → head#(afterNth(activate(N), activate(XS))) |
splitAt#(0, XS) → U71#(isLNat(XS), XS) | isLNat#(n__cons(V1, V2)) → activate#(V1) |
isNatural#(n__head(V1)) → isLNat#(activate(V1)) | U71#(tt, XS) → activate#(XS) |
U101#(tt, N, XS) → activate#(N) | U81#(tt, N, X, XS) → activate#(XS) |