{
 "item": "comp-knots",
 "batch": "e03-tab-ref",
 "credit": "Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved. The replica, Gaussian filter, posterior policy, qm tables and their lookup are Taylor's; LEANBASE, the QPL1 layout and the U1 blob are earlier items of this network built on them.",
 "approach": "Logged, on choose seeds, the interpolation weight every fee-setting lookup puts on each table node (LEANBASE reading FULL). Kept the QPL1 byte layout and the contract decoder unchanged, started from U1 knots, thinned the two tables no lookup reads (1c, 2c), spent the freed bytes on knots in 0c, 1s and 2s by squared-error gain per byte with drop-and-regrow exchanges, refit knot values by visit-weighted least squares and re-rounded (qe chosen per table). Same blob size as U1 (10158 vs 10,160 bytes). The decoder is an integer-only Python port of the contract surf(): WAD lerps with truncating division, clamp at 0.",
 "headline": "FULL minus U1 is under 0.005 on 768 choose seeds, so there is no measurable edge for an encoding to recover; per the brief the report seeds were not spent and advance is false. By-product: 1c and 2c are never read under LEANBASE (a0=ainf=0.35), so about 2,000 blob bytes can be reclaimed for other levers.",
 "ceiling": {
  "mean_diff": 0.002541,
  "se": 0.007011,
  "n": 768,
  "min": -1.0076,
  "seeds": [
   64000,
   64767
  ],
  "arms": "LEANBASE reading qm_k1e-5.json minus LEANBASE reading q_u1.json, paired by seed, each alone against the replica 30 bps rival",
  "under_0_005": true,
  "by_range": [
   {
    "mean_diff": 0.007512,
    "se": 0.008589,
    "n": 512,
    "min": -0.7368,
    "seeds": [
     64000,
     64511
    ]
   },
   {
    "mean_diff": -0.007402,
    "se": 0.012135,
    "n": 256,
    "min": -1.0076,
    "seeds": [
     64512,
     64767
    ]
   }
  ],
  "note_on_0_111": "The 0.111 in the goal text comes from artifact 4a41a90c (item kt-high), whose compressed arm is \"LEAN = TellPolicy(blob, 4, .0001)\" on the lb-4 bundle. My reading, not checked further: that is lb-4's earlier lookup blob, not the QPL1 U1 blob measured here. U1 already sits within noise of FULL."
 },
 "u1_error": {
  "visit_rms_fee_error_bps": 0.3554,
  "definition": "node error of the decoded ask surface against FULL, weighted by the interpolation weight of the lookups that set the fees on seeds 64000..64127 (1384962 lookups under FULL; bid lookups counted at the mirrored node); an upper bound on the rms error of the looked-up fee",
  "summary": "54% of U1 visit-weighted squared error is in table 1s (46% of lookups), 31% in 2s (19%), 15% in 0c (35%). In 1s and 2s it is spread over every |w| band and over sd levels 0..3; the two interpolated levels (1 and 2, between L knots 0 and 3) hold 34% of the total. Tables 1c and 2c, 2,257 of the 10,160 bytes, received visit weight 0 in 1384962 lookups.",
  "values_vs_knots": {
   "u1_knots_with_unrounded_least_squares_values_visit_rms_bps": 0.3352,
   "reading": "refitting and un-rounding the values on U1 own knots removes only about 11% of the squared error; the rest is knot placement"
  },
  "full_bid_vs_mirrored_ask": {
   "max_bps": 0.71,
   "visit_rms_bps": 0.0,
   "reading": "QPL1 stores ask only and mirrors it for bid; FULL differs from its own mirror only at nodes no lookup touched"
  },
  "tables": {
   "0c": {
    "blob_bytes_incl_header": 641,
    "knots_L_R_C": [
     2,
     24,
     11
    ],
    "visit_share": 0.3503,
    "share_of_squared_error": 0.1488,
    "rms_bps_when_read": 0.2316,
    "squared_error_share_by_abs_w": {
     "w<=10bps": 0.0155,
     "15-30": 0.0211,
     "35-60": 0.0318,
     "65-120": 0.0369,
     ">120": 0.0435
    },
    "visit_share_by_abs_w": {
     "w<=10bps": 0.0042,
     "15-30": 0.0162,
     "35-60": 0.1627,
     "65-120": 0.1194,
     ">120": 0.0479
    },
    "squared_error_share_by_sd_level_S0_to_S7": [
     0.1182,
     0.0056,
     0.0059,
     0.0025,
     0.0014,
     0.0021,
     0.0054,
     0.0077
    ],
    "visit_share_by_sd_level": [
     0.3482,
     0.0014,
     0.0004,
     0.0001,
     0.0001,
     0.0,
     0.0,
     0.0
    ],
    "unweighted_node_rms_bps": 1.301,
    "unweighted_node_max_bps": 23.89
   },
   "1s": {
    "blob_bytes_incl_header": 4122,
    "knots_L_R_C": [
     3,
     43,
     30
    ],
    "visit_share": 0.4629,
    "share_of_squared_error": 0.5442,
    "rms_bps_when_read": 0.3854,
    "squared_error_share_by_abs_w": {
     "w<=10bps": 0.1305,
     "15-30": 0.1003,
     "35-60": 0.0732,
     "65-120": 0.1381,
     ">120": 0.1021
    },
    "visit_share_by_abs_w": {
     "w<=10bps": 0.0656,
     "15-30": 0.1104,
     "35-60": 0.1622,
     "65-120": 0.0982,
     ">120": 0.0266
    },
    "squared_error_share_by_sd_level_S0_to_S7": [
     0.1675,
     0.0822,
     0.1474,
     0.1249,
     0.0173,
     0.0022,
     0.001,
     0.0016
    ],
    "visit_share_by_sd_level": [
     0.1657,
     0.0303,
     0.093,
     0.1543,
     0.0188,
     0.0008,
     0.0001,
     0.0
    ],
    "unweighted_node_rms_bps": 1.922,
    "unweighted_node_max_bps": 61.83
   },
   "1c": {
    "blob_bytes_incl_header": 1645,
    "knots_L_R_C": [
     4,
     28,
     13
    ],
    "visit_share": 0.0,
    "share_of_squared_error": 0.0,
    "rms_bps_when_read": null,
    "squared_error_share_by_abs_w": {
     "w<=10bps": 0.0,
     "15-30": 0.0,
     "35-60": 0.0,
     "65-120": 0.0,
     ">120": 0.0
    },
    "visit_share_by_abs_w": {
     "w<=10bps": 0.0,
     "15-30": 0.0,
     "35-60": 0.0,
     "65-120": 0.0,
     ">120": 0.0
    },
    "squared_error_share_by_sd_level_S0_to_S7": [
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0
    ],
    "visit_share_by_sd_level": [
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0
    ],
    "unweighted_node_rms_bps": 1.281,
    "unweighted_node_max_bps": 21.7
   },
   "2s": {
    "blob_bytes_incl_header": 3021,
    "knots_L_R_C": [
     3,
     36,
     26
    ],
    "visit_share": 0.1867,
    "share_of_squared_error": 0.3071,
    "rms_bps_when_read": 0.4558,
    "squared_error_share_by_abs_w": {
     "w<=10bps": 0.0838,
     "15-30": 0.0524,
     "35-60": 0.057,
     "65-120": 0.0969,
     ">120": 0.0171
    },
    "visit_share_by_abs_w": {
     "w<=10bps": 0.027,
     "15-30": 0.0433,
     "35-60": 0.0586,
     "65-120": 0.0444,
     ">120": 0.0135
    },
    "squared_error_share_by_sd_level_S0_to_S7": [
     0.1159,
     0.0378,
     0.0702,
     0.0714,
     0.0097,
     0.0014,
     0.0003,
     0.0004
    ],
    "visit_share_by_sd_level": [
     0.0637,
     0.0123,
     0.0386,
     0.0645,
     0.0074,
     0.0002,
     0.0,
     0.0
    ],
    "unweighted_node_rms_bps": 1.93,
    "unweighted_node_max_bps": 48.92
   },
   "2c": {
    "blob_bytes_incl_header": 612,
    "knots_L_R_C": [
     3,
     17,
     10
    ],
    "visit_share": 0.0,
    "share_of_squared_error": 0.0,
    "rms_bps_when_read": null,
    "squared_error_share_by_abs_w": {
     "w<=10bps": 0.0,
     "15-30": 0.0,
     "35-60": 0.0,
     "65-120": 0.0,
     ">120": 0.0
    },
    "visit_share_by_abs_w": {
     "w<=10bps": 0.0,
     "15-30": 0.0,
     "35-60": 0.0,
     "65-120": 0.0,
     ">120": 0.0
    },
    "squared_error_share_by_sd_level_S0_to_S7": [
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0
    ],
    "visit_share_by_sd_level": [
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0,
     0.0
    ],
    "unweighted_node_rms_bps": 1.49,
    "unweighted_node_max_bps": 34.97
   }
  }
 },
 "choose": {
  "seeds_replica": [
   64512,
   64767
  ],
  "tried": [
   {
    "name": "v2 (picked, = CAND)",
    "what": "U1 knots, 1c/2c thinned to 2 sd levels and every 4th w / 3rd w2 knot, 45 s of exchanges, 10,160-byte budget",
    "proxy": {
     "visit_rms_bps": 0.3073,
     "blob_bytes": 10158
    },
    "mean_diff": -0.007885,
    "se": 0.010488,
    "replica_cand_minus_u1": {
     "mean_diff": -0.007885,
     "se": 0.010488,
     "n": 256,
     "min": -0.5739
    },
    "replica_cand_minus_full": {
     "mean_diff": -0.000482,
     "se": 0.011884,
     "n": 256,
     "min": -0.6336
    }
   },
   {
    "name": "v1",
    "what": "as v2 without thinning; unread tables given 1% of the uniform weight floor, 40 s of exchanges",
    "proxy": {
     "visit_rms_bps": 0.3215,
     "blob_bytes": 10138
    },
    "mean_diff": null,
    "se": null,
    "note": "not run on the replica"
   },
   {
    "name": "v0 same size",
    "what": "uniform weight floor on all five tables, 25 s of exchanges",
    "proxy": {
     "visit_rms_bps": 0.3286,
     "blob_bytes": 10141
    },
    "mean_diff": null,
    "se": null,
    "note": "not run on the replica"
   },
   {
    "name": "v0 +1000 bytes",
    "what": "as v0 with an 11,160-byte budget",
    "proxy": {
     "visit_rms_bps": 0.314,
     "blob_bytes": 11130
    },
    "mean_diff": null,
    "se": null,
    "note": "not run on the replica"
   },
   {
    "name": "minimal start",
    "what": "grow all knots greedily from 2x2x2 per table",
    "proxy": {
     "objective": 10.97,
     "u1_objective": 0.128
    },
    "mean_diff": null,
    "se": null,
    "note": "failed (objective 85 times U1): discarded and removed from the builder; cause not established"
   }
  ],
  "u1_proxy": {
   "visit_rms_bps": 0.3554,
   "blob_bytes": 10160
  },
  "rule": "lowest visit-weighted squared error against FULL among same-size builds; the replica run on choose seeds checked the one pick and did not select among several"
 },
 "frozen": {
  "builder_sha256": "d3bf61ee34e8ceb8c9a2b234355b8ea454e8361f7ffc376a177e953b070653a6",
  "decoder_sha256": "79f323b5b00360e0fd54f101005f2c205dc52fadab52360ac1d34dc31fb25882",
  "blob_sha256": "93666c1618a46e5bbd791a52bb04bd3516dd4ec191b22322bb42f1ff08caf3e2",
  "decoded_tables_json_sha256": "b6c4608b800749a61a36699f58d8be7cd47f71b51950b8c22f39a4c3b5a9036d",
  "harness_sha256": {
   "exp.py": "25d0f457b9e2cfe5dea23c32e339625be69549d5aacd1f44102ed6efd55ad658",
   "report.py": "d226338d4e16341ce6c60f3e508edb01a9ead748f06f98903e06eab50bedc4ef"
  },
  "inputs_sha256": {
   "leanbase.py": "ba015769f7981d7798acbbc9aff8c0e0c59825bb1541d55bcdef49311d7a04bc",
   "q_u1.json": "d5645b6dd4ed8f1e33cc712d56d9eb916a50db7d5014c285b0f388cd114f96f9",
   "qm_k1e-5.json": "5ff53e42ca87390e5f65d1caa3f7a480e67a8212fb0670274dfd562b05ba1afd",
   "visits.json": "b2ba910c08c43650c21ecef7752934aa76f9402b77680a4fdcfc24601f768350"
  },
  "settings": {
   "OPT": {
    "soft": 1,
    "a0": 0.35,
    "ainf": 0.35
   },
   "budget": 10160,
   "LAM": 0.001,
   "DEAD": 0.01,
   "TLIM": 45,
   "PRUNE": 1,
   "visits_seeds": [
    64000,
    64127
   ]
  },
  "note": "frozen after the choose run; no report seed was used before or after"
 },
 "report": {
  "seeds": [],
  "n": 0,
  "cand_minus_u1": null,
  "cand_minus_full": null,
  "status": "not run. The brief says to stop when FULL minus U1 is under 0.005; it is +0.0025 se 0.0070 on 768 choose seeds. No seed of 10000..12047 was used by any arm."
 },
 "cost": {
  "blob_bytes": 10158,
  "extra_blob_bytes": -2,
  "decoder_change": "none in logic: same record layout, spanR/spanC/surf untouched. Only the qt() constants change (knot words, nl/nr/nc, offsets, two scales: 1s 0.5->0.25 bps, 2s 1->0.5 bps). Limits of the packed constants respected: nr<=48 (47 used), nc<=32 (32 used), nl<=8.",
  "extra_runtime_bytes_estimate": -40,
  "extra_source_chars_estimate": -80,
  "runtime_estimate_basis": "blob -2 bytes; knot constants counted by hand as about -40 PUSH bytes net (1c and 2c lose knot words, 0c/1s/2s gain some). Not compiled.",
  "extra_gas_estimate": {
   "mean": 3600,
   "peak": 700,
   "basis": "record() adds one int8 per column knot left of the cell: visit-weighted mean iterations per record 8.96 (U1) -> 10.46 (CAND), 16 records per afterSwap, about 150 gas per iteration assumed; peak from the deepest column span 28 -> 30 in 1s plus one more L-scan step in 0c. Counted, not measured on the engine."
  },
  "room_needed": "none of the 3,000 runtime bytes or 6,000 source characters"
 },
 "advance": false,
 "advance_reason": "no report was run and the ceiling itself is under 0.005; on 256 choose seeds CAND minus U1 is -0.0079 se 0.0105.",
 "cand": {
  "visit_rms_fee_error_bps": 0.3073,
  "u1_visit_rms_fee_error_bps": 0.3554,
  "squared_error_cut_vs_u1": 0.2525,
  "integer_decoder_vs_original_qpl_py_on_cand_max_abs_diff_bps": 5.00000002290335e-07,
  "integer_decoder_on_u1_blob_vs_q_u1_json_max_abs_diff_bps": 5e-07,
  "diff_note": "qpl.py rounds to 6 decimals; the integer decoder does not",
  "tables": {
   "0c": {
    "knots_L_R_C": [
     3,
     30,
     13
    ],
    "qe": -2,
    "blob_bytes_incl_header": 1340,
    "squared_error_as_share_of_u1_total": 0.0557,
    "unweighted_node_rms_bps": 1.012,
    "unweighted_node_max_bps": 23.25
   },
   "1s": {
    "knots_L_R_C": [
     3,
     47,
     32
    ],
    "qe": -2,
    "blob_bytes_incl_header": 4786,
    "squared_error_as_share_of_u1_total": 0.4707,
    "unweighted_node_rms_bps": 1.972,
    "unweighted_node_max_bps": 71.42
   },
   "1c": {
    "knots_L_R_C": [
     2,
     8,
     4
    ],
    "qe": -1,
    "blob_bytes_incl_header": 106,
    "squared_error_as_share_of_u1_total": 0.0,
    "unweighted_node_rms_bps": 2.015,
    "unweighted_node_max_bps": 38.39
   },
   "2s": {
    "knots_L_R_C": [
     3,
     41,
     28
    ],
    "qe": -2,
    "blob_bytes_incl_header": 3684,
    "squared_error_as_share_of_u1_total": 0.2212,
    "unweighted_node_rms_bps": 2.052,
    "unweighted_node_max_bps": 62.96
   },
   "2c": {
    "knots_L_R_C": [
     2,
     8,
     5
    ],
    "qe": -1,
    "blob_bytes_incl_header": 123,
    "squared_error_as_share_of_u1_total": 0.0,
    "unweighted_node_rms_bps": 2.149,
    "unweighted_node_max_bps": 47.0
   }
  },
  "knots": {
   "0c": {
    "L": [
     0,
     3,
     7
    ],
    "R": [
     0,
     85,
     112,
     113,
     114,
     120,
     121,
     123,
     124,
     129,
     130,
     132,
     134,
     137,
     141,
     144,
     146,
     148,
     149,
     150,
     151,
     152,
     156,
     157,
     163,
     164,
     167,
     170,
     171,
     320
    ],
    "C": [
     0,
     1,
     2,
     3,
     4,
     5,
     6,
     7,
     8,
     9,
     10,
     11,
     12
    ]
   },
   "1s": {
    "L": [
     0,
     3,
     7
    ],
    "R": [
     0,
     82,
     105,
     107,
     119,
     124,
     128,
     130,
     132,
     133,
     135,
     136,
     139,
     140,
     143,
     144,
     145,
     146,
     147,
     148,
     150,
     152,
     154,
     157,
     158,
     159,
     160,
     161,
     162,
     164,
     165,
     166,
     167,
     168,
     169,
     170,
     171,
     172,
     173,
     175,
     176,
     178,
     181,
     185,
     189,
     190,
     320
    ],
    "C": [
     0,
     7,
     9,
     12,
     14,
     15,
     16,
     17,
     18,
     19,
     20,
     21,
     22,
     23,
     24,
     25,
     26,
     27,
     28,
     29,
     30,
     31,
     32,
     34,
     36,
     37,
     38,
     39,
     40,
     41,
     42,
     48
    ]
   },
   "1c": {
    "L": [
     0,
     7
    ],
    "R": [
     0,
     102,
     131,
     132,
     145,
     168,
     173,
     320
    ],
    "C": [
     0,
     21,
     30,
     48
    ]
   },
   "2s": {
    "L": [
     0,
     3,
     7
    ],
    "R": [
     0,
     81,
     115,
     125,
     133,
     135,
     137,
     139,
     142,
     143,
     145,
     146,
     147,
     149,
     151,
     153,
     155,
     157,
     158,
     159,
     160,
     161,
     162,
     163,
     165,
     166,
     167,
     168,
     169,
     170,
     171,
     172,
     174,
     176,
     178,
     180,
     182,
     184,
     188,
     191,
     320
    ],
    "C": [
     0,
     11,
     15,
     16,
     17,
     18,
     19,
     20,
     21,
     22,
     23,
     24,
     25,
     26,
     27,
     28,
     29,
     30,
     32,
     34,
     36,
     37,
     38,
     39,
     40,
     41,
     42,
     48
    ]
   },
   "2c": {
    "L": [
     0,
     7
    ],
    "R": [
     0,
     108,
     138,
     139,
     158,
     167,
     173,
     320
    ],
    "C": [
     0,
     16,
     23,
     30,
     48
    ]
   }
  }
 },
 "room_finding": {
  "claim": "Under LEANBASE (a0=ainf=0.35) the unsynced tables 1c and 2c are not read: visit weight 0 in 1384962 fee-setting lookups on 128 seeds.",
  "why": "After a non-arb trade either the router identity in real.py binds (synced=True) or the pull in stalerival.py fires on a positive gap (synced=True); only an exact tie leaves synced False. Read from the code, not proven for the contract.",
  "bytes": "U1 spends 1,645 + 612 = 2,257 blob bytes on them; CAND spends 106 + 123 = 229 and its replica edge on 256 choose seeds is within noise of U1 and FULL.",
  "option_not_built": "U1 own 0c/1s/2s records kept byte for byte, with 1c/2c thinned as in CAND, would be about 8,130 bytes: about 2,030 fewer runtime bytes and 4,060 fewer source characters, with the same fees wherever LEANBASE reads. Arithmetic only: not built, not measured."
 },
 "tables_zb64": "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",
 "decoder_zb64": "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",
 "decoder_zb64_files": [
  "builder.py",
  "decoder.py",
  "exp.py",
  "report.py"
 ],
 "seeds_used": {
  "visit_logging": [
   64000,
   64127
  ],
  "ceiling_u1_full": [
   64000,
   64767
  ],
  "cand_check": [
   64512,
   64767
  ],
  "report": [],
  "engine": [],
  "note": "choose seeds only (inside 64000..65023); the visit-logging seeds do not overlap the seeds CAND was compared on"
 },
 "not_done": [
  "Report on 10000..12047: not run, because FULL minus U1 is under 0.005 on choose seeds (the brief's stop rule). cand_minus_u1 and cand_minus_full exist only for 256 choose seeds.",
  "No Solidity port, compile, gas or engine run: runtime bytes, source characters and gas are hand counts.",
  "Only the picked build ran on the replica; the other builds are compared by the visit-weighted error proxy alone.",
  "The exchange search stops on a time limit (45 s, 15 exchanges accepted), so the knots are not a converged optimum.",
  "Visit weights merge ask and bid lookups and come from 128 seeds; the squared-error proxy was not calibrated against edge, and the replica shows edge is flat at this error level.",
  "The smaller blob that keeps U1 visited tables and thins 1c/2c (about 8,130 bytes) was not built or measured.",
  "That 1c/2c are unread was measured on the Python LEANBASE only, not on the deployed contract.",
  "The builder needs numpy (2.5.4 used); the decoder is standard library only.",
  "No submission anywhere."
 ]
}