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...