Does complexity keep rising when only one partner's code runs?
Complexity rises at emergence and then stops rising on every substrate the programme has tested, and each bet so far changed what a tape can hold or spend rather than what it is to its partner. DESIGN §1.3 sweep 10 changed that — under a host interaction only the first tape's code runs — and the sweep has finished. Under it nothing emerged at all: the host arms are barren at both caps while the concat controls beside them held replicators, so the asymmetry did not lower the plateau, it kept replication from arising. With no host run to read, the pre-registered refutation and the distinct_lineages secondary cannot be evaluated; the concat controls, the same worlds sweep 9's control ran on its seeds 1–90, are read as the reference.
Question
Complexity rises at emergence and then stops rising on every substrate the programme has tested: an instruction cost, a structured world, a tape free to lengthen, and a contested energy stock. Every bet so far changed what a tape can hold or spend. None changed what a tape is to its partner: under the default interaction the two tapes are concatenated and the program that runs is the pair, so neither tape is the other's environment for longer than one interaction.
Sweep 10 changes that. Under interaction = host the instruction pointer ranges over the first tape's bytes only, while both heads still range over the whole pair: the second tape never runs a byte of its own and is pure read/write substrate. A tape's fate then depends on how the tapes that host it treat it as data, which is a pressure on what a tape looks like and not only on what it does — the asymmetry every host–parasite system in the literature rests on. The question this page will answer: does complexity keep rising when only one partner's code runs?
Method
The sweep crosses the interaction mode — concat, the whole-concatenation interaction every earlier sweep ran, as the control, against host — with the two room-to-grow caps whose plateau sweep 8 measured, max_tape_len 128 and 256, since an asymmetry is only readable where the dominant tape has room to get more complicated. Every arm runs 90 seeds, the control included, at 128×128 for 20 000 epochs at the emergent mutation rate, from a 64-byte initial tape.
The reading is pre-registered (DESIGN §1.3 sweep 10) and identical to sweep 9's, taken on emerged runs only — a crossing the replicator census or the copy rate confirmed, not every crossing the detector flagged. Per run, the median of the last decile of the post-crossing samples against the median of the first decile. A run counts as measured where the first decile of dominant_instruction_count medians above zero, so there is a ratio to take; a run carrying no conserved_core_bytes sample at all over that span is unmeasured, since the core clause cannot be read on it. That measured rule is a post-hoc amendment (docs/design_record.md, 2026-09-21), made after sweep 9's data were seen: as registered, the rule also wanted a nonzero first-decile median of the conserved core, and the Result below states what that rule read beside every reading taken under the amended one. A measured run keeps rising when dominant_instruction_count rises by at least 20% and conserved_core_bytes does not fall in bytes over the same span, so a core at zero at both ends has not fallen; it plateaus when the last decile sits within ±10% of the first. An arm keeps rising where at least half its measured runs do and plateaus where at least half plateau; an arm clearing both bars reads mixed, never rising, and one clearing neither, its runs having mostly fallen, reads neither. An arm reads at all on two measured emerged runs, or on a blank block of ten, which reads as an arm holding no replicator to read rather than as an arm still to be tested. dominant_compressed_len is printed beside them and decides nothing: it saturates at the cap plus zlib's 11-byte envelope.
The secondary reading is on distinct_lineages: a host arm whose last decile holds more lineages than the concat control at the same cap is an arms race preventing fixation, which is the mechanism an asymmetry is supposed to supply. It supports the primary reading and never stands in for it.
Result
no host arm held a replicator Every host arm is barren — host 128 (0 of 90) and host 256 (0 of 90) held no replicator at all, against 5 of 90 in concat 128 and 4 of 90 in concat 256, the concat controls at the same caps — so there is no complexity in them to read and the refutation condition cannot be evaluated.
That reading is taken under the measured-run rule as amended after the data were seen (docs/design_record.md, 2026-09-21). Under the pre-registered rule 9 of the 9 emerged runs are unmeasured and no arm reads.
Every count on this page is read from the sweep's stored runs at render time, and the per-arm reading is the one the sweep page and its transition report draw. A blank block of ten reads as an arm holding no replicator (DESIGN §1.3, docs/design_record.md 2026-09-15); here the blank block is every run of every host arm. Running only the first tape's code did not lower the plateau: beside controls that held replicators it kept replication from arising at all, which is the mode's own null named under What would refute it. So the hypothesis is not refuted by a plateau and not supported either — the pre-registered test needs a host plateau to set beside a concat one, and there is none.
How often life emerged
| Arm | Terminal runs | Emerged | Rate | Control at the same cap | Against it |
|---|---|---|---|---|---|
| concat 128 control | 90 | 5 | 5 of 90 (6%) | — | — |
| concat 256 control | 90 | 4 | 4 of 90 (4%) | — | — |
| host 128 barren | 90 | 0 | 0 of 90 (0%) | concat 128 | p = 0.059 |
| host 256 barren | 90 | 0 | 0 of 90 (0%) | concat 256 | p = 0.12 |
Every host arm emerged at or below the concat control at its own cap; none of the differences reaches p < 0.05. host 128 (0 of 90) and host 256 (0 of 90) emerged in none of their runs and read barren: arms holding no replicator to read.
One row per arm. "Terminal runs" counts the runs of the arm that reached an end with at least one sample, "Emerged" the confirmed crossings among them, and "Rate" the second over the first. "Against it" is a two-sided Fisher exact test of the arm's emerged and unemerged runs against those of the control at the same max_tape_len — a dash for a control itself and for an arm with nothing terminal to test. It describes how often life emerged and decides nothing about the complexity reading below.
Pooled over caps, descriptive only. 0 of 180 runs of the host arms emerged against 9 of 180 of the concat controls (two-sided Fisher exact p = 0.0035). This pooling is not part of the pre-registered reading, which sets each arm against the control at its own cap.
Does complexity keep rising, arm by arm
| Arm | Emerged | Measured | Pre-registered unmeasured | Instructions | Conserved core | Compressed length | Distinct lineages | Rising | Plateau | Peak steal_rate | Reading |
|---|---|---|---|---|---|---|---|---|---|---|---|
| concat 128 | 5 / 90 | 5 | 5 | 20 → 18 | 0 → 0 | 139 → 139 | 37 → 2 | 1 / 5 | 2 / 5 | 0 | neither |
| concat 256 | 4 / 90 | 4 | 4 | 16 → 18 | 0 → 0 | 267 → 267 | 77 → 1 | 1 / 4 | 1 / 4 | 0 | neither |
| host 128 | 0 / 90 | 0 | 0 | — | — | — | — | 0 / 0 | 0 / 0 | 0 | barren |
| host 256 | 0 / 90 | 0 | 0 | — | — | — | — | 0 / 0 | 0 / 0 | 0 | barren |
Under the pre-registered rule 9 of the 9 emerged runs are unmeasured and no arm reads. Every reading above is taken under the measured-run rule as amended after this data was seen: the pre-registered rule wanted a nonzero first-decile median of the conserved core as well, and dropped every run whose dominant lineage conserved no byte. Read under the rule as it was registered, no arm of this sweep reaches the two measured runs a complexity verdict needs. The barren arms read barren under either rule: they hold no emerged run for any measured-run rule to drop.
The concat controls, as reference readings
Read under the amended rule, concat 128 has 1 rising and 2 plateauing of 5 measured runs and reads neither; concat 256 has 1 rising and 1 plateauing of 4 measured runs and reads neither.
The concat controls read as the reference for these worlds, with the pre-registered rule's result above them. They are, seed for seed, the worlds sweep 9's economy-off control ran on its seeds 1–90: both sweeps ran the default substrate as their control at the same caps, rate, size and seeds, and the engine is deterministic in its parameters and seed, so the same seeds emerged at the same epochs. They are separate runs in the database, but the two findings' controls are one control read twice, not independent evidence.
The secondary reading
The secondary reading is unreadable: host 128 and host 256 have no measured emerged run and so no distinct_lineages span to set above the concat controls'.
What would refute it
An asymmetric interaction is the programme's bet that what complexity was missing is a partner worth reading, not room or energy. It is refuted if the host arms plateau where their own concat controls plateau — same caps, same rate, same world — which would say that being hosted buys this substrate no structure. The mode carries its own null too: if nothing emerges at all under host across a full block of seeds, the arms say that halving a pair's code stops abiogenesis, not that asymmetry fails to raise the plateau.
Checked against the condition as worded: concat 128 reads neither and concat 256 reads neither. The condition cannot be evaluated: no host arm held a replicator, so none has a plateau to set beside its concat control's, and a control read alone says nothing about the treatment.
Evidence
Transition, flagged, census and arm are used here in the senses set out in the glossary.
Sweep: Asymmetric execution
Filled dots are runs a replicator confirmed emerged in; the line joins the median per value. Hollow dots are crossings the detector flagged that nothing confirmed. Hollow markers at the top count the runs with no emergence in 20000 epochs, the flagged-only ones among them.
Filled dots are runs a replicator confirmed emerged in; the line joins the median per value. Hollow dots are crossings the detector flagged that nothing confirmed. Hollow markers at the top count the runs with no emergence in 20000 epochs, the flagged-only ones among them.
Transitions and replicator counts
One row per finished run the detector flagged or that counted at least one replicator. "Transition epoch" is the detector's event; "Peak replicators" is the largest census the run reached, with the epoch it first reached it in brackets; "—" means the run never had a value.
| Run | Seed | Interaction | Transition epoch | Peak replicators | Min entropy_bits | Max copy_rate |
|---|---|---|---|---|---|---|
| Run #2210 (CSV) | 14 | concat | 4,170 | 0 | 4.98 | 0.00146 |
| Run #2267 (CSV) | 71 | concat | 5,880 | 81 (5,920) | 5.29 | 0.00409 |
| Run #2349 (CSV) | 63 | concat | 7,620 | 47 (12,350) | 5.9 | 0.00226 |
| Run #2363 (CSV) | 77 | concat | 7,690 | 107 (10,310) | 5.92 | 0.00562 |
| Run #2347 (CSV) | 61 | concat | 8,170 | 29 (9,480) | 5.88 | 0.00293 |
| Run #2204 (CSV) | 8 | concat | 9,510 | 68 (15,040) | 6.04 | 0.0126 |
| Run #2227 (CSV) | 31 | concat | 10,420 | 246 (13,890) | 6.49 | 0.0115 |
| Run #2289 (CSV) | 3 | concat | 16,880 | 55 (17,160) | 5.9 | 0.00287 |
| Run #2251 (CSV) | 55 | concat | 17,200 | 0 | 5.87 | 0.00275 |
Runs
Every run of the sweep, flagged or not, with its seed — the denominator of the rate above.
| Seed | Interaction | Max tape len | Status | Priority | Epochs done | Transition epoch | Census | |
|---|---|---|---|---|---|---|---|---|
| 61 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 62 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 63 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 64 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 65 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 66 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 67 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 68 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 69 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 70 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 71 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 72 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 73 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 74 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 75 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 76 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 77 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 78 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 79 | host | 128 | finished | 10 | 20,000 | — | — | Run |
| 80 | host | 128 | finished | 10 | 20,000 | — | — | Run |