cons | : | [nat × list] ⟶ list |
emap | : | [nat → nat × list] ⟶ list |
nil | : | list |
twice | : | [nat → nat] ⟶ nat → nat |
F | : | nat → nat |
Z | : | nat → nat |
U | : | nat |
V | : | list |
I | : | nat → nat |
P | : | nat |
emap(F, nil) | ⇒ | nil |
emap(Z, cons(U, V)) | ⇒ | cons(Z · U, emap(λ%X:nat.twice(Z) · %X, V)) |
twice(I) · P | ⇒ | I · (I · P) |