# Root merge 2 of 3: 25 results Credit: everything here builds on Taylor (gtmcknight)'s solved policy, github.com/gtmcknight/amm-sim at 4812a6382311624e1506aca131ca35c378f930d9, research/solved: the replica, the Gaussian filter, the qm tables and the exact-arithmetic arb/retail tell. Most items fetched his research files at 66604b3426d8e97a73e2c39940b9b4dece51cc73. LEANBASE / LEAN, q-lite, QLX, fastlean and TML are IdentityMD network artifacts built on his work. Each figure is tagged with the input it came from, as `[b..]` (the file under `.imd/reads/artifacts/`). Unless a line says otherwise, a "replica" figure is arm minus LEANBASE, paired by seed, each policy alone against the replica's 30 bps rival, with se = sd/sqrt(n). An "engine" figure comes from amm-challenge@6b6921f8 / amm_sim_rs 0.1.0.post1 through the kit @45e7563d, each arm alone against the 30 bps VanillaStrategy. **Sources flagged at re-read.** The brief says these results cite at least one source that did not hold when re-read: b16-qlite-b (1), b17-qlite-a (1), b17-qlite-b (2), b18-qlite-a (2), b19-rival-pin (1), b20-seed-10942 (1), b21-copy-b (4), b25-carry (3), b26-copy-a (5), b26-copy-b (6), b27-oracle-live (2), b28-h4x4 (1), b31-copy-a (1), b32-copy-a (1), b32-copy-b (1). The brief does not say which sources. The inputs do not say either, so I could not tell which claims rest on them. In practice: - The measured numbers (seeds, means, se, gas) come from each item's own runs. They do not depend on outside pages. - Claims that rest on outside text should be treated as unconfirmed. These include line-number citations into the engine and replica source (b26-copy-a, b26-copy-b), statements quoted from earlier briefs, and upstream figures "taken as given". - b26-copy-a and b26-copy-b have the most flagged sources (5 and 6). Their causal story about the engine is backed by measurements (b26-copy-b), but their source-line citations need checking again. ## 1. Headline findings 1. **The q-lite split test (cap24+GATE) is real on the replica but almost absent on the engine.** - Replica: +0.0386 se 0.0036 over LEANBASE on 2048 report seeds [b16]. - Engine: CAND minus LEAN is +0.0036 se 0.0037 on 512 fresh seeds [b18]. - Cause: the test fires on about 10% of tries on the engine against about 78% on the replica [b26-copy-a, b26-copy-b]. The engine recomputes k = x*y from rounded reserves, so the test's constant sqrt(0.997e6) is off in its last bits [b26-copy-b]. 2. **QLX (tracked denominator offset) restores the test, and the gain shows on the engine.** - Hit rate on the engine: 81.5% (3 candidates) and 89.2% (5 candidates) [b26-copy-b]. - Replica_e (engine-like k): QLX5 is +0.047 over LEANBASE [b31-copy-a]. - Fresh engine seeds: QLX3 and QLX5 are +0.035 se 0.007 over LEAN on 512 seeds [b34-qlx-b], and +0.019 / +0.026 se 0.007 on another 512 [b34-qlx-a]. - The QLX5 contract has **not passed gate T**: one T run failed at callback 1 [b32-copy-a], and the other could not start [b32-copy-b]. 3. **Most of LEAN's lead over lb-4 is LEAN's own.** On the engine, LEAN minus lb-4 is +0.1637 se 0.0161 and LEAN minus qt1 is +3.391 se 0.051, on 512 seeds [b18]. 4. **Negative or null levers.** None of these advanced: - lattice Bayes filter [b19-lattice] - lb-4's two-component filter on LEANBASE [b19-twocomp] - rival band pinning from the split [b19-rival-pin] - carrying the rival's exact state [b25-carry] - oracle run parameters [b27-oracle-live] - all four learned fee-correction heads [b28-*] - The arb-pin item ran nothing [b25-arb-pin]. 5. **A rare LEANBASE failure has a free fix.** On replica seed 10942, the "unsupported" tell label forces pi = 0 and LEANBASE loses 35.67 edge. Mapping unknown labels to neutral fixes it at no measured cost [b20]. On the engine, TML ties LEAN bit for bit on 768 fresh seeds [b34-tml-a]. ## 2. Results by item ### b16-qlite-b: q-lite gated reference, replica (e03-cheap-ref) **Rule.** The split test runs only if LEANBASE did not read the callback as arbitrage and dt <= 6 ("GATE"). It runs before the table lookup. On a hit, the rival spot is set from the fill. It needs no extra storage. **Choose, 64000..64895 (n = 896), vs LEANBASE:** | arm | mean | se | |---|---|---| | cap24 ungated (reference) | +0.03569 | 0.00526 | | cap24+GATE | +0.03395 | 0.00521 | | cap40+GATE | +0.03772 | 0.00539 | - The pick rule was written before scoring: cap24+GATE unless cap40+GATE beats it by more than 0.005. cap40+GATE was ahead by only +0.0038 se 0.0020, so cap24+GATE was picked. **Report, 10000..12047 (n = 2048):** - LEANBASE mean edge: 536.603391. - cap24 ungated: +0.040558 se 0.003683. This reproduces the q-lite artifact's 0.04056 / 0.00368 / -2.3311. - **cap24+GATE: +0.038568 se 0.003636**, worst seed 11701 at -2.339. - cap40+GATE: +0.041594 se 0.003851. - The gate costs -0.00199 se 0.00074 against ungated cap24. - cap40+GATE minus cap24+GATE is +0.003026 se 0.001432. **Checks.** - The integer form equals the float form on all 14,536,942 tested report callbacks, with 0 mismatches. - A synthetic check of 300k cases also had 0 mismatches. **Cost and coverage.** - Worst case 298 integer ops per tested callback, mean 270.5; cap40 has a worst case of 502. - 64.9% of callbacks are tested. - The test does not run on the peak path by construction. This is the brief's statement; no gas was measured. **Not done:** no Solidity, gas or engine run. **Advance:** true. ### b17-qlite-a: Solidity port of the gated test (e03-cheap-sol), reference A/f5cea5b2 **Gates T, F and G pass.** **T, replica seeds 74200..74249:** - 352,927 first trades with 0 label mismatches. - 549,695 rule decisions with 0 mismatches. - Closed-loop in-contract check: rival max error 9.3e-11 bps, against a tolerance of 1e-3. **F:** 100,000 callbacks; max error 4.67e-7 bps; 0 over tolerance. **G:** | measure | port | LEAN | |---|---|---| | runtime bytes | 22,390 | 21,368 | | source characters | 47,094 | 43,563 | | engine peak gas (8 seeds 10001064..10001071) | 197,855 | 195,099 | | mean gas | 133,019 | 124,349 | - 0 OOG. - Worst added gas per call is 13,397 (pyrevm). - Source sha256 5289a60c…; runtime 772f45c9…. - On those 8 engine seeds the port sits 0.109 below LEAN. This is not a score. **Not done:** gates P, Q and E. ### b17-qlite-b: second Solidity port (e03-cheap-sol), reference A/6475e99c (= b16) **Gates T, F and G pass.** **T:** 352,956 first trades with 0 mismatches; 549,759 decisions with 0 mismatches. With no hit, the fee differs from LEAN on 0 callbacks. **F:** max error 4.67e-7 bps; 0 over tolerance. **G:** - runtime 22,751 bytes; source 47,393 characters. - Peak 197,274 against LEAN's 196,142 on engine seeds 10001072..10001079. - Mean gas 131,264 against 124,291. - A tested call costs 10.5k–11.5k gas more than LEAN (pyrevm). The peak call is untested (+154 gas). - Source sha256 5b31c0c0…. **Not done:** P, Q and E. On its 8 engine seeds it is "slightly below LEAN". **Agreement:** the two independent ports agree on T and F figures to within stream differences. ### b18-qlite-a: gate E for b17-qlite-a (e03-cheap-eng) **512 fresh engine seeds, 10003536..10004047:** | contrast | mean | se | seeds below 0 | |---|---|---|---| | CAND − LEAN | +0.00361 | 0.00365 | 224 | | CAND − lb4 | +0.1673 | 0.0162 | 151 | | CAND − qt1 | +3.395 | 0.051 | 0 | | LEAN − lb4 | +0.1637 | 0.0161 | — | | LEAN − qt1 | +3.391 | 0.051 | — | | lb4 − qt1 | +3.228 | 0.049 | — | - Mean edges: cand 533.32, lean 533.32, lb4 533.16, qt1 529.93. **afterSwap gas, all with 0 OOG and 0 reverts:** | arm | peak | mean | |---|---|---| | cand | 199,777 | 133,180 | | lean | 198,064 | 124,626 | | lb4 | 222,093 | 139,913 | | qt1 | 209,256 | 137,967 | **Reading:** - The rule cannot be told apart from LEAN on the engine. - beats_lb4_by_0_15 is true by point estimate only, about 1.1 se above 0.15. - Gates P, Q, T, F and G were not rerun here; gate P was not run. ### b19-lattice: Taylor lattice Bayes in place of the LEANBASE filter (e03-price) **Report, 10000..10255 (n = 256), vs LEANBASE:** | arm | mean | se | |---|---|---| | full | +0.0101 | 0.0090 | | k20 | −0.0240 | 0.0124 | | k24 | −0.0020 | 0.0103 | | k32 | +0.0117 | 0.0089 | | double spacing | +0.0121 | — | - k16 was stopped early on choose: −0.282 se 0.075. **Cost.** Estimated convolution gas, not measured: | arm | gas | |---|---| | full | 674,817 | | k20 | 234,234 | | k24 | 278,850 | | k32 | 368,082 | | double | 175,253 | No arm has a demonstrated way to fit 40k gas. **Advance:** false. Only 256 report seeds were run, not 2048. ### b19-twocomp: lb-4's two-component filter on LEANBASE (e03-price) **Report, 10000..10511 (n = 512):** - TWO (lb-4 as is): +0.0074 se 0.0048. - TWO_CHOSEN (dual 12, no floor): +0.0026 se 0.0022. **Reading:** - LEANBASE's exact tell already makes nearly every pi 0 or > .995, so the mixture is rarely live. - The +1.19 true-price value "is not in the arb/retail mixture shape". **Cost.** Estimated only, not measured: about +9–10k gas for TWO, and 40–46k for TWO_CHOSEN. The lb-4 gas figures are quoted from the brief. **Advance:** false. ### b19-rival-pin: rival band from the split (e03-price) — one flagged source - The split infers the rival spot after the retail fill. Treating that as the post-arb band is invalid: 2,178 of 5,581 split hits violate the band. **Report, 10000..10511 (n = 512):** - SPLIT: +0.0483 se 0.0076 vs LEANBASE. - SPLIT+BAND: −137.11 se 1.78. - SPLIT+BAND+EDGE: −151.63 se 1.95. - ORACLE rival: +0.1532 vs LEANBASE, which is +0.1049 se 0.0118 over SPLIT. - ORACLE+BAND: −128.34. **Stopped early:** after 512 seeds, because score.py rejected the band arms. **Advance:** false. ### b20-seed-10942: LEANBASE failure diagnosis (e03-lean-seed) — one flagged source **What happens on seed 10942.** - At t = 9718 a correcting arb pays more than half the previous X reserve. - The lean tell returns "unsupported" (buy support needs amountX <= previousX >> 1). Variant A maps that to retail, so pi = 0. - The truncation snaps the price to 225.80 against a true 103.77. - It never recovers. - LEANBASE 1013.03 against BASE 1048.71, a loss of 35.67. **Fix.** On an unknown label (over or unsupported), keep pi_prior; this is leanbase variant B. - On seed 10942 it gives exactly BASE (1048.708). - On choose 64000..64255 (n = 256) it differs from LEAN by 0.0 se 0. - Cost: one compare and one branch; 0 storage. **Frequency.** 0 disagreements on 7,188,394 first trades over seeds 20000..21023. That is not proof the failure rate is zero. **keep_lean:** true, but only with the fix. ### b21-copy-b: fastlean, a numba port of LEANBASE with a fee-correction hook (e04-fastlean) — four flagged sources - **Parity:** bit-identical to CPython LEANBASE on 128 of 128 seeds (64000..64063, 10000..10063); mean edge 527.8724874783702. - **Tell labels:** 0 mismatches on 62,350 recorded and 79,051 perturbed inputs. - **Speed:** about 149 runs per core-second with the hook off, against CPython's 0.355 s a run. - **Hook:** 20 features. Linear (42 weights) or tanh-hidden (23H+2 weights). Correction capped at ±8 bps. Delivered untrained. **Caveats:** - curl and pip were unavailable, so equivalent fetches were used. - 14 modules in LEANBASE's dependency list do not hash-match the files fetched at 66604b34. They are unused by the runs; this was not resolved. ### b25-carry: carrying the rival's exact state (e04-rival-exact) — three flagged sources **Report, 10000..12047 (n = 2048), vs LEANBASE (mean edge 536.6068):** | arm | mean | se | rival MAE (bps) | |---|---|---|---| | SPLIT (qlgate cap24+GATE) | +0.0349 | 0.0038 | 0.40 | | CARRY | −1.389 | 0.017 | 2.64 | | CARRYB | +0.0144 | 0.0060 | 0.30 | | ORACLE (true rival spot) | +0.1452 | 0.0067 | — | - LEANBASE's own rival MAE is 0.47 bps. **Paired contrasts:** - SPLIT − CARRYB: +0.0205 se 0.0057. - ORACLE − SPLIT: +0.1103 se 0.0061. - ORACLE-AT-SPLIT − CARRY: +0.0215 se 0.0193. - ORACLE-AT-SPLIT-B − CARRYB: +0.0007 se 0.0021. **Reading:** - Exact spots at the splits are not the bottleneck. - Between splits, the rival takes unseen retail flow. - Best live arm: SPLIT. **Note:** SPLIT here relies on the replica's constant K = 1e6. See b26 for why that matters on the engine. **Advance:** false; the bar was 0.05. ### b25-arb-pin (e04-rival-exact): **empty result** - Neither arm was implemented or run. All values are null; no seeds were used. - The pre-retail rival inversion it asked for is still untested. ### b26-copy-a: why the split test fails on the engine (e04-split-engine) — five flagged sources - **Engine, seeds 10005100..10005163:** the split test's hit rate is 9.43% (45,134 of 478,406 tries), measured by gas-burn inversion. The replica rate is 78.34%. - **Tolerance:** 1e-9 or 1e-6 accepts about 100% of tries. - **Edges:** equal to LEAN. - **Peak:** at most 207,791 gas; 0 OOG. - **Proposed causes:** - The engine recomputes k from current reserves at each quote; the replica uses the fixed K = 1e6. The causal share of this was not isolated. - Execution order differs, but split amounts are the same. - **Claims:** - Callback TradeInfo lacks the rival's reserves and the total order, so exact router reproduction "cannot" be done from callback state. - Router differs: true. ### b26-copy-b: the same question, second copy (e04-split-engine) — six flagged sources - **Engine, seeds 10005164..10005227:** 10.02% (44,436 of 443,364 tries). Burn calibration: 41 gas an iteration, 10,496 per burn. - **Cause:** the rival's x*y does a rounding random walk, 5–70 ulps from 1e6. - **Emulation** (rates are per true split fill): - replica arithmetic: 0.894 - only K recomputed: 0.095 - full engine arithmetic: 0.147 - engine updates with a constant K: 0.895 - **Tolerance scan:** the hit rate is 0.61 at 1e-15, 0.90 at 1e-14, 0.95 at 1e-13 and 1.0 at 1e-9. Non-splits are accepted at 0.9% to 100%, so this is not usable. - **Tracked offset (QLX):** a small integer m0 tracks the last accepted denominator offset. - 3 candidates: 81.5% hits, peak 203,439, +2,744 mean gas over V0. - 5 candidates: 89.2% hits, peak 209,771, +3,343 mean gas. - Decoy false accepts: 0.28%. - **64-seed smoke over LEAN:** QLX3 +0.042 se 0.018 and QLX5 +0.034 se 0.019 (as quoted in b34-qlx-a and b34-qlx-b). The ql port is +0.0057 se 0.0109 over LEAN. - **Router differs:** false. **Disagreements between b26-copy-a and b26-copy-b:** - *router_differs.* copy-a says true, on execution order. copy-b says false: the router algebra is the same and only k differs. - *exact test from callback state.* copy-a says it is impossible. copy-b says it is not strictly exact, but the tracked offset works empirically. - *k as the cause.* copy-a leaves it unisolated. copy-b attributes it through emulation and engine evidence. - *hit rate.* The rates (9.4% and 10.0%) agree within seed noise. ### b27-oracle-live: oracle run parameters (e04-run-params) — two flagged sources **Setup:** the oracle is given 3-level bins of sigma, rate and size, with Taylor's tables unchanged (no DP re-solve). **Report, 10000..12047 (n = 2048):** - sigma: +0.0049 se 0.0027. - rate: −0.0005 se 0.0006. - all three: +0.0038 se 0.0028. **Stopped at the oracle:** all are below +0.02, so no live estimator was built. **Caveat:** this does not bound gains from re-solved tables. ### b28: learned fee-correction heads on fastlean (e05-head-train) All four heads were trained by CMA-ES on 64000..65023, with a holdout on 10000..12047 (n = 2048). **No head advanced.** | head | choose | holdout | note | |---|---|---|---| | lin (8 features, 18 weights) [b28-lin] | +0.0122 se 0.0061 | +0.0058 se 0.0046 | training took 2,325 s | | lin-wide (19 features, 40 weights, 141 generations) [b28-lin-wide] | −0.0258 se 0.0077 | −0.0204 se 0.0055 | all 846 candidates were below 0; the run had not converged | | h4x4 [b28-h4x4] — one flagged source | −0.0121 se 0.0063 | −0.0009 se 0.0044 | — | | h8x4 [b28-h8x4] | −0.0134 se 0.0075 | −0.0010 se 0.0056 | — | None was checked against the CPython oracle or ported to Solidity. ### b31-copy-a: QLX reference (e05-qlx-ref) — one flagged source **Method:** replica_e is Taylor's RNG with k recomputed as on the engine. **Choose, 64000..64255:** | arm | mean | se | |---|---|---| | QLITE | −0.0019 | 0.0053 | | QLX3 | +0.0385 | 0.0105 | | QLX5 | +0.0462 | 0.0110 | **Report:** - replica_e, 10000..11023 (n = 1024): | arm | mean | se | |---|---|---| | QLITE | +0.0044 | 0.0031 | | QLX3 | +0.0442 | 0.0052 | | QLX5 | +0.0471 | 0.0052 | - Taylor replica, 10000..10511 (n = 512): QLX5 +0.0480 se 0.0073. **Hit rate:** - replica_e: QLITE 9.3%, QLX3 81.5%, QLX5 89.1%. - QLX5 split recall 99.7%; false-accept rate 0.23%. **Checks:** - Integer form matches the float form. - The binade-safe and literal forms agree on 713,095 vectors. Vectors sha256 4706aec7…. **Pick:** QLX5. **Advance:** true. ### b31-copy-b: QLX reference, second copy (e05-qlx-ref) - **Choose, 64000..64127:** QLX5 +0.0374 se 0.0148; QLX3 +0.0315 se 0.0142. - **Report, replica_e, 10000..10191 (n = 192):** - QLITE +0.0009 se 0.0067 - QLX3 +0.0316 se 0.0117 - QLX5 +0.0386 se 0.0115 - **Report, Taylor replica, n = 128:** QLX5 +0.0468 se 0.0145. - **Hit rate:** QLX5 0.891, QLX3 0.817. - **Seed ranges:** cut for time. - **Gaps:** - Its vectors sha256 is 0423df40…. It differs from copy-a's, because the vector sets are different. - It could not fetch A/5718a00b by prefix. **Pick:** QLX5. **Advance:** true. This agrees with copy-a. ### b32-copy-a and b32-copy-b: QLX5 Solidity (mku.py, unchanged) through gates T/F/G (e05-qlx-sol) — each one flagged source - **Contract:** source sha256 e183e5bc…; runtime 22,440 bytes; 47,230 characters. - **copy-a — T FAILED.** - Failure at seed 74200, callback 1 (t = 3): the reference reads arb and does not test; the contract reads not-arb and tests. - The first-callback fees already differ: contract 2951324332807182 against reference 2956545026965740. - Stopped there; F and G were not run. - **copy-b — T could not start.** - The vectors.py run needs the LEANBASE overlay, but only an 8-character prefix "efb8e653" was supplied, and the API returns invalid_hash. Its full hash appears in other inputs (b20, b25). - It compiled only (runtime 903a0cf8…). - **Gate status:** neither copy passed. QLX5 has no gate T, F or G certification. ### b34-qlx-a: QLX on engine seeds 10010000..10010511 (e05-engine) - **QLX3 − LEAN:** +0.0186 se 0.0072, positive on 291 of 512 seeds. - **QLX5 − LEAN:** +0.0258 se 0.0073, positive on 306 of 512. - **QLX3 − QLX5:** −0.0072 se 0.0033. - **Peak gas:** QLX3 203,671; QLX5 207,838; LEAN 199,638. All with 0 OOG. - **Mean gas:** about 136.1k–136.7k against LEAN's 124.7k. - **Not done:** no gates. ### b34-qlx-b: QLX on engine seeds 10010512..10011023 (e05-engine) - **QLX3 − LEAN:** +0.0353 se 0.0072. - **QLX5 − LEAN:** +0.0352 se 0.0071. - **QLX3 − QLX5:** +0.0001 se 0.0034. - **Halves:** both positive. - **Peak gas:** QLX3 204,132; QLX5 208,366; LEAN 198,259. - **Not done:** no gates; no comparison with lb4 or qt1. **Where b34-qlx-a and b34-qlx-b differ:** - *QLX3 vs QLX5.* qlx-a has QLX5 ahead by 0.0072 (about 2.2 se). qlx-b has them tied. - *Pooled over 1024 seeds.* My simple average of the two blocks is about +0.027 (QLX3) and +0.031 (QLX5) over LEAN. This was not measured as one run. - *Peaks.* The peaks are consistent across both blocks; all are under 245,000. ### b34-tml-a: TML against LEAN on engine seeds 10011024..10011791 (e05-engine) - **Edges:** bit-equal on all 768 seeds; mean 545.1186. - **Contract:** | | TML | LEAN | |---|---|---| | runtime bytes | 21,055 | 21,368 | | source characters | 40,615 | 43,563 | | peak gas | 208,688 | 199,412 | | mean gas | 130,699 | 124,516 | - **Rare loss:** no rare LEAN loss was seen. The 95% upper bound on the rate of differing seeds is 0.39% (computed, not measured). - **Source:** TML is from A/fd2f147e. The inputs do not say whether it contains the b20 fix; the item says only "rare LEAN loss". ## 3. Where results disagree or need care - **Replica against engine for the q-lite test.** - Replica: +0.0386 [b16] and +0.0349 [b25]. - Engine: +0.0036 [b18]. - The explanation is k recomputation [b26-*], and replica_e reproduces the collapse: QLITE +0.0044 [b31-copy-a]. - Figures from the plain replica therefore overstate anything that relies on x*y = 1e6. b25-carry's SPLIT and CARRY arms, and b19-rival-pin's SPLIT arm, all rely on it. - **Figures for QLX5 over LEAN, from four sources:** - replica_e: +0.047 [b31-copy-a] and +0.039 [b31-copy-b]. - engine: +0.034 on 64 seeds [b26-copy-b], +0.026 [b34-qlx-a] and +0.035 [b34-qlx-b]. - These are broadly consistent at about +0.03. The engine figures are a little below the replica_e figures. - **QLX5 is measured but not certified.** Gate T fails [b32-copy-a], or cannot run [b32-copy-b]. Gates P, Q and E against lb4 and qt1 have not been run for any QLX contract. - **The b26 copies disagree on router_differs and on whether an exact test is possible** (see b26-copy-b). - **Hash-prefix problems.** b31-copy-b could not resolve the A/5718a00b prefix, and b32-copy-b could not resolve "efb8e653". In other inputs the full hashes are: - efb8e653f8fd061cecf3e92b186470c9c96c5188523364b60ed101e9672869aa - 5718a00b… = https://api.imd.fun/artifacts/5718a00bf95a80e2c2f0073071fa9b94d59be643e3e577793b9fd3e9cd2cc354 - **Value of the true rival spot.** Two measurements of ORACLE over SPLIT agree: - +0.1103 [b25-carry] - +0.1049 [b19-rival-pin] - The brief's lever (1) value is rival64 +0.145; this is consistent with b25's ORACLE over LEANBASE of +0.1452. ## 4. What this merge could not find - The specific sources flagged at re-read. Not named in the inputs. - b25-arb-pin: no data. - The full text of b17-qlite-b's G.edge_note. - The engine margin of the b17 ports over LEAN, beyond "slightly below" and "0.109 below" on 8 seeds. - Any QLX contract result on gates P, Q, T, F or E against lb-4 or qt1. - Any result on levers (2) and (3) from the brief: recovering table compression and the refit tables. No input in this group addresses them.