I'm designing a cell simulation program. One aspect that I wanted to simulate in a simplified way was the actual chemistry of biology; respiration, photosynthesis, energy storage, enzymes, and catalysts.
For obvious reasons, actually simulating chemistry is currently impossible. But what about a mathematical approximation?
Let's fill our universe with elements... like 2, 3, 5, 7, 11, 13, etc. Elements are prime numbers, and our universe will be populated exclusively with prime numbers below 100. Molecules will be any non-element number > 1. So 42 is a compound of elements 2, 3, and 7. The obvious difference between this and chemistry is that multiplucation is commutative:
50 = 2*5*5 = 5*2*5
But as an approximation it has obvious similarities. We can always decompose any compound into its elements by factoring it. And a compound has 'features' (visible digits) unrelated to its elements.
Next we need a rule for whether energy is gained or lost when molecules are joined or split. The rule can't strongly favor joining or splitting, or the universe will dissolve either into elements that have no interest in joining, or into massive compounds with no free elements.
My idea is the average value of the digits indicates the 'energy' of a particular number. This means that the element '3' does not join easily into compounds 9, 27, or 81... but has no problem becoming compound 243 (3^5). Similarly, the unstable compounds 9 and 27 (not naturally occurring in this universe) will easily 'burn' and join into compound 243 or split into element 3, releasing energy.
Even oxygen and hydrogen, mixed, do not burn without an initial input of energy. I'm not sure what heuristic for the triggering energy is appropriate. The triggering energy should be independent of the energy lost or gained, and like using the 'average of the digits' that indicates bond energy, it should be related to features of the number. This will allow the full range of chemical reactions: self-sustaining endothermic (cold-packs), self-sustaining exothermic (fire), and the less visible (but more common) endo- and exo- reactions that do not sustain themselves at normal temperatures.
The final requirement to simulate biological processes is the idea of catalysts and enzymes. Compounds that facilitate the joining or splitting of compounds by decreasing the triggering energy. My thought is that an enzyme matches a compound when the final digits match. How many final digits is specified by the first digit. For example, the compound 5214664 could act as an enzyme for the compound 14664. Uncertain is how to decide when the catalyst will be endothermic or exothermic (splitting the compound to release the most energy, or splitting it in the way that takes the least energy), and when a catalyst will instead encourage joining two compounts into a larger one (again, endo or exothermically). It is ok if the features that identify a catalyst are uncommon or improbable... catalysts are pretty rare in real chemistry too. Without billions of years of evolution discovering and manufacturing them, molecules that act like catalysts would be pretty uncommon.
The end result of this thought experiment would be to have a simplified chemistry model to design a cell inside. This simplified universe would not simulate form... the structure of molecules will not be simulated. Cell walls will be a mathematical construct rather than a chemical substance. The same is true for the DNA of the cells... simulating the chemical processes that copy genes is beyond the project scope.
But I can simulate everything else, in a reasonably efficient manner. Enzymes, receptors, metabolism, exo and endocytosis. The important thing from my point of view is that biological chemistry in this simulated universe can be emergent. Rather than being coded in a particular way, the metabolic processes of a simulated cell will actually metabolize... even if the metabolism is just another way of saying 'factoring'.