expressing mitosis in λ-calculus

April 20, 2025

the λ-calculus only consists of 3 basic building blocks: variables, functions, and applications.

$$ e ::= x \mid \lambda x.e \mid e_1e_2 $$

the Y combinator lets you perform recursion in the λ-calculus by having a function apply a copy of itself to itself

the Y combinator is defined as

$$ Y = \lambda f.(\lambda x.f(xx))(\lambda x.f(xx)) $$

it satisfies $Y f = f(Y f)$. it works because $\lambda x.xx$, when applied to itself, copies itself forever, and $f$ gives the copying something to do.

i think the Y combinator kind of resembles biological cell division. you can think of $\lambda$ as the cell membrane, which is just a scope boundary that delimits where the genome is active; $f$ as gene expression (the proteins and RNA that read the genome and run the cell); and $x$ as the genome itself.

in this analogy, $xx$ would be the replication fork, where the genome is both the thing being read by the cell's machinery and the thing being copied for the daughter cell.

so $Y f = f(Y f)$ is a cell running its program and producing daughter cells that run the same program, which produce more daughter cells that run the same program.

the two $\lambda x.f(xx)$ in Y are asymmetric because one gets applied to the other. daughter cells are actually symmetric. the expressions are identical, though, so you can swap them and nothing changes. i don't think this matters much.

$\Omega = (\lambda x.xx)(\lambda x.xx)$ diverges because there's no base case. likewise, cells stop dividing because of telomere shortening, contact inhibition, and apoptosis. and cancer is what happens when those stop working.

p.s. i find it funny how $Y$ looks like a replication fork and $xx$ looks like the double helix...