{
 "item": "qlite-b",
 "batch": "e03-cheap-ref",
 "credit": "Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved: the solved policy, replica, Gaussian filter, posterior policy, qm tables and exact-arithmetic tell (replica and TellPolicy fetched at research@66604b3426d8e97a73e2c39940b9b4dece51cc73). LEANBASE (https://api.imd.fun/artifacts/efb8e653f8fd061cecf3e92b186470c9c96c5188523364b60ed101e9672869aa), q-lite's qlite.py (https://api.imd.fun/artifacts/365a3649ce37f66bc4e333f84457aa84d2ae5e5f677d8a580481d3a2f84c76f2) and qbase.py (https://api.imd.fun/artifacts/88712dac0e4b048a0860ccb13d2f22e13d956161c102939cb480f53388f3b185) are IdentityMD network artifacts built on Taylor's work.",
 "rule": {
  "state_kept": "nothing beyond LEANBASE: the reserve wads handed on the previous callback (xw, yw), the bid and ask fee wads returned then (bw, aw), the previous own callback timestamp (tlast) and the rival estimate with its synced flag are all LEANBASE state already (replica policy; the contract layout was not inspected)",
  "per_callback": {
   "when": "afterSwap with timestamp t; dt = t - (timestamp of the previous own callback, 0 before the first). The test runs iff (a) LEANBASE did not read the callback as arbitrage (a later callback of a step, dt = 0, never is) and (b) GATE: dt <= 6, i.e. every later callback of a step and a first callback at most 6 steps after the previous own callback. A first callback with dt >= 7 is never tested: LEANBASE exactly on that call. It runs before that callback table lookup.",
   "inputs": "paid_w = amountX wad if the pool bought X else amountY wad; fee_w = the bid-fee wad returned on the previous callback if the pool bought X else the ask-fee wad; rx_w, ry_w = reserve wads handed on the previous callback (afterInitialize at start); cwx, cwy = reserve wads handed now; t and the stored previous timestamp",
   "test_float_form": [
    "paid = f(paid_w)/1e18; gamma = 1 - f(clamp(fee_w,0,1e17))/1e18; x0 = f(rx_w)/1e18; y0 = f(ry_w)/1e18; grid = ulp(x0 if the pool bought X else y0)",
    "a = (y0*gamma)*x0 if the pool bought X else (x0*gamma)*y0; r = sqrt(a)/sqrt(1e6*0.997) (the divisor is the constant double 8782888972198741 * 2^-43)",
    "d = gamma + r*0.997; n = round_half_even((paid*d)/grid); HIT iff n > 0 and trunc(((n*grid)/d)*1e18) == paid_w; one candidate only (cap24); else MISS",
    "22 binary64 operations by qbase.py kinds: i2f 4, div 7, mul 5, addsub 2, sqrt 1, ulp 1, round 1, wad_check 1"
   ],
   "test_integer_form": "qlite_int.test(paid_w, rx_w, ry_w, fee_w, is_buy, 1, counter): every double is (m, e), 2^52 <= m < 2^53, value m*2^e; rnd (integer*2^e to nearest-even double: int to float, exact products, exact sums, 2^-e - m for 1 - fee), fdiv (floor division and remainder), fsqrt (integer Newton root of the mantissa shifted to [2^106, 2^108), 54th bit rounds, never a tie), rint (round half even of a double over 2^g). Exact shortcuts: ulp(x) = 2^e; n*grid is exact; 1 - f = RN((2^-e - m)*2^e). All intermediates stay below 2^256 in the LeanTell domain (reserve wads in [2^60, 2^120), paid wad < 2^120, fee wad <= 1e17); widest seen on replica callbacks: 106 bits.",
   "on_hit": "qbase.py update, unchanged: s = cwy/cwx; g = 1 - fee_w/1e18; cand = s*g/0.997 if the pool bought X else s*0.997/g; rival estimate := cand; synced; table lookup at it; the 0.35 pull is skipped on that callback",
   "on_miss_or_not_tested": "LEANBASE unchanged (one-sided bound and the 0.35 pull)"
  }
 },
 "choose": {
  "seeds": [
   64000,
   64895
  ],
  "n": 896,
  "note": "two tranches, 64512..64895 (6 blocks) then 64000..64511 (8 blocks), every arm on a block before the next; the pick rule was in exp.py before any choose seed was scored and was applied once to all 896",
  "pick_rule": "cap24_gate unless cap40_gate choose mean_diff is more than 0.005 above it (cap24 ungated is the reference arm, not a candidate)",
  "arms": [
   {
    "name": "cap24 (ungated, reference)",
    "minus_base": {
     "mean_diff": 0.03569,
     "se": 0.005258,
     "min": -0.559062
    },
    "callbacks": 9836085,
    "tested": 6406915,
    "tested_later": 3518068,
    "tested_first": 2888847,
    "hits": 5023488,
    "hits_moving_rival": 117293,
    "not_arb_callbacks_the_gate_skipped": 0
   },
   {
    "name": "cap24+GATE = pick",
    "minus_base": {
     "mean_diff": 0.033945,
     "se": 0.005211,
     "min": -0.559062
    },
    "callbacks": 9835603,
    "tested": 6384057,
    "tested_later": 3517890,
    "tested_first": 2866167,
    "hits": 5004631,
    "hits_moving_rival": 114972,
    "not_arb_callbacks_the_gate_skipped": 22657
   },
   {
    "name": "cap40+GATE",
    "minus_base": {
     "mean_diff": 0.037719,
     "se": 0.005387,
     "min": -0.569531
    },
    "callbacks": 9836618,
    "tested": 6384562,
    "tested_later": 3518396,
    "tested_first": 2866166,
    "hits": 5674716,
    "hits_moving_rival": 127203,
    "not_arb_callbacks_the_gate_skipped": 22624
   }
  ],
  "paired": {
   "cap24_gate_minus_cap24": {
    "mean_diff": -0.001745,
    "se": 0.000984
   },
   "cap40_gate_minus_cap24_gate": {
    "mean_diff": 0.003774,
    "se": 0.00196
   },
   "cap40_gate_minus_cap24": {
    "mean_diff": 0.002029,
    "se": 0.002095
   }
  },
  "pick": "cap24_gate: cap40+GATE is +0.0038 (se 0.0020) above it, inside the 0.005 tolerance"
 },
 "frozen": {
  "pick": "cap24+GATE",
  "policy": "qgate:Policy",
  "params": {
   "soft": 1,
   "qm": "qm_k1e-5.json",
   "a0": 0.35,
   "ainf": 0.35,
   "q": 1,
   "cap": 24,
   "gate": 1,
   "gmax": 6,
   "form": "float"
  },
  "code_sha256": {
   "qgate.py": "52b24b4345b80971dfa0d20240bff7eb66e97231be7c572109eadc3a32d1f964",
   "qlite_int.py": "9bd33e89aad2fb4751f4a9188ce669beb011979fe23a533c1eed27e43b53a3c7",
   "exp.py": "b9137092d276105df9226768479f5561501024d4346086f7cac2325de84531a1"
  },
  "code_sha256_definition": "sha256 of the UTF-8 bytes of each file in code_zb64",
  "base_sha256": {
   "leanbase.py": "ba015769f7981d7798acbbc9aff8c0e0c59825bb1541d55bcdef49311d7a04bc",
   "stalerival.py": "d124a171d35b024daed840e5449d352b2b5e50a68ce98c8a9aaafaf3419d23da",
   "lean_tell.py": "b70054f8c0561779e40c4c8df3f41ab08da05b9aef591816ac6c9034beb40a95",
   "tellpol.py": "7d5961c45bec56292533e65607245ad119b8733c760a5bf28f76a2e07bc3960b",
   "real.py": "6a4a0f0e7f8b43d38e5eaa9d8b2e847a0771aee7f89551b122fe89bfe7969b5f",
   "replica2.py": "54380c8755f4e42e9a0426759e918eacd2c5f915b7f04e5d0501c394c5846b40",
   "run.py": "91133e4ef485626226679d73349b5b4e374d9713ac5d7e9d36a39e1afd75933c"
  },
  "frozen_before_report": true,
  "report_form": "both: float decides, integer form compared on every tested callback"
 },
 "report": {
  "seeds": [
   10000,
   12047
  ],
  "n": 2048,
  "blocks": "32 x 64 seeds in order, LEANBASE and every arm on a block before the next, each block once",
  "work_seconds": 1127,
  "base_mean_edge": 536.603391,
  "arms": [
   {
    "name": "cap24 (ungated, reference)",
    "minus_base": {
     "mean_diff": 0.040558,
     "se": 0.003683,
     "min": -2.331133
    },
    "worst5": [
     [
      11701,
      -2.3311
     ],
     [
      10278,
      -0.9813
     ],
     [
      10449,
      -0.7224
     ],
     [
      11953,
      -0.6962
     ],
     [
      11643,
      -0.6663
     ]
    ],
    "callbacks": 22402968,
    "tested": 14589764,
    "tested_later": 7990337,
    "tested_first": 6599427,
    "hits": 11442358,
    "hits_moving_rival": 267466,
    "not_arb_callbacks_the_gate_skipped": 0
   },
   {
    "name": "cap24+GATE = pick",
    "minus_base": {
     "mean_diff": 0.038568,
     "se": 0.003636,
     "min": -2.339018
    },
    "worst5": [
     [
      11701,
      -2.339
     ],
     [
      10278,
      -1.0013
     ],
     [
      11643,
      -0.6792
     ],
     [
      11953,
      -0.6743
     ],
     [
      10879,
      -0.608
     ]
    ],
    "callbacks": 22401975,
    "tested": 14536942,
    "tested_later": 7989923,
    "tested_first": 6547019,
    "hits": 11398837,
    "hits_moving_rival": 262257,
    "not_arb_callbacks_the_gate_skipped": 52433
   },
   {
    "name": "cap40+GATE",
    "minus_base": {
     "mean_diff": 0.041594,
     "se": 0.003851,
     "min": -2.326802
    },
    "worst5": [
     [
      11701,
      -2.3268
     ],
     [
      11261,
      -1.6731
     ],
     [
      10278,
      -1.0564
     ],
     [
      11643,
      -0.7748
     ],
     [
      11953,
      -0.675
     ]
    ],
    "callbacks": 22404164,
    "tested": 14538003,
    "tested_later": 7991065,
    "tested_first": 6546938,
    "hits": 12919539,
    "hits_moving_rival": 289689,
    "not_arb_callbacks_the_gate_skipped": 52382
   }
  ],
  "paired": {
   "cap24_gate_minus_cap24": {
    "mean_diff": -0.00199,
    "se": 0.000742
   },
   "cap40_gate_minus_cap24_gate": {
    "mean_diff": 0.003026,
    "se": 0.001432
   },
   "cap40_gate_minus_cap24": {
    "mean_diff": 0.001036,
    "se": 0.001602
   }
  },
  "pick_block_means": [
   0.004144,
   0.073436,
   0.040399,
   0.068585,
   0.034747,
   0.052317,
   0.022406,
   0.04627,
   0.022467,
   0.054894,
   0.014048,
   0.035877,
   0.040935,
   0.012113,
   0.031472,
   0.05036,
   0.057644,
   0.052626,
   0.032189,
   0.074387,
   0.036491,
   0.0227,
   0.021251,
   0.078942,
   0.0237,
   0.00955,
   0.008142,
   -0.000471,
   0.045716,
   0.06733,
   0.054938,
   0.04457
  ]
 },
 "cost": {
  "extra_storage_words": 0,
  "worst_ops_per_callback": 298,
  "unit": "integer operations of qlite_int.test on one tested callback (at most one test per callback), annotated by hand beside each Python integer operator in qlite_int.py; a short-circuit comparison chain is charged in full; msb = one bit length of a value of unknown size; the Newton square root is counted iteration by iteration",
  "worst_ops_by_kind": {
   "mul": 11,
   "div": 11,
   "addsub": 101,
   "shift": 60,
   "cmp": 84,
   "bit": 19,
   "msb": 12
  },
  "mean_ops_per_test": 270.54,
  "mean_ops_by_kind": {
   "mul": 10.84,
   "div": 10.84,
   "addsub": 89.02,
   "shift": 56.92,
   "cmp": 73.54,
   "bit": 17.7,
   "msb": 11.68
  },
  "max_intermediate_bits": 106,
  "cap40_gate_for_comparison": {
   "worst_ops": 502,
   "mean_ops": 305.21,
   "measured_on": "choose seeds"
  },
  "binary64_ops_of_the_float_form": 22,
  "hit_update_not_counted": "the hit update (qbase.py counts 7 binary64 operations) is policy arithmetic the contract does in its own fixed point; it was not rewritten here",
  "runs_on_peak_path": false,
  "runs_on_peak_path_basis": "by construction: the gate never runs the test on a first callback 7 or more steps after the previous own callback. That the peak call is such a callback, and that the gated callbacks have 66,000 gas free, is the brief statement; no gas was measured here.",
  "share_of_callbacks_tested": 0.6489
 },
 "checks": {
  "fetch": "fetch.sh at 66604b3: fetched 34 files, 0 mismatched",
  "leanbase": "reference_zb64 written over it; leanbase.py sha256 equals frozen.code_sha256 of the LEANBASE artifact; the 10 imported dependencies and both tables (pol_mid.json, qm_k1e-5.json) equal its pinned sha256; 14 files it lists that this run never imports (check.py, gates.py, dp.py, ...) differ from its list as fetched, and 3 of 3 tried match once its credit comment line is prepended",
  "q0_is_leanbase": "qgate q=0 gives the same edge as leanbase:Policy on 8 of 8 seeds (64000..64007)",
  "qgate_is_qlite_on_leanbase": "qgate cap24 and cap40 ungated give the same edges as qlite.Policy mixed over leanbase.Policy (cap 24 / 40, order b) on 8 of 8 seeds; float_test equals qlite.capped on 58159 + 58156 tested callbacks, 0 mismatches",
  "ungated_cap24_reproduces_qlite": "cap24 ungated on LEANBASE, report seeds: +0.04056 se 0.00368 min -2.3311; the q-lite artifact has 0.04056, 0.00368, -2.3311 on BASE",
  "int_equals_float": {
   "report_pick": {
    "seeds": 2048,
    "callbacks": 14536942,
    "float_hits": 11398837,
    "int_hits": 11398837,
    "mismatches": 0
   },
   "choose_cap24_gate": {
    "seeds": 896,
    "callbacks": 6384057,
    "float_hits": 5004631,
    "mismatches": 0
   },
   "choose_cap40_gate_three_candidates": {
    "seeds": 896,
    "callbacks": 6384562,
    "float_hits": 5674716,
    "mismatches": 0
   },
   "smoke_ungated": {
    "seeds": 8,
    "callbacks": 116315,
    "mismatches": 0
   },
   "int_form_deciding": "form=int gives the same edges as form=float for cap24+GATE on 8 of 8 seeds",
   "synthetic": {
    "tests": 300000,
    "float_hits": 73065,
    "mismatches": 0,
    "note": "router splits, +-1 wei neighbours, binade edges, fee 0 and 10%, tiny and huge amounts; RNG seed 20261110, no replica seed"
   },
   "primitives": "rnd, wad2f, fmul, fdiv, fadd, fsqrt, fprev, fnext, rint and 1 - fee each equal Python binary64 on 200000 random cases (ties and binade edges included); the three constants equal 0.997, sqrt(1e6*0.997) and 1e18"
  },
  "no_hidden_input": "structural: run.Blind hands on_trade only side, amounts, timestamp and reserves, and init nothing; garble: with the true price, rival spot, arb flag, order index and run parameters replaced by wrong values the edges are identical on 4 of 4 seeds for each gated arm",
  "frozen_before_report": "freeze.json written after the last choose block and before the first report block; exp.py refuses choose after freeze and asserts the three sha256 before every report block; every report block was run once (it refuses an existing block)",
  "report_time": "1127 s of block work, under 40 minutes, all 2048 seeds",
  "advance_test": "pick mean_diff 0.03857 >= 0.015; mean_diff - 2 se = 0.03130 > 0"
 },
 "advance": true,
 "advance_reason": "pick cap24+GATE: report mean_diff +0.03857 se 0.00364 over LEANBASE on 2048 seeds, integer form equal to the float form on all 14536942 tested callbacks, reads only callback inputs and own state. The gate costs -0.0020 (se 0.0007) against ungated cap24.",
 "code_encoding": "base64(zlib(JSON path:text)); qlite_int.py (the integer test) and qgate.py (gate, float reference, update) are what a port needs beyond LEANBASE; exp.py is the runner, for reproduction only. Place beside LEANBASE files; smoke additionally needs qlite.py and qbase.py from the q-lite and qbase artifacts.",
 "code_zb64": "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",
 "commands": [
  "LEANBASE setup.commands (fetch.sh at 66604b3, reference_zb64 over it)",
  "python3 -I exp.py prim",
  "PROCS=4 python3 -I exp.py smoke",
  "PROCS=4 python3 -I exp.py choose 64512 6",
  "PROCS=4 python3 -I exp.py choose 64000 8",
  "python3 -I exp.py freeze",
  "PROCS=4 python3 -I exp.py report 395   (three times: 12 + 12 + 8 blocks)",
  "python3 -I exp.py summary"
 ],
 "seeds_used": {
  "smoke_and_timing": [
   64000,
   64007
  ],
  "garble": [
   64000,
   64003
  ],
  "choose": [
   64000,
   64895
  ],
  "report": [
   10000,
   12047
  ],
  "note": "the 8 smoke seeds are inside the choose range and their arm means were printed before choosing; no report seed was run before the freeze; none was run twice"
 },
 "not_done": [
  "no Solidity and no gas measurement: the 66,000 gas headroom and the peak path are the brief statement, the integer operation count is the only cost measured",
  "no engine run, no submission (replica only)",
  "the hit update and the table lookup were not rewritten in integers (only the test was asked)",
  "equality of the integer and float forms is by construction of each primitive plus the counts above, not a machine-checked proof over all inputs; the integer form handles positive normal doubles only (always the case in the LeanTell domain)",
  "the operation count is for this direct form: a port can drop most msb calls (a product of two mantissas has 105 or 106 bits) and can cache gamma with the fee; not tried",
  "cap40+GATE was not picked: +0.0030 (se 0.0014) over the pick on report seeds for 502 worst operations against 298; its integer form (ncand=3) is in qlite_int.py and was checked on the choose seeds only",
  "the contract storage layout was not inspected: extra_storage_words = 0 is for the replica policy state"
 ]
}
