Alphabet

0:A
active:A → A
afterNth:A → A → A
and:A → A → A
app:(A → A) → A → A
cons:A → A → A
fst:A → A
head:A → A
map:(A → A) → A → A
mark:A → A
natsFrom:A → A
nil:A
pair:A → A → A
s:A → A
sel:A → A → A
snd:A → A
splitAt:A → A → A
tail:A → A
take:A → A → A
tt:A
u11:A → A → A → A → A
u12:A → A → A

Variables

X:A
Y:A
U:A
V:A
W:A
P:A
X1:A
Y1:A
U1:A
V1:A
W1:A
P1:A
X2:A
Y2:A
U2:A
V2:A
W2:A
P2:A
X3:A
Y3:A
U3:A
V3:A
W3:A
P3:A
X4:A
Y4:A
U4:A
V4:A
W4:A
P4:A
X5:A
Y5:A
U5:A
V5:A
W5:A
P5:A
X6:A
Y6:A
U6:A
V6:A
W6:A
P6:A
X7:A
Y7:A
U7:A
V7:A
W7:A
P7:A
X8:A
Y8:A
U8:A
V8:A
W8:A
P8:A
X9:A
Y9:A
U9:A
V9:A
W9:A
P9:A
X10:A
Y10:A
U10:A
V10:A
W10:A
P10:A
X11:A
Y11:A
U11:A
V11:A
W11:A
P11:A
X12:A
Y12:A
U12:A
V12:A
W12:A
P12:A
X13:A
Y13:A
U13:A
V13:A
W13:A
P13:A
X14:A
Y14:A
U14:A
V14:A
W14:A
P14:A
X15:A
Y15:A
U15:A
V15:A
W15:A
P15:A
X16:A
Y16:A
U16:A
V16:A
W16:A
P16:A
X17:A
Y17:A
U17:A
V17:A
W17:A
P17:A
X18:A
Y18:A
U18:A
V18:A
W18:A
P18:A
X19:A
Y19:A
U19:A
V19:A
W19:A
P19:A
X20:A
Y20:A
U20:A
V20:A
W20:A
P20:A
X21:A
Y21:A
U21:A
V21:A
W21:A
P21:A
X22:A
Y22:A
U22:A
V22:A
W22:A
P22:A
X23:A
Y23:A
U23:A
V23:A
W23:A
P23:A
X24:A
Y24:A
U24:A
V24:A
W24:A
P24:A
X25:A
Y25:A
U25:A
V25:A
W25:A
P25:A
X26:A
Y26:A
U26:A
V26:A
I26:A → A
J26:A → A
X27:A
Y27:A
G27:A → A
V27:A

Rules

active · (u11 · tt · X · Y · U)⇒mark · (u12 · (splitAt · X · U) · Y)
active · (u12 · (pair · V · W) · P)⇒mark · (pair · (cons · P · V) · W)
active · (afterNth · X1 · Y1)⇒mark · (snd · (splitAt · X1 · Y1))
active · (and · tt · U1)⇒mark · U1
active · (fst · (pair · V1 · W1))⇒mark · V1
active · (head · (cons · P1 · X2))⇒mark · P1
active · (natsFrom · Y2)⇒mark · (cons · Y2 · (natsFrom · (s · Y2)))
active · (sel · U2 · V2)⇒mark · (head · (afterNth · U2 · V2))
active · (snd · (pair · W2 · P2))⇒mark · P2
active · (splitAt · 0 · X3)⇒mark · (pair · nil · X3)
active · (splitAt · (s · Y3) · (cons · U3 · V3))⇒mark · (u11 · tt · Y3 · U3 · V3)
active · (tail · (cons · W3 · P3))⇒mark · P3
active · (take · X4 · Y4)⇒mark · (fst · (splitAt · X4 · Y4))
mark · (u11 · U4 · V4 · W4 · P4)⇒active · (u11 · (mark · U4) · V4 · W4 · P4)
mark · tt⇒active · tt
mark · (u12 · X5 · Y5)⇒active · (u12 · (mark · X5) · Y5)
mark · (splitAt · U5 · V5)⇒active · (splitAt · (mark · U5) · (mark · V5))
mark · (pair · W5 · P5)⇒active · (pair · (mark · W5) · (mark · P5))
mark · (cons · X6 · Y6)⇒active · (cons · (mark · X6) · Y6)
mark · (afterNth · U6 · V6)⇒active · (afterNth · (mark · U6) · (mark · V6))
mark · (snd · W6)⇒active · (snd · (mark · W6))
mark · (and · P6 · X7)⇒active · (and · (mark · P6) · X7)
mark · (fst · Y7)⇒active · (fst · (mark · Y7))
mark · (head · U7)⇒active · (head · (mark · U7))
mark · (natsFrom · V7)⇒active · (natsFrom · (mark · V7))
mark · (s · W7)⇒active · (s · (mark · W7))
mark · (sel · P7 · X8)⇒active · (sel · (mark · P7) · (mark · X8))
mark · 0⇒active · 0
mark · nil⇒active · nil
mark · (tail · Y8)⇒active · (tail · (mark · Y8))
mark · (take · U8 · V8)⇒active · (take · (mark · U8) · (mark · V8))
u11 · (mark · W8) · P8 · X9 · Y9⇒u11 · W8 · P8 · X9 · Y9
u11 · U9 · (mark · V9) · W9 · P9⇒u11 · U9 · V9 · W9 · P9
u11 · X10 · Y10 · (mark · U10) · V10⇒u11 · X10 · Y10 · U10 · V10
u11 · W10 · P10 · X11 · (mark · Y11)⇒u11 · W10 · P10 · X11 · Y11
u11 · (active · U11) · V11 · W11 · P11⇒u11 · U11 · V11 · W11 · P11
u11 · X12 · (active · Y12) · U12 · V12⇒u11 · X12 · Y12 · U12 · V12
u11 · W12 · P12 · (active · X13) · Y13⇒u11 · W12 · P12 · X13 · Y13
u11 · U13 · V13 · W13 · (active · P13)⇒u11 · U13 · V13 · W13 · P13
u12 · (mark · X14) · Y14⇒u12 · X14 · Y14
u12 · U14 · (mark · V14)⇒u12 · U14 · V14
u12 · (active · W14) · P14⇒u12 · W14 · P14
u12 · X15 · (active · Y15)⇒u12 · X15 · Y15
splitAt · (mark · U15) · V15⇒splitAt · U15 · V15
splitAt · W15 · (mark · P15)⇒splitAt · W15 · P15
splitAt · (active · X16) · Y16⇒splitAt · X16 · Y16
splitAt · U16 · (active · V16)⇒splitAt · U16 · V16
pair · (mark · W16) · P16⇒pair · W16 · P16
pair · X17 · (mark · Y17)⇒pair · X17 · Y17
pair · (active · U17) · V17⇒pair · U17 · V17
pair · W17 · (active · P17)⇒pair · W17 · P17
cons · (mark · X18) · Y18⇒cons · X18 · Y18
cons · U18 · (mark · V18)⇒cons · U18 · V18
cons · (active · W18) · P18⇒cons · W18 · P18
cons · X19 · (active · Y19)⇒cons · X19 · Y19
afterNth · (mark · U19) · V19⇒afterNth · U19 · V19
afterNth · W19 · (mark · P19)⇒afterNth · W19 · P19
afterNth · (active · X20) · Y20⇒afterNth · X20 · Y20
afterNth · U20 · (active · V20)⇒afterNth · U20 · V20
snd · (mark · W20)⇒snd · W20
snd · (active · P20)⇒snd · P20
and · (mark · X21) · Y21⇒and · X21 · Y21
and · U21 · (mark · V21)⇒and · U21 · V21
and · (active · W21) · P21⇒and · W21 · P21
and · X22 · (active · Y22)⇒and · X22 · Y22
fst · (mark · U22)⇒fst · U22
fst · (active · V22)⇒fst · V22
head · (mark · W22)⇒head · W22
head · (active · P22)⇒head · P22
natsFrom · (mark · X23)⇒natsFrom · X23
natsFrom · (active · Y23)⇒natsFrom · Y23
s · (mark · U23)⇒s · U23
s · (active · V23)⇒s · V23
sel · (mark · W23) · P23⇒sel · W23 · P23
sel · X24 · (mark · Y24)⇒sel · X24 · Y24
sel · (active · U24) · V24⇒sel · U24 · V24
sel · W24 · (active · P24)⇒sel · W24 · P24
tail · (mark · X25)⇒tail · X25
tail · (active · Y25)⇒tail · Y25
take · (mark · U25) · V25⇒take · U25 · V25
take · W25 · (mark · P25)⇒take · W25 · P25
take · (active · X26) · Y26⇒take · X26 · Y26
take · U26 · (active · V26)⇒take · U26 · V26
map · (λ%X:A.I26 · %X) · nil⇒nil
map · (λ%Y:A.J26 · %Y) · (cons · X27 · Y27)⇒cons · (J26 · X27) · (map · (λ%Z:A.J26 · %Z) · Y27)
app · (λ%U:A.G27 · %U) · V27⇒G27 · V27