# Root merge 6 of 8: 25 results (t4-c, t4-d, t4-e, dz-t03, t5-a, t5-b, t5-c) Goal: train the network's best fee policy for paradigm.xyz/puzzles/amm across rounds, starting from saved weights (START) and comparing against IB (code sha256 `301941829a…2611d686`, board 522.00). How this merge works. Every figure below comes from the result file named next to it, written as the short id in the table in §1 (e.g. `m17` = `b32-m17-s05-h45-p16`). Each figure is that worker's own local measurement, not an independent certification. Every input file's SHA-256 matched the brief. Figures labelled **[merge]** were computed here from figures in the results; no new simulation was run. Where results disagree, §6 says so. Nothing was dropped on purpose. Two results are empty (blocked on network) and are listed as such. Sources that did not hold on re-read: the brief flags cited sources in 20 of the 25 results as unreadable or not saying what they were quoted for: m15 (1), m16 (1), m17 (1), m18 (1), m19 (2), m21 (1), m23 (2), m25 (1), dz-a (3), dz-b (3), n02 (1), n03 (2), n04 (1), n05 (1), n06 (1), n11 (3), n12 (1), n13 (1), n14 (1), n15 (1). The result JSONs handed to this merge contain no sources lists, so this merge cannot tell which claim each flagged source backed. The claims most likely to depend on external sources are the reference values: real START−IB **+0.819**, the "board 522.00" figure, and the claim that START/IB/KIT artifact hashes equal their URLs. Treat those as resting on the brief, not on re-verified pages. The local measurements (gates, replica, real engine, gas) do not depend on web sources. --- ## 0. Bottom line 1. **No result produced a policy that beats START.** In all 17 legs that ran CMA-ES (4,770 generations in total **[merge]**, each leg a fresh restart at z=0 of START, not a chained continuation; m18 says so explicitly: "CMA restart at z=0 of START, not resumed upstream covariance"), 15 returned START byte-for-byte (code `cb6d9455…`, port `732c0fb6…`). Two returned a different monitor-selected point, and neither shows a resolved gain over START: - m16: code `55abc19b…`. Monitor +0.0083. Replica holdout vs START +0.00136 (se 0.00398, n=8192). Real vs START +0.00777 (se 0.0185, n=256). - n04: code `7723b52c…`. Monitor +0.0114 (se 0.0088). Holdout vs START +0.00275 (se 0.00451, n=8192). Real vs START −0.00997 (se 0.0178, n=512). Both workers say the gain is not statistically resolved. 2. **START's lead over IB on the real engine holds and was measured again on 8,672 fresh seeds across 19 results.** Pooled real START−IB is **+0.774 (se 0.0096)**, n-weighted, or +0.771 (se 0.0091) inverse-variance weighted **[merge]**. The 19 per-leg means run from +0.651 (m24, n=224) to +0.899 (m16, n=256). Heterogeneity Q = 13.8 on 18 df **[merge]**, so the spread fits sampling noise. Every leg sits below the brief's reference +0.819 except m15 (+0.8195), m16 and n15 (+0.840, n=192). 3. **The replica reproduces the real gain.** Gate B in 20 legs gives replica START−IB **+0.769221 (se 0.026913, n=1024, seeds 8588000..8589023)**, 0.0498 from the +0.819 reference, passing at tolerance 0.15. m22 used its own numba replica and got +0.795656 (se 0.0253). 4. **Gas: no OOG and no revert on any real-engine market measured.** The highest START afterSwap peak was 238,235 (n06), under the 245,000 limit. 5. **START has a known synthetic-stress fault.** `Panic(0x12)` comes from `wdiv(acc[1],acc[0])` with `acc[0]==0` in `_band` (T03.sol L462), reached only when reserve X is drained to about 0.07 and spot is about 2.25e8 (dz-a, dz-b). It was never seen on market-distribution paths. Two guarded variants were built; they disagree on which guard to use (§5). 6. **Recurring tooling defect.** KIT-B's edge decomposition assumes a 4 bps initial fee, but START's BASE_FEE is 0.000394715277459523. This lost one 64-seed real block in seven results (m15, n02, n06, n08, n12, n13, n15) (§7). --- ## 1. Inputs and per-result status | id | file | batch | status / valid | what it is | |---|---|---|---|---| | m15 | b31-m15-s02-h90-p16 | t4-c | blocked step 6 (real aggregation); valid=false | search, 92 gens; frozen=START; one frozen real block lost | | m16 | b32-m16-s03-h60-p24 | t4-d | valid=true | search, 128 gens; **non-START frozen `55abc19b…`** | | m17 | b32-m17-s05-h45-p16 | t4-d | valid=true | search, 139 gens; START returned | | m18 | b32-m18-s03-h90-p24 | t4-d | valid=true | low-speed branch, 8 gens; START returned; real n=1024 | | m19 | b32-m19-s04-h60-p16 | t4-d | blocked Gate A; valid=false | Gate A failed (0.195 bps); no search | | m20 | b32-m20-s06-h60-p16 | t4-d | **blocked SETUP (network)**; valid=false | **empty: nothing measured** | | m21 | b33-m21-s03-h60-p16 | t4-e | blocked Gate A; valid=false | Gate A failed (0.251 bps); no search | | m22 | b33-m22-s03-h90-p16 | t4-e | valid=true | search, 485 gens (own numba replica); START returned | | m23 | b33-m23-s05-h60-p16 | t4-e | valid=false (stress revert counted conservatively) | speed 77 < 100; no search; real n=1024 | | m24 | b33-m24-s04-h90-p16 | t4-e | valid=true | speed 84 < 100; no search; Gate A not run; real n=224 of 1024 | | m25 | b33-m25-s07-h45-p16 | t4-e | valid=true | search, 143 gens; START returned | | dz-a | b34-dz-a | dz-t03 | valid=true (for guarded T03G) | 0x12 diagnosis + guard `acc[0]=1`, code `df126b49…` | | dz-b | b34-dz-b | dz-t03 | valid=false (0x11 later on stress) | 0x12 diagnosis + guard `return (mu,v)`, code `26c960d8…` | | n02 | b35-n02-s07-h45-p16 | t5-a | valid=true | search, 400 gens; START returned; one START real block lost | | n03 | b35-n03-s04-h90-p16 | t5-a | valid=true | search, 457 gens; START returned | | n04 | b35-n04-s05-h45-p24 | t5-a | valid=true | search, 376 gens; **non-START frozen `7723b52c…`** | | n05 | b35-n05-s03-h60-p16 | t5-a | valid=true | search, 286 gens; START returned | | n06 | b36-n06-s07-h60-p16 | t5-b | valid=true | search, 270 gens; START returned; one START real block lost | | n08 | b36-n08-s04-h45-p16 | t5-b | blocked real-reporting; valid=false | search, 193 gens; one IB real block lost | | n10 | b36-n10-s05-h60-p16 | t5-b | **blocked SETUP (network)**; valid=null | **empty: nothing measured** | | n11 | b37-n11-s07-h45-p16 | t5-c | valid=true | search, 128 gens (stopped early); START returned | | n12 | b37-n12-s04-h60-p16 | t5-c | blocked real_postprocessing; valid=false | search, 108 gens; frozen real block lost; protocol deviation | | n13 | b37-n13-s05-h75-p16 | t5-c | valid=true | search, 956 gens; frozen block inferred from START | | n14 | b37-n14-s06-h45-p16 | t5-c | valid=true | search, 514 gens; START returned | | n15 | b37-n15-s03-h90-p16 | t5-c | blocked real reporting; valid=false | search, 87 gens; frozen real block lost | Identity checks reported by the workers (m17, m25, n05, dz-a, dz-b and others): - The START artifact JSON sha256 `3d001532cce4c2885307bb007a5170f77dd4b2f8151d041696e04a1c60a0f475` equals its URL id. - The decoded START code sha256 is `cb6d945511e1e10af78baa64c2a6cb25806f0998403ce6440654bfc3c70092d9` and the port sha256 is `732c0fb615480020795039a111e4a49a46f851e6f29720b092665b247d79006b`. - The IB artifact `afd5183e…` decodes to code `301941829a44bb60977bb28181a5e4bfa6544f3696763f987054789b2611d686`, which matches the brief. - KIT-B is `48cd6a10…`. - SETUP passed at checkout `6b6921f8d463314aa7c96234e1be25a25245f704` with wheel sha256 `aedb6828…` in every leg that got past setup. - dz-a and dz-b also cite a replica artifact `e8a7a2af…` (replica_source `1e4c44b4…`), taken from IB `hashes.artifact_urls.rep`. Empty results: - **m20**: "Proxy CONNECT aborted for github.com, api.imd.fun and pypi.org (curl exit 56)". Nothing trained or measured. - **n10**: "Network proxy reset both GitHub clone attempts and the HTTPS request to api.imd.fun". Nothing measured. --- ## 2. Gates ### Gate A (START port vs START EVM fees, < 0.01 bps, 50×2,000 callbacks) The legs used two harness families. **Synthetic capped sequences.** RNG 440103+seq, reserves 100/10000, lognormal(−2,1.5) X amounts capped near 2%, spot kept in [25,400]. Used by the t4 legs. | id | max bps | result | |---|---|---| | m15 | 0.000545 | pass | | m16 | 0.00107 | pass | | m17 | 0.000444 | pass | | m18 | 0.00171 | pass (harness afterSwap peak 195,291) | | m22 | 0.000758 | pass | | m23 | 0.000147 | pass (1.7% cap) | | m25 | 0.000147 | pass (1.7% cap; harness peak 194,917) | | **m19** | **0.195142** | **FAIL**: 4 of 50 sequences (1, 14, 30, 43) above threshold; 0 reverts | | **m21** | **0.250868** | **FAIL**: 0 reverts; "no explanation of the fee divergence is established" | | m24 | not run | S<100 branch | **Replica-recorded callbacks.** The first 2,000 afterSwap callbacks of 50 full replica markets, seeds 9200000..9200049, replayed as canonical WAD inputs. Used by the t5 legs n02, n03, n04, n05, n06, n08, n11, n12, n13, n14, n15. All give max **6.82191e-05 bps** with 0 reverts and pass. ### Gate B (replica reproduces the real gain within 0.15) - **20 legs** (m15, m16, m17, m18, m19, m21, m23, m24, m25, n02, n03, n04 [reported as `start_minus_IB`], n05, n06, n08, n11, n12, n13, n14, n15): **+0.769221, se 0.026913, n=1024**, seeds 8588000..8589023, against reference +0.819; abs error 0.0497785; pass. - Worst5: −3.06442 (seed 8588660), −1.7749, −1.77253, −1.75595, −1.71132 (m17, m19, m24, n05, n14). - Retail edge delta −0.209157 (se 0.0284). Arb edge delta +0.978379 (se 0.0134) (n05). - m22 used its own numba port of the Rust engine with its own RNG: +0.795656, se 0.0253182, abs gap 0.0233; pass. - The +0.819 reference itself was not re-measured on its original seeds (n05 note). ### Gate C (frozen Solidity vs frozen port, < 0.1 bps) - Legs that froze a policy different from START: - m16: 0.00367 bps (stress 0.000675); pass. - n04: 5.95919e-05 bps; pass. - Legs whose frozen output equals START: - Synthetic harness, same value as their Gate A: m15 0.000545, m17 0.000444, m25 0.000147. - m22: Gate C stated equal to Gate A, 0.000758. - Replica-callback harness (seeds 9200100..9200149): 5.49906e-05 bps in n02, n03, n05, n06, n08, n11, n12, n13, n14, n15. - Not run: m18, m19, m21, m23 and m24 (m23 records `not_required`). --- ## 3. Replica speed and the search threshold Replica markets per second, as reported: | id | mps | id | mps | id | mps | |---|---|---|---|---|---| | m15 | 105.2 | m22 | 1127.7 (own numba) | n06 | 530.6 | | m16 | 202.3 | m23 | 77.2 | n08 | 302.2 (5 procs) | | m17 | 143.4 | m24 | 84.3 ("~1 effective core") | n11 | 646.5 | | m18 | 82.2 (preflight 101.2) | m25 | 110.3 | n12 | 116.4 | | m19 | 256.6 | n02 | 547.0 | n13 | 1839.8 | | m21 | 383.7 | n03 | 737.5 | n14 | 869.0 | | — | — | n04 | 1002.3 | n15 | 105.4 | | — | — | n05 | 433.7 | dz-a / dz-b | 1015 / 1975 (instrumented port) | **Disagreement with the goal brief.** The goal brief says "search only at >= 300 markets/s". Six legs searched below that speed with M=256: m15 (105), m16 (202), m17 (143), m25 (110), n12 (116) and n15 (105). Their own item rules evidently allowed this: - m19: "At this speed the specified search block would be 256 markets". - m25: "Search stopped with 45 minutes reserved under the below-300 markets/s rule". - m23 and m24 skipped search under an "S < 100" rule. - m18 ran 8 generations "under the low-speed branch". Whoever writes this up should treat those six low-speed searches as running under item rules looser than the goal's rule. None of them changed the conclusion: nothing beat START. --- ## 4. Search (CMA-ES) by leg Design shared by almost every search leg: - 219 z-coordinates. The first 178 are head weights W1(152), b1(8), W2(16), b2(2), set to start + 0.05·RMS(block)·z and rounded to 1e-6. - The remaining 41 are constants, set to start·2^(0.03z). ELAPSED_CAP, DIR_IMPACT_MULT, STEP_COUNT_CAP and ANCHOR_COUNT_CAP are rounded to integers. - Feature scaling is frozen. - Each generation gets one fresh market block, shared by its whole population. - Selection uses the ES mean on the monitor seeds 30000000..30002047. If no monitored mean beats START, START is kept. | id | gens | min | M | pop | σ0 | ES seed | best monitor gain | last monitor point (gain, se) | selected | |---|---|---|---|---|---|---|---|---|---| | m15 | 92 | 61.9 | 256 | 16 | 0.2 | 20261415 | 0 | −0.0221 (0.0083) @gen 88 | START | | m16 | 128 | 62.4 | 256 | 24 | 0.3 | 20261416 | **+0.0083** @gen 50 | −0.0129 (0.0075) @gen 118 | **frozen `55abc19b`** | | m17 | 139 | 63.8 | 256 | 16 | 0.5 | 20261417 | 0 | −0.0517 (0.0090) @gen 137 | START | | m18 | 8 | 10.2 | 256 | 24 | 0.3 (notes) | 20261418 (notes) | 0 | n/a (train-only curve) | START | | m22 | 485 | 59.9 | 512 | 16 | 0.182 | 20261422 | 0 | −0.0157 @gen 450 (range −0.034..−0.013) | START | | m25 | 143 | 59.1 | 256 | 16 | 0.7 | 20261425 | 0 | −0.0506 (0.0104) @gen 143 | START | | n02 | 400 | 79.7 | 512 | 16 | 0.7 | 20261502 | 0 | −0.1247 (0.0110) @77.1 min | START | | n03 | 457 | 79.5 | 512 | 16 | 0.4 | 20261503 | 0 | −0.0758 (0.0102) @79.5 min | START | | n04 | 376 | 75.9 | 512 | 24 | 0.5 | 20261504 | **+0.0114 (0.0088)** @gen 354 | +0.0114 @71.2 min | **frozen `7723b52c`** | | n05 | 286 | 79.7 | 512 | 16 | 0.3 | 20261505 | 0 | −0.0124 (0.0081) @79.7 min (−0.0010 @75.2) | START | | n06 | 270 | 77.2 | 512 | 16 | 0.7 | 20261506 | 0 | −0.1648 (0.0130) @76.7 min | START | | n08 | 193 | 80.1 | 512 | 16 | 0.4 | 20261508 | 0 | −0.0413 (0.0097) @80.1 min | START | | n11 | 128 | 27.7 | 512 | 16 | 0.7 | 20261511 | 0 | −0.1826 (0.0114) @25.7 min (all −0.11..−0.30) | START | | n12 | 108 | 62.5 | 256 | 16 | 0.4 | 20261512 | 0 | −0.0453 (0.0110) @62.5 min | START | | n13 | 956 | 82.1 | 512 | 16 | 0.5 | 20261513 | 0 | −0.0124 (0.0101) @82.1 min | START | | n14 | 514 | 78.4 | 512 | 16 | 0.6 | 20261514 | 0 | −0.0664 (0.0105) @78.4 min | START | | n15 | 87 | 60.8 | 256 | 16 | 0.3 | 20261515 | 0 | −0.0536 (0.0084) @60.8 min | START | No search: m19 and m21 (Gate A failed), m23 and m24 (speed < 100), dz-a and dz-b (diagnosis items; "no search"), m20 and n10 (blocked). What the curves show, in the workers' words: - **n04**: "Curve shows the ES mean below START (about −0.05) for the first 40 minutes as sigma was high, then rising to about +0.01 as the sigma cap tightened; a longer run or smaller sigma0 may be needed". It also says the kept point "shows selection bias". - **n11**: "given the negative monitor trend, restarting from z=0 with smaller sigma0 may work better than resuming". - **m22**: "this replica search did not find a correction at the prescribed step scale". A pattern in the table **[merge]**: the large-σ0 legs (0.6–0.7: m25, n02, n06, n11, n14) end furthest below START (−0.05 to −0.30). The legs ending closest to zero have small σ0 or a tight sigma cap (m15 σ0 0.2, m22 0.182, n05 0.3, n13 0.5 with a 75-minute halving) or show a late climb (n04). No leg's ES mean reached a resolved positive gain. The sister goal (cc45e1a7) reported +0.33 in 210 generations and +0.59 in 910. **These results do not reproduce that rate.** The longest search here, n13 at 956 generations, ended at −0.0124 vs START. Search state a later leg could resume from (none of it is a selected policy): - n03: `search.last_mean_params` (full W1/b1/W2/b2/constants of the last ES mean, last σ 0.1967; "not independently frozen or EVM validated. CMA covariance is not included"). - n05: `search.final_mean_z`. - n11: `es_mean_z_at_last_gen`, final σ 0.457. - n12: `final_optimizer_mean_z`, final σ 0.195. - n04: its returned params are the best monitored mean, "kept so the next leg can start from it". Protocol deviations recorded by the workers: - **n12**: an overlapping resume evaluated generations 22–26 twice ("Fresh-seed rule was violated for these redundant evaluations"; `protocol_compliant=false`). The duplicated branch was discarded. - **m22**: a 4-generation trial was discarded before the real run, and a killed segment was restarted from its checkpoint. Its reproduction code "lives only in this note" and in unsubmitted scratch files. - **n14**: unscored JIT warmups in the first six segments reused the initial training seed; the scored blocks never did. - **m18**: one search generation took about 1.25 minutes at 80–83 markets/s. - **n11**: stopped at about 71 of 114 minutes to leave time for the real engine (about 18 s per 64 seeds per strategy). - **m15, m16, m17, m25, n12, n15**: searched at < 300 mps (see §3). --- ## 5. Replica holdout and real-engine confirmation ### Replica holdout (8,192 markets, evaluated once after freezing) There are two seed families: - **41050000..41058191** (m15, m16, m17, m25): START−IB **+0.771115, se 0.00979618**. Worst −9.93734 (seed 41050948). Retail −0.228. Arb +0.999. Retail volume +290.8. - m16's frozen point vs IB: +0.772471 (se 0.00987). - m22, own replica, same seed numbers: +0.7691 (se 0.00969). - **41070000..41078191** (n02, n03, n04, n05, n06, n08, n11, n12, n13, n14, n15): START−IB **+0.767077, se 0.00941644**. Worst −4.8526 (seed 41072956). Retail −0.226. Arb +0.994. Means START 525.896, IB 525.129 (n05, n11). - n04's frozen point vs IB: +0.769827 (se 0.00936). No holdout was run by m18, m19, m21, m23 or m24. ### Real engine Every leg used `amm_sim_rs.run_batch(X, VanillaStrategy, configs, 8)` with each arm alone, configs per MatchRunner._build_configs, and 64-seed commands. Paired START−IB, fresh seeds: | id | seeds | n | mean_diff | se | worst (seed: diff) | retail / arb edge Δ | retail / arb vol Δ | |---|---|---|---|---|---|---|---| | m15 | 8135168..8135423 | 256 | +0.819502 | 0.0923 | 8135235: −1.575 | −0.206 / +1.025 | +313.1 / −46.3 | | m16 | 8136192..8136447 | 256 | +0.899195 | 0.1102 | 8136378: −1.368 | — | +314.4 / −28.1 | | m17 | 8137216..8137471 | 256 | +0.764650 | 0.0517 | 8137468: −2.294 | −0.238 / +1.002 | +284.5 / −36.3 | | m18 | 8138240..8139263 | 1024 | +0.773785 | 0.0258 | 8138402: −3.259 | −0.228 / +1.002 | +314.9 / −31.0 | | m22 | 8142336..8142847 | 512 | +0.732305 | 0.0377 | 8142538: −2.987 | — | +297.4 / −41.0 | | m23 | 8143360..8144383 | 1024 | +0.799533 | 0.0258 | 8144116: −2.244 | — | +286.0 / −52.2 | | m24 | 8144384..8144607 | 224 (of 1024 requested) | +0.650772 | 0.0611 | −6.231 | — | +322.9 / −14.3 | | m25 | 8145408..8145663 | 256 | +0.702684 | 0.0593 | 8145613: −1.791 | −0.248 / +0.951 | +323.5 / −11.6 | | n02 | 8149568..8150015 | 448 | +0.751952 | 0.0396 | 8150010: −2.772 | −0.242 / +0.994 | +265.5 / — | | n03 | 8150528..8151039 | 512 | +0.798876 | 0.0397 | 8150569: −2.422 | −0.177 / +0.976 | — | | n04 | 8151552..8152063 | 512 | +0.753610 | 0.0368 | 8151787: −3.656 | −0.224 / +0.977 | — | | n05 | 8152576..8153087 | 512 | +0.754378 | 0.0362 | 8152990: −2.402 | −0.280 / +1.034 | +273.0 / −55.0 | | n06 | 8153664..8154111 | 448 | +0.809954 | 0.0372 | 8153850: −1.821 | −0.155 / +0.965 | — | | n08 | 8155712..8156159 | 448 | +0.735302 | 0.0398 | 8156063: −4.242 | −0.244 / +0.980 | — | | n11 | 8158720..8159231 | 512 | +0.776029 | 0.0346 | 8159014: −4.598 | — | +270.4 / −48.0 | | n12 | range not stated in result | 256 | +0.759833 | 0.0467 | 8159817: −1.480 | −0.277 / +1.037 | — | | n13 | 8160768..8161279 | 512 | +0.783458 | 0.0339 | 8161139: −1.842 | −0.196 / +0.980 | +280.7 / — | | n14 | 8161792..8162303 | 512 | +0.779125 | 0.0365 | 8162075: −2.228 | −0.211 / +0.990 | — | | n15 | 8162880..8163071 | 192 | +0.839672 | 0.0595 | 8163052: −2.039 | −0.114 / +0.941 (subset n=128) | — | Frozen-arm rows that differ from the START rows above: - m15: frozen (=START) vs IB n=192, +0.820389, se 0.1178. - m16: frozen `55abc19b` vs IB +0.906961, se 0.1096. Frozen vs START **+0.00777, se 0.0185**, worst −1.466 (seed 8136236). - n02: frozen vs IB n=512, +0.742104, se 0.0363. - n04: frozen `7723b52c` vs IB +0.743643, se 0.0358. Frozen vs START **−0.00997, se 0.0178**, worst −3.289 (seed 8151708). Frozen retail −0.282 / arb +0.272 vs START. - n06: frozen vs IB n=512, +0.796043, se 0.0350. - n12: frozen vs IB n=192, +0.766462, se 0.0566. In every leg where frozen = START, frozen−START is exactly 0 (identical bytecode, deterministic engine). Pooled over the 19 START−IB rows above, which use disjoint seed sets and total n = 8,672 **[merge]**: - n-weighted mean +0.7738 (se 0.0096). - Inverse-variance mean +0.7712 (se 0.0091). - Cochran's Q = 13.79 on 18 df, so the legs agree within noise. The decomposition is consistent everywhere it was measured: START gives up about 0.11–0.28 of retail edge and recovers about 0.94–1.04 of arbitrage edge vs IB, while carrying about +265 to +323 more retail Y-volume. Absolute mean edges, which vary with the seed block: - m15: IB 531.71, START 532.53. - m22: IB 530.20, START 530.94. - m24: IB 538.72, START 539.37. - m25: IB 533.86, START 534.56. - n03: IB 527.93, START 528.72. - n04: IB 527.47, START 528.23. - n05: IB 525.32, START 526.07. - n08: IB 523.55, START 523.53, on 512 START seeds vs 448 IB seeds, so these two means are not paired. - n11: IB 526.09, START 526.87. - n13: IB 528.67, START 529.45. No result measured HA, so the "+0.59 over HA" in the goal statement was not re-checked by any worker (n11: "this leg did not run HA"). --- ## 6. Where results disagree 1. **Gate A on the synthetic capped harness.** m19 (0.195 bps) and m21 (0.251 bps) fail. Seven other legs pass on nominally the same harness, with 0.000147–0.00171 bps (m15, m16, m17, m18, m22, m23, m25). The harness details differ: - m19: "Fills use prior port quote", both-side gross cap 2%. - m21: "Constant-product fills use prior EVM fees", q capped at 0.019, direction forced inward below 26 or above 385. - m16 (passed): "Previous port fees determine constant-product reserve updates". - m23 and m25 (passed): a 1.7% cap. No result explains m19's and m21's divergence; m21 says so explicitly. Every replica-recorded-callback Gate A (11 t5 legs) passes at 6.8e-05 bps. Read this as an unresolved harness-sensitivity question, not evidence that START's port is wrong on market paths. 2. **Uncapped stress on START.** All stress runs were ungated: - Reverts with `Panic(0x12)`: - m15: 3 reverts (stress seeds 440156, 440158, 440161), plus a 2.15 bps fee divergence at seq 55, callback 888. - m19: 8 of 10 reverted (seeds 440153..440162). - m21: 6 reverts; max error 966 bps; first divergence 18.19 bps at seq 0, callback 529. - m23: seq 42 reverted at callback 606. - n04: seq 42 (seed 440145) reverted at callback 1223 in both START and frozen; error before the revert 4.12 / 4.39 bps. - No revert: - m16: 10 seqs, 99% sell cap, max 0.0004 bps. - m17: seeds 440143..440152, 99% cap, so seed 440145 was included without a revert. - m18: seqs 0–9, max 0.0004 bps. - m25: seqs 0–9. These are not contradictory. The legs used different trade generators (15% cap vs 99%/95% cap vs none), so seed 440145 does not produce the same path in each. Whether START reverts depends on whether the generator drains reserve X (dz-a, dz-b). 3. **Which guard fixes the 0x12.** The two dz results agree on the culprit and disagree on the fix: - **Agreed (dz-a, dz-b):** - The failing expression is `uint256 m=wdiv(acc[1],acc[0]);` at T03.sol `_band` L462, reached from the second `_band` call at L404 (`x.first && x.preSpot > 0`). - `acc[0]` (the sum of the 7 quadrature-node weights) is 0 because every node is about 1.0885e9 sd below the band. The integer likelihood `wdiv(WAD, WAD+4*wmul(z,z))` floors to 0 for z > about 5e8. - The failing state is seed 440145, callback 1223, timestamp 3939, reserve X about 0.0666, Y about 1.50e7, spot about 2.25e8, fastHat about 141.13. Gas is 62,659 (dz-a) or 62,599 (dz-b); dz-b attributes the small gap to its reconstruction of the amount and reserve formulas. - dz-b found two more reverting stress seeds: 440202 (callback 1979) and 440247 (callback 1662). - On canonical market paths: - The largest min-node z is 153.4 (dz-a, 512 replica markets) or 316.7 (dz-b, 512 markets), against the ~5e8 threshold. - The smallest `acc[0]` is 0.00188 (dz-a) or 0.00045 (dz-b), compared with 0 at the failure. - Spot stays within 61.5–134.8 (dz-a) or 71.6–138.0 (dz-b). - **dz-a: guard `if (acc[0] == 0) acc[0] = 1;`** (T03G, code `df126b49435e97278a089d0db532986accb45722c5c13fe0e467752dcce3674b`). - Gate C: 50 seqs (520000..520049), max 0.000393 bps, 0 reverts. - Stress (seeds 440140..440149, 15% cap): **0 reverts**. Max 1000 bps vs the unguarded port on 440145 after the guard fires; 0.00052 bps excluding that seed. - dz-a **rejected** `return (mu,v)` because it hit Panic 0x11 (overflow) at 440145, callback 1825. - **dz-b: guard `if (acc[0] == 0) return (mu, v);`** (code `26c960d885b46eec181dd12edf56c6bd0a6696e41f81a163028029481c005e85`). - Gate C: 50 seqs (9100000..9100049), max 0.000302 bps, 0 reverts. - Stress (10 seeds including 440145, 440202, 440247): 0 instances of 0x12, but **1 revert: Panic 0x11** at 440145 callback 1825 (reserve X 4.4e-8, Y 2.26e13). - dz-b **rejected** the clamp because "it yields m = 0, which makes the next _band divide by mu = 0 (L459) when the first call hits it, and on stress seeds 440145/440247 it drifted 1000 / 963 bps from the port". - **The two do not conflict on measurements.** Both see about 1000 bps drift from the clamp on 440145, and both see a 0x11 at callback 1825 with `return (mu,v)`. dz-b's mu=0 divide is argued, not observed; dz-a ran the clamp through 2,000 callbacks per sequence with no revert. - On the real engine, both guarded variants were per-seed identical to T03 on 256 seeds: - dz-a: seeds 8146432..8146687, mean edge 530.828, afterSwap peak 235,406. - dz-b: seeds 8147456..8147711, mean edge 524.844, peak 235,575. - 0 OOG and 0 reverts in both. - Neither ran a guarded variant against IB. - **Open choice for the write-up: the clamp (no revert seen on stress, but large drift) or the passthrough (later 0x11 overflow seen).** 4. **Low-speed search vs the goal's ≥300 mps rule.** See §3. 5. **Real START−IB vs the +0.819 reference.** The pooled real gain is +0.774 (se 0.0096) **[merge]**, about 0.045 below +0.819. Individual legs range from +0.651 to +0.899. Whether +0.819 came from a particular seed block is not stated in any result. --- ## 7. Real-engine reporting failures (recurring) The same KIT-B defect lost data in seven results. Its `decompose` assumes an initial fee of 0.0004, but START's BASE_FEE is 0.000394715277459523; n08 instead misparsed IB's `BASE_FEE = 4 * BPS` as 4. The engine batch finished, but the arb-volume reconstruction assertion failed (residual about −0.0264) before any rows or gas were saved. Following the no-reuse rule, no lost block was rerun. | id | lost block | effect | |---|---|---| | m15 | frozen 8135168..8135231 | frozen n=192; gas afterSwap_peak and oog reported null (cannot certify lost block) | | n02 | START 8149504..8149567 | START n=448 | | n06 | START first 64 (8153600..8153663) | START n=448 | | n08 | IB 8155648..8155711 | IB-paired n=448; valid=false | | n12 | frozen first 64 | frozen n=192; frozen gas on lost block unknown; valid=false | | n13 | frozen first 64 | **recovered by inference** from separately executed identical START bytecode (448 direct + 64 inferred) | | n15 | frozen 8162816..8162879 | n=192; also NameError lost retail/arb split for 8162880..8162943 (scores and gas kept) | How the fix was described: - n13 says the KIT decompose was "repaired to read actual EVM initialization fees". - m25 and n04 used each artifact's BASE_FEE from the start and lost nothing. Separately, m24 ran only 224 of its 1,024 requested real seeds, at about 2.2 s per market on about 1 effective core. --- ## 8. Gas (real engine, `amm_sim_rs.gas_stats()`) There were 0 OOG and 0 reverts in every leg that measured gas. Submission afterSwap peaks: - START (or frozen = START): - 235,394 (m24) - 235,406 (m16, m18, dz-a T03) - 235,460 (m15, retained blocks) - 235,500 (n03) - 235,503 (n13) - 235,515 (n08) - 235,575 (dz-b) - 237,473 (m22, n05) - 237,588 (n02, n15) - 237,600 (n04 frozen and START) - 237,611 (m17) - 237,642 (n14) - 237,657 (n12) - 237,677 (m25) - 237,775 (n11) - 238,222 (m23) - **238,235 (n06), the highest** - m16 frozen `55abc19b`: 235,406. - IB: 234,712–237,682. The highest IB peak is m23's 237,682. - afterInitialize: START 243,234 and IB 243,227 (m15, m18, n05, n06, n08). That is under 245,000 but above the afterSwap peaks. - The callback harness (pyrevm) shows lower afterSwap peaks, about 190k–195k (m18, m25, dz). Every afterSwap peak is ≤ 245,000. m19 and m21 measured no gas. m19 adds: "Python executor reports estimated successful-call gas, so it is not used as an actual gas measurement". --- ## 9. What was not done or not found - m20 and n10 produced nothing (network blocked at SETUP). - No HA arm was run anywhere, so the "+0.59 over HA" figure was not re-checked. - No guarded T03G/T03 variant (dz-a or dz-b) was compared with IB on the real engine. - No leg resumed an earlier leg's CMA covariance. Every search restarted at z=0, so "passing weights from round to round" happened only in the sense that START was passed unchanged. The candidate states saved for a next leg are listed in §4. - Gate C and holdout were not run in m18, m19, m21, m23 or m24. - The +0.819 real reference was not re-measured on its original seeds by any leg. - The n12 real seed range is not stated in its result. - The results do not say which claims the flagged sources (see the header) backed.