| … | … | @@ -762,6 +762,54 @@ every obligate multicellular lineage are the same thing at different scales. |
| 762 | 762 | Recorded caveat: after widening the sweep to 9 sizes the program's printed small/large crossing |
| 763 | 763 | counts have wrong denominators; the matched-size table is the actual test and is unaffected. |
| 764 | 764 | |
| 765 | ### `rafcomp.c` — Test B: two rungs in one model, and Test A reverses |
| 766 | |
| 767 | `chemoton.c` derives compartment-level selection but still **supplies** φ as a per-unit |
| 768 | fold→catalysis map. `rung1.c` separately shows autocatalytic sets self-organising from random |
| 769 | chemistry. Test B chains them: catalytic output is the **size of the maxRAF of the reactions a |
| 770 | compartment actually holds** — closure is *computed*, never assigned. |
| 771 | |
| 772 | **Why it might fail, which is the point.** φ is intrinsic to a unit, so assortment shuffles good |
| 773 | units around without damaging them. RAF membership is a property of the **set** — a reaction is in |
| 774 | the RAF only if its reactants are producible and it is catalysed within the set present. Splitting a |
| 775 | compartment can therefore destroy the closure that made the parent productive even though every |
| 776 | individual reaction survives. That collides head-on with Test A. |
| 777 | |
| 778 | | cat. density | div size | random baseline | **fission** | fis control | **propagule** | prop control | |
| 779 | |---|---|---|---|---|---|---| |
| 780 | | 0.04 | 16 | 0.03 | **1.16** | 0.00 | 0.87 | 0.00 | |
| 781 | | 0.08 | 16 | 0.10 | **4.68** | 0.01 | 3.49 | 0.00 | |
| 782 | | 0.12 | 16 | 0.13 | **4.71** | 0.01 | 3.52 | 0.00 | |
| 783 | | 0.08 | 8 | 0.05 | 2.59 | 0.01 | 2.35 | 0.00 | |
| 784 | |
| 785 | **T1** RAFs form (mean maxRAF to 4.71). **T2** coupled beats the random-subset baseline in **6/6** |
| 786 | cells, ~36× at the top cell. **T3** the closure-blind control sits at **0.00–0.01 everywhere** — |
| 787 | without selection on closure, compartments hold essentially no RAF at all. **T4, the reversal: |
| 788 | fission beats the propagule bottleneck 5 cells to 0**, with the gap widening as compartments grow |
| 789 | (~0.2 at div size 8, ~1.2 at 16) — expected, since at size 8 compartments are small enough that both |
| 790 | modes assort similarly anyway. |
| 791 | |
| 792 | > **Test A: quality is per-unit → maximise variance, the bottleneck wins. |
| 793 | > Test B: quality is collective → variance destroys it, fission wins. |
| 794 | > Optimal assortment is a TRADE-OFF, not a maximum.** |
| 795 | |
| 796 | Both measured in the same machinery with the same controls, pointing opposite ways because the |
| 797 | *kind* of quality differs. Neither result alone yields this. |
| 798 | |
| 799 | **And it closes a loop with `linkage.c`.** The tension has a resolution we had already shown emerges: |
| 800 | **linkage**. Keeping co-functional parts physically together preserves combinations against |
| 801 | assortment while still permitting variance *between* units. That is the chromosome argument (Maynard |
| 802 | Smith & Szathmáry), arrived at here by chaining our own rungs rather than imported. The three results |
| 803 | compose: collective function needs its parts kept together (2→3), parasite purging needs variance |
| 804 | (Test A), and linkage buys both at once. |
| 805 | |
| 806 | **Honest bounds.** This is the first model in the arc with **two rungs at once** — an emergent RAF |
| 807 | (rung 1) inside compartments that build, grow and select themselves (rung 4), the second selecting on |
| 808 | the first. But they are **co-present and interacting, not one producing the other**: the self-building |
| 809 | chain stays open. And the reaction network is supplied exactly as in `rung1.c` — what emerges is |
| 810 | *which subset closes*, not the chemistry. Test B has also not had the matched-realized-size |
| 811 | correction that Test A required, so the reversal is established at matched division *threshold* only. |
| 812 | |
| 765 | 813 | ### Where Part C leaves rung 1→2 |
| 766 | 814 | |
| 767 | 815 | **Narrowed to one thing.** The circle that stood since the 14-experiment arc — privatization needs |
| … | … | @@ -813,6 +861,14 @@ transfer to 1→2 on its own — only Law 2 does. |
| 813 | 861 | - **Compartment-level selection need not be supplied** (`chemoton.c`) — coupling growth to the |
| 814 | 862 | chemistry's own output generates it with no fitness-proportional sampling anywhere, reproducing the |
| 815 | 863 | decreed version's size-threshold signature (PARTIAL: small 2/2, large 1/2). ✓ |
| 864 | - **Optimal assortment is a trade-off, not a maximum** (Test A vs Test B) — when catalytic quality is |
| 865 | per-unit, maximising variance wins (propagule beats fission); when it is a collective closure |
| 866 | property, variance destroys the closure and fission wins (5 cells to 0). The two point opposite ways |
| 867 | in the same machinery because the *kind* of quality differs, and `linkage.c` is the mechanism that |
| 868 | buys both at once. ✓ |
| 869 | - **Compartment selection survives collective quality** (`rafcomp.c`) — maxRAF 4.71 vs a random-subset |
| 870 | baseline of 0.13, with the closure-blind control at 0.00–0.01. First model in the arc holding two |
| 871 | rungs at once, though co-present rather than one producing the other. ✓ |
| 816 | 872 | - **Assortment variance, not compartment size, is the operative variable** (`chemoton.c` Test A) — |
| 817 | 873 | a single-unit propagule beats a 50/50 split by +1.14 φ at *matched realized size*, with the |
| 818 | 874 | advantage exactly zero where the two modes coincide (size ≤3) and peaking at +2.98 where they |
| … | … | @@ -849,12 +905,12 @@ Part A: `stream.c` `sns.c` `mess3.c` `learn.c` `critical.c` `competitive.c` `da- |
| 849 | 905 | Part B: `lawspace.c` `rung1.c` `rung2.c` `rung3.c` `evoworld.c` `rung34.c` `rung45.c` `bridge.c` |
| 850 | 906 | `rung45dup.c` `flagella.c` `gard.c` `gardenv.c` `digigard.c` `template.c` `templceil.c` `spatial.c` `window.c` `polymer.c` `ribozyme.c` `bridges.c` `coemerge.c` `integrated.c`. |
| 851 | 907 | Part C (boundary kind, 2026-07-31): `coupling.c` `partition.c` `signal.c` `linkage.c` |
| 852 | | `byproduct.c` `chemoton.c`; |
| 908 | `byproduct.c` `chemoton.c` `rafcomp.c`; |
| 853 | 909 | Φ_r probes `phir.h` (shared estimator) `ribophi.c` `rung34phi.c` `gardphi.c`. |
| 854 | 910 | Agent line: `belief_field_agent.c` `agent_learn.c`. |
| 855 | 911 | `src/`: original Phase-1 filesystem active-perception agent (active > random search). |
| 856 | 912 | |
| 857 | 913 | Per-experiment write-ups: `coupling.md` `partition.md` `signal.md` `byproduct.md` `chemoton.md` |
| 858 | | `ribophi.md` `rung34phi.md` `gardphi.md`. |
| 914 | `rafcomp.md` `ribophi.md` `rung34phi.md` `gardphi.md`. |
| 859 | 915 | |
| 860 | 916 | Each `*.c` is standalone: `cc -O2 -std=c11 -o X X.c -lm && ./X`. |