{"credit":"Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved (replica, Gaussian filter, posterior policy, qm tables, gates.py). QLX5 contract, QLX reference, LEANBASE, LEAN, lb-4, driver and the evaluation kit are the credited IdentityMD artifacts in manifest and sources.json, all built on Taylor's work.","item":"copy-a","batch":"e07-qlx-cert","pick":"QLX5","scope":"Targeted independent T/F audit of ONE existing contract (QLX5, copy a), plus gate P. Not a completed P/Q/T/F/G/E chain: Q, G and E were not run here, no engine seed was used, nothing was submitted, and no earlier E/Q/G figure is inherited.","certified_original":true,"needs_revalidation":false,"source_unchanged":true,"certification_basis":"P, T and F all pass on the byte-identical e183e5bc... source under the declared protocol, against the REPAIRED reference (production U1/QPL tables, raw five-denominator loop). Against the reference as delivered (full qm_k1e-5 tables) labels still agree but F fails; autonomous replay (no quote feedback) fails. Both are reported below, not hidden.","source_sha256":"e183e5bc3fb794b7067703b10a7da9920267aa5f4caa968e16ca101b02338f40","reference_sha256":"2018de6cfef82c6494ba18713cf6098653865b392e9419b6c23b8daac55a8e91","reference_sha256_note":"sha256 of the repaired policy.py (entry point). reference_set_sha256 = sha256 over the lines \"<sha256>  <name>\\n\" of manifest.reference_closure sorted by name.","reference_set_sha256":"cc908aaed6a5d0ccf4bcd1c3d32e805cc20c41af463fa7cd83c0c29b939311dc","reference_original_sha256":{"policy.py":"0031c006ab44b5e88773c6a219d1da0c78b4a154e0596a58ac4e521d539de038","runner.py":"60e27cf262985a4d8f12af8a159bb8ea023d26dd3abcaa530eff19c740ce2711","qlx.py":"642c7ddbdf782a05ca027609cabbec97c459be9764c6ab2fc8b324f52525e771"},"contract":{"source_chars":47230,"runtime_bytes":22440,"runtime_sha256":"903a0cf860910022916e7c16aa1ffcfb94b0db9e25074665947d786615a44ae8","creation_sha256":"275fd44fa37b567c17e18607436eebae510e2bd157979bf3a2fdb61228d59dab","compiler":"solc 0.8.24 optimizer 200 viaIR paris (kit pinned)","creation_equals_kit_engine_eval_compile":true,"qpl_blob_sha256":"830868f9b3e5ad162c4f2070e6faed0782c7b4cc308ab69044b2cf7306f68099","note":"size and characters are compile observations only; gate G (engine peak gas) was not run"},"gates":{"P":"pass","T":"pass","F":"pass","Q":"not_run","G":"not_run","E":"not_run"},"P":{"status":"pass","command":"python3 -B gatep.py --reference scratch/reference/taylor --cache scratch/cache/gatep","result":"gatep: PASS (executed gates.py)","gates_py_sha256":"603280c1f595ca163ffaf2ba1ebdc7945fdb08dabae67fc53c922d39e1cce604","columns":["seed","perfect-info","gaussian+plain","gaussian+qm","lattice+qm"],"rows":[[10000,448.261189,443.455598,443.522608,443.66352],[10001,576.779199,571.463409,571.623551,571.977293],[10002,531.886497,525.168028,525.865859,526.411631]],"note":"Taylor's unmodified gates.py through the kit; a fresh cache, so it executed (5.5 s). It does not involve the contract."},"T":{"status":"pass","seeds":[74200,74249],"callbacks":549802,"mismatching_callbacks":0,"first_failure":null,"compared":"every callback of all 10,000 steps of each seed: inferred arb label, tested flag, split verdict, tracked offset before (m0) and after (m1); on every first own trade of a step also the 4-way lean label","mismatches_by_field":{"arb":0,"tested":0,"verdict":0,"m0":0,"m1":0,"lean_label":0},"probe_inconsistent":0},"F":{"status":"pass","seeds":[74200,74249],"per_seed_callbacks":2000,"callbacks":100000,"fee_values":200000,"tolerance_bps":0.01,"over_tolerance":0,"worst_bps":1.8001225510211327e-10,"worst_bps_bid_ask":[1.8001225510211327e-10,7.229460086133344e-11],"beyond_gate_all_callbacks":{"callbacks":549802,"worst_bps":9.389156119254949e-09,"over_tolerance":0,"worst":{"seed":74201,"index":8156,"side":0,"contract":9399916684656340,"reference":0.009399916683717424,"error_bps":9.389156119254949e-09,"inputs":[false,165891861944857056,15595001071732303872,8308,103055355972574068736,9703522835495565393920,6726956514716501,0],"expected":{"arb":false,"tested":true,"verdict":true,"m0":8,"m1":8},"actual":{"arb":false,"tested":true,"verdict":true,"m0":8,"m1":8}}}},"worst_bps":1.8001225510211327e-10,"counts":{"seeds":50,"callbacks":549802,"first_trades":352957,"lean_pos":191781,"lean_neg":161176,"lean_unsupported":0,"lean_over":0,"arb_labels":191612,"split_tested":356965,"split_hits":317544,"offset_moves":118104,"peak_message_gas_pyrevm":180159,"rows_sha256":"8820c8bf766557cd1d42d77a3155768e6ae52d44c427851f4bd02b1d7ad7ad2d","rows_sha256_definition":"sha256 of JSON [[seed, sha256 of that seed's concatenated JSON [inputs, returned fees, [arb,tested,verdict,m0,m1]] per callback], ...]","per_seed_columns":["seed","callbacks","tested","split_hits","worst_bps_first2000","row_sha256_prefix"],"per_seed":[[74200,12862,8620,7641,3.98e-11,"df72c03e0f2b"],[74201,9754,6045,5374,1.97e-11,"ee5e2d36473c"],[74202,10705,6794,6079,2.49e-11,"48515903c1f6"],[74203,11877,7744,6878,1.33e-11,"8d5b3665153f"],[74204,11077,7332,6522,2.96e-11,"290de5025c77"],[74205,10839,6870,6112,6.35e-11,"60202329b221"],[74206,11556,7585,6769,2.27e-11,"643b3435c29e"],[74207,9674,6098,5405,1.87e-11,"79ea563ecd9e"],[74208,11296,7350,6546,2.27e-11,"debb6c47d8c0"],[74209,12558,8407,7493,1.8e-10,"ba813e6ad9e2"],[74210,13205,8870,7951,3.72e-11,"51e6d734f75e"],[74211,9288,5662,5047,2.06e-11,"b1361016f119"],[74212,12762,8541,7484,3e-11,"d4829981c483"],[74213,12453,8500,7542,3.53e-11,"a528c17eb168"],[74214,9622,6028,5398,6.55e-11,"473984f6ddf1"],[74215,12670,8474,7568,5.37e-11,"80aa278bebe2"],[74216,11407,7467,6649,3.68e-11,"8fbdc820f3ee"],[74217,9048,5447,4918,5.03e-11,"1384fc8f8514"],[74218,12333,8238,7278,4.97e-11,"e5d56e38b84a"],[74219,9579,6017,5373,4.7e-11,"445001677643"],[74220,10835,7190,6390,3.36e-11,"d613c8bf3bd5"],[74221,8751,5333,4717,3.73e-11,"a748a00ec29e"],[74222,11018,7424,6638,4.06e-11,"e027844f17a8"],[74223,9836,6144,5462,2.88e-11,"31dd002bec43"],[74224,11285,7512,6671,5.53e-11,"a9c13cabdab3"],[74225,9624,6078,5391,1.44e-11,"9f190eea971e"],[74226,10599,6738,6021,3.04e-11,"51cc924338c2"],[74227,11993,8050,7129,2.53e-11,"840cd1c22c5a"],[74228,9177,5580,5001,2.13e-11,"a33eaf4268f5"],[74229,12052,7983,7178,2.65e-11,"a657395e2b2a"],[74230,10426,6702,5953,1.44e-11,"22baf6aefbac"],[74231,11994,7956,7112,1.94e-11,"8bda298bd598"],[74232,12534,8500,7555,3.53e-11,"429d2fc82b3b"],[74233,11873,7811,6941,2.18e-11,"604484ab0dbc"],[74234,10973,7447,6536,2.35e-11,"fca17d922459"],[74235,10875,7022,6236,2.27e-11,"8265cdef679b"],[74236,10583,6686,5994,3.61e-11,"2c5a44ea98e1"],[74237,12035,8096,7135,2.16e-11,"63d415aa7536"],[74238,9935,6324,5617,1.99e-11,"1acb2f7bf1b7"],[74239,9711,5909,5340,1.5e-11,"cfa48d88dde0"],[74240,9627,6035,5408,1.46e-11,"b1e577e2cf0f"],[74241,12889,8588,7612,1.87e-11,"e31f16558c32"],[74242,10795,7138,6268,1.92e-11,"56845fd0b5c2"],[74243,12101,7968,7039,2.66e-11,"e069183ff46b"],[74244,12883,8640,7685,4.77e-11,"1e19ac54b1ea"],[74245,12166,8056,7129,4.1e-11,"e52263160bdb"],[74246,9794,6074,5429,3.6e-11,"a20d89cc9c7c"],[74247,9538,6153,5452,1.56e-11,"877d4e37b0a8"],[74248,9194,5474,4837,2.71e-11,"68efcecaf3e6"],[74249,10141,6265,5641,3.29e-11,"20ad7a56a673"]]},"protocol":{"stream":"replica_e.py of the QLX reference (Taylor RNG and event ordering, sha256 67aebe61...), driven by the fees the CONTRACT returns (closed loop), 10,000 steps a seed, seeds 74200..74249. The canonical reference-driven vector file (sha256 4706aec7...) was not regenerated; only seed 74200 of it was rebuilt in memory for the reproduction.","replay_inputs":"per callback: isBuy, amountX, amountY, timestamp, reserveX, reserveY as wads (int(float*1e18)), and the prior observable quotes = the bid and ask fee wads the contract returned at its previous callback (2823606104386589 each after afterInitialize). Nothing else crosses from the contract to the reference.","order":"reference.on_trade is evaluated first on those inputs, then afterSwap is executed, the outputs are compared, and only then are the returned fee wads handed to the reference as the next prior quotes","private_state":"the reference keeps its own filter mean/variance, rival spot, synced flag, phase count, previous reserves and tracked offset m0 for the whole seed; none is ever copied from the contract. EVM storage is only read (slots 2, 3, 4, 6); no storage write, no fee injection, no expected label is passed to the contract.","contract_labels":"arb = phase count (slot 2 bits 192..223) is zero after the call; tested = not arb and timestamp < previous timestamp + 7; tracked offset = slot 6 as int256 before and after. The split verdict is not observable from Strategy storage, so a probe contract holding the audited TellMath library text verbatim is called with the contract's own pre-call slots 3, 4, 6 and stored paid-side fee; on every callback its offset is checked against slot 6 after the call, the stored fees against the returned fees and the synced bit on a hit (0 inconsistencies).","fee_error":"abs(returned wad / 1e18 - clampf(reference fee)) * 1e4 bps, bid and ask separately","whole_policy":true,"primitive_only_checks":"the synthetic block under diagnosis.raw_vs_binade_safe is primitive-only and is not counted in T or F"},"autonomous":{"status":"fail","definition":"same contract-driven stream, but a second reference instance is never given the contract's quotes and uses its own computed fee wads as the fees in force","callbacks":549802,"mismatching_callbacks":542700,"seeds_with_mismatch":50,"first_failure":{"seed":74200,"index":2,"inputs":[true,20256835573565452,2017868906927105792,3,99993318696048132096,10000668175037991223296,4191818144079380,2010641080974809],"differing":["m1"],"expected":{"arb":false,"tested":true,"verdict":true,"m0":0,"m1":-2},"actual":{"arb":false,"tested":true,"verdict":true,"m0":0,"m1":0},"reference_own_fees_in_force":[4191818144079096]},"fee_values_over_tolerance":1015709,"worst_fee_bps":486.2889009361281,"reading":"The first divergence is a tracked offset of -2 against 0 with both verdicts true, caused by a 284-wei difference in the paid-side fee in force (4191818144079096 reference, 4191818144079380 contract). Float reference and fixed-point contract fees agree to about 1e-10 bps but not to the wei, and the lean tell and the offset both use exact arithmetic on that wad. In the engine the fee in force IS the contract's wad, so the contract is the one using the true value; bit-level autonomy of the Python reference is not achievable and is not a contract defect."},"reproduction_of_seed74200_callback1":{"reproduced":true,"method":"the earlier method: the reference runs its own stream with its own fees in force, the contract replays those callbacks with its own stored fees, no feedback","full_qm_reference":{"protocol":"reference own stream (reference fees in force), contract replays it with its own stored fees; no feedback, no storage writes","table":"qm_k1e-5.json","raw":"orig","seed":74200,"callbacks":12864,"mismatching_callbacks":12521,"contract_init":[2823606104386589,2823606104386589],"callback0":{"contract_fees":[2951324332807182,2400868984894847],"reference_fees":[2956545026965740,2398743533803316]},"first_failure":{"seed":74200,"index":1,"t":3,"input":{"isBuy":true,"amountX":17203908238511686,"amountY":1716529514660578560,"reserveX":99972885036020137984,"reserveY":10002712231818666442752},"differing":["inferred_arb","tested"],"expected":{"inferred_arb":true,"tested":false,"verdict":false,"m1":0},"actual":{"inferred_arb":false,"tested":true,"verdict":false,"m1":0},"fees_in_force":{"contract":[2951324332807182,2400868984894847],"reference":[2956545026965740,2398743533803316]},"leanLabel_with_contract_fees":"neg","leanLabel_with_reference_fees":"pos"}},"u1_reference_same_method":{"protocol":"reference own stream (reference fees in force), contract replays it with its own stored fees; no feedback, no storage writes","table":"q_u1.json","raw":"1","seed":74200,"callbacks":12865,"mismatching_callbacks":12758,"contract_init":[2823606104386589,2823606104386589],"callback0":{"contract_fees":[2951324332807182,2400868984894847],"reference_fees":[2951324332807092,2400868984894888]},"first_failure":{"seed":74200,"index":1,"t":3,"input":{"isBuy":true,"amountX":17466330340236032,"amountY":1742717388409800960,"reserveX":99973146773445476352,"reserveY":10002686043944917139456},"differing":["inferred_arb","tested"],"expected":{"inferred_arb":true,"tested":false,"verdict":false,"m1":0},"actual":{"inferred_arb":false,"tested":true,"verdict":false,"m1":0},"fees_in_force":{"contract":[2951324332807182,2400868984894847],"reference":[2951324332807092,2400868984894888]},"leanLabel_with_contract_fees":"neg","leanLabel_with_reference_fees":"pos"}},"callback0_fee_gap_bps_full_qm":[0.05220694158558,0.02125451091531],"note":"Fees and inputs of the full-qm run equal the earlier report (contract [2951324332807182,2400868984894847], reference [2956545026965740,2398743533803316]; index 1, t=3, lean label neg with contract fees, pos with reference fees). With the U1 reference the callback-0 gap falls to 90 and 41 wei, yet the same method still fails at index 1: the method, not only the tables, is the cause."},"diagnosis":{"summary":"The Solidity is not wrong. The seed 74200 callback 1 failure has two causes outside the contract: (1) the reference was run over the full qm_k1e-5 tables while the contract carries the compressed U1/QPL tables, and (2) the replay fed the contract trades generated under the reference's fees while the contract tested them against its own stored fees, which an exact-arithmetic tell cannot survive even at a 90-wei gap.","full_qm_vs_production_u1_qpl":{"finding":"reference wrong for a T/F gate of this contract; repaired to the tables decoded from the contract's own QPL blob","closed_loop_contrast_full_qm":{"seeds":[74200,74203],"callbacks":45198,"label_mismatching_callbacks":0,"f_fee_values":16000,"f_over_tolerance":10985,"worst_bps_first2000":3.6371666321520504,"worst_bps_all_callbacks":14.426252011047591,"note":"4 seeds only, quotes fed back as in the protocol: labels and offsets still all agree, fees do not (F fails by a wide margin)"},"consequence":"The Q figures of the QLX reference were measured over full qm tables; the contract and the repaired reference are a different fee policy. No Q/E number carries over."},"drift_search":{"finding":"agrees","detail":"tracked-offset search: candidates m0, m0+1, m0-1, m0+2, m0-2 in that order, an accept replaces m0, a miss keeps it, gate dt<=6 on callbacks not read as arb. m0 before and m1 after equal on all 549802 callbacks (356965 tested, 317544 hits, 118104 offset moves). Not involved in the earlier failure (both verdicts false, both offsets 0 there)."},"raw_vs_binade_safe":{"finding":"contract implements the raw five-denominator loop (dc = dm + m, original exponent), i.e. qlx.hit_mku, not the binade-safe qlx.hit","replay":{"primitive_evaluations":905173,"note":"both reference instances, 50 seeds","raw_vs_binade_safe_differences":0,"candidates_leaving_the_binade":0},"synthetic_primitive_only":{"cases":6000,"crossing_cases":2263,"raw_hits":5082,"contract_ne_raw":0,"contract_ne_binade_safe":191,"raw_ne_binade_safe":191,"rng_seed":74299,"example":{"note":"contract follows raw","pw":6170215743118489,"rx":75152712586552819712,"ry":13590475758350566947769,"fee":6049912771483695,"buy":true,"m0":3,"d0_mantissa":9007199254740991,"contract":[true,2],"raw":[true,2],"binade_safe":[false,3]},"scope":"primitive only, synthetic; not whole-policy T/F"},"consequence":"The repaired reference defaults to the raw loop so that reference and contract are the same function everywhere; on the 50 audited seeds no candidate left the binade, so the choice changes no label here."}},"changes":{"solidity":"none: source byte-identical, sha256 e183e5bc..., no repair needed, no new hash","reference":["policy.py: option raw (default 1) selects qlx.hit_mku, the raw five-denominator loop; raw=0 keeps the binade-safe qlx.hit","policy.py: quotes(bw, aw) sets the fee wads in force from the prior observable quotes","runner.py: make() reads the production U1/QPL tables q_u1.json by default; QLX_QM=<path to qm_k1e-5.json> restores the full-qm research arm","new qpl_u1.py: decodes the contract's QPL blob to the qm_k1e-5.json layout with the contract's own integer node arithmetic; qlx.py and every other module unchanged"],"reference_init_fee_wads":[2823606104386589,2823606104386589],"contract_init_fee_wads":[2823606104386589,2823606104386589]},"reference_patch":"Credit: Taylor (gtmcknight), amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved. Reference repair for the QLX5 T/F audit; apply with: patch -p1 < ref.patch (inside the directory holding policy.py and runner.py of reference_zb64).\n--- a/policy.py\n+++ b/policy.py\n@@ -11,6 +11,7 @@\n         opt = dict(opt or {})\n         self.nc = int(opt.pop('nc', self.NC))\n         self.enabled = bool(opt.pop('q', 1))\n+        self.raw = bool(opt.pop('raw', 1))  # raw five-denominator loop of the contract (qlx.hit_mku); raw=0: binade-safe qlx.hit\n         super().__init__(T, opt)\n         self.m0 = 0\n         self.pending = False\n@@ -23,7 +24,7 @@\n             paid, fee, buy, xw, yw, px, py, dt = self.cur\n             if dt <= 6:\n                 self.last['tested'] = True\n-                self.qhit, self.m0 = qlx.hit(paid, px, py, fee, buy, self.m0, self.nc)\n+                self.qhit, self.m0 = (qlx.hit_mku if self.raw else qlx.hit)(paid, px, py, fee, buy, self.m0, self.nc)\n                 self.last.update(verdict=self.qhit, m1=self.m0)\n                 if self.qhit:\n                     s = yw / xw; g = 1.0-fee/1e18\n@@ -35,6 +36,10 @@\n                     self.last['candidate_spot'] = cand\n         return tellpol.TellPolicy.lookup(self, w, w2, phs, sd)\n \n+    def quotes(self, bw, aw):\n+        \"\"\"Prior observable quotes: the fee wads in force, exactly as the engine holds them.\"\"\"\n+        self.bw, self.aw = int(bw), int(aw); self.fb, self.fa = self.bw/stalerival.WAD, self.aw/stalerival.WAD\n+\n     def on_trade(self, is_buy, ax, ay, t, x, y, flag=None):\n         self.obs = tuple(map(stalerival.wad, (ax, ay, x, y)))\n         axw, ayw, xw, yw = self.obs\n--- a/runner.py\n+++ b/runner.py\n@@ -13,7 +13,7 @@\n CREDIT='Taylor (gtmcknight), amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved'\n \n def make(arm):\n-    opt=dict(soft=1,qm=os.path.join(HERE,'qm_k1e-5.json'),a0=.35,ainf=.35)\n+    opt=dict(soft=1,qm=os.environ.get('QLX_QM',os.path.join(HERE,'q_u1.json')),a0=.35,ainf=.35)  # production U1/QPL tables (qpl_u1.py); QLX_QM=qm_k1e-5.json restores the full-qm research arm\n     cls=leanbase.Policy if arm=='LEANBASE' else getattr(policy,arm)\n     return cls(load(os.path.join(HERE,'pol_mid.json')),opt)\n \n","reference_patch_sha256":"21241bdeef99888bb5e8e4c0501fae2900b872a15c734299e1963c01f4d1f35a","harness_encoding":"base64(zlib(UTF-8 JSON {filename: text}))","harness_zb64":"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","harness_sha256":{"cert.py":"6cb5f5d22658a0416c0f39f4f3bfa009a457d5cc54d8405d34c5a47dc68d578d","qpl_u1.py":"7e2fed1296962d563b0a5724e30bfec9b0c3fa6d5923ba1e2444a4f5af23283a","fuzz.py":"ee36f781853ecd075ed7ef6ae76dd9013d19887564a50dc180216e77be2f9e3d"},"reproduction_commands":["mkdir -p test/scratch && cd test/scratch   # everything below stays under test/scratch","curl -fLsS https://codeload.github.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/tar.gz/45e7563d1a29ffca9d608fdf60c90bf2624d2d01 -o kit.tgz && mkdir kit && tar xzf kit.tgz -C kit --strip-components=1","(cd kit && bash setup_fast.sh --platform linux-x86_64 --cache \"$PWD/scratch/cache\" --scratch \"$PWD/scratch\" && . scratch/env.sh && python3 -B reference/materialize.py --out scratch/reference && python3 -B gatep.py --reference scratch/reference/taylor --cache scratch/cache/gatep)   # gate P","curl -fLsS https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/fetch.sh -o fetch.sh && sh fetch.sh https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research \"$PWD/amm\"   # 34 files, 0 mismatched","decode reference_zb64 of https://api.imd.fun/artifacts/6c818dc70c445e849f1d26e6b5ce3c369250b83f42b0b35d3c804fa41471e241 (base64, zlib, JSON name:text) into amm/; decode code_zb64 of https://api.imd.fun/artifacts/84a14d5edf847f83dfdd8f6a9c3e034a97004dcae6c069c11b4f6a2ffa7c517c (base64, zlib) to Strategy.sol and check sha256 e183e5bc...","decode harness_zb64 of this result into h/ and write reference_patch to h/ref.patch; (cd amm && patch -p1 < ../h/ref.patch && cp ../h/qpl_u1.py . && python3 -I qpl_u1.py ../Strategy.sol qm_k1e-5.json q_u1.json)   # q_u1.json sha256 62a0e859...",". kit/scratch/env.sh && export KIT=$PWD/kit && python -B h/cert.py compile Strategy.sol out","python -B h/cert.py repro out $PWD/amm qm_k1e-5.json 74200 0   # earlier failure; raw=0 is the delivered binade-safe loop (this run used an unpatched copy of the reference, argument orig)","python -B h/cert.py repro out $PWD/amm q_u1.json 74200 1","python -B h/cert.py tf out $PWD/amm q_u1.json 74200 74249 8   # T, F and the autonomous block; 419 s here","python -B h/cert.py tf out $PWD/amm qm_k1e-5.json 74200 74203 4   # full-qm contrast","python -B h/fuzz.py out $PWD/amm 6000   # primitive only"],"manifest":{"note":"Every file the audit imported or read, with where to get it and its sha256. All six artifact bodies were downloaded here and hash to their names. The LEANBASE overlay was not assumed complete: its nine imported modules are byte-identical in the QLX reference bundle, which is the one actually used.","contract":{"url":"https://api.imd.fun/artifacts/84a14d5edf847f83dfdd8f6a9c3e034a97004dcae6c069c11b4f6a2ffa7c517c","field":"code_zb64","file":"Strategy.sol","sha256":"e183e5bc3fb794b7067703b10a7da9920267aa5f4caa968e16ca101b02338f40"},"reference_bundle":{"url":"https://api.imd.fun/artifacts/6c818dc70c445e849f1d26e6b5ce3c369250b83f42b0b35d3c804fa41471e241","field":"reference_zb64","files":26,"all_26_match_reference_files_sha256":true},"leanbase_overlay":{"url":"https://api.imd.fun/artifacts/efb8e653f8fd061cecf3e92b186470c9c96c5188523364b60ed101e9672869aa","field":"reference_zb64","files":11,"identical_in_reference_bundle":["evalpol.py","lean_tell.py","leanbase.py","par.py","real.py","replica2.py","stalerival.py","tellpol.py","tellref.py"]},"reference_closure":{"evalpol.py":{"sha256":"79a96efe8c543aee125c937554688b37ec2e7df44df4f3435265bba6eb012bf3","origin":"QLX reference bundle (reference_zb64)"},"lean_tell.py":{"sha256":"b70054f8c0561779e40c4c8df3f41ab08da05b9aef591816ac6c9034beb40a95","origin":"QLX reference bundle (reference_zb64)"},"leanbase.py":{"sha256":"ba015769f7981d7798acbbc9aff8c0e0c59825bb1541d55bcdef49311d7a04bc","origin":"QLX reference bundle (reference_zb64)"},"par.py":{"sha256":"bf8a1a2e2a4bf9a23bf4622d726fd815702298ad1f9fa0dd17197230cce63ec1","origin":"QLX reference bundle (reference_zb64)"},"policy.py":{"sha256":"2018de6cfef82c6494ba18713cf6098653865b392e9419b6c23b8daac55a8e91","origin":"QLX reference bundle file repaired by reference_patch"},"qlx.py":{"sha256":"642c7ddbdf782a05ca027609cabbec97c459be9764c6ab2fc8b324f52525e771","origin":"QLX reference bundle (reference_zb64)"},"real.py":{"sha256":"6a4a0f0e7f8b43d38e5eaa9d8b2e847a0771aee7f89551b122fe89bfe7969b5f","origin":"QLX reference bundle (reference_zb64)"},"replica2.py":{"sha256":"54380c8755f4e42e9a0426759e918eacd2c5f915b7f04e5d0501c394c5846b40","origin":"QLX reference bundle (reference_zb64)"},"replica_e.py":{"sha256":"67aebe610bd4a6538219784c16037d7137f8aa2c4ccd58293030066a36bb4713","origin":"QLX reference bundle (reference_zb64)"},"runner.py":{"sha256":"f04b0cc1a009723d50b043d1334f678c45be6d2c73c381953de583672122862c","origin":"QLX reference bundle file repaired by reference_patch"},"stalerival.py":{"sha256":"d124a171d35b024daed840e5449d352b2b5e50a68ce98c8a9aaafaf3419d23da","origin":"QLX reference bundle (reference_zb64)"},"tellpol.py":{"sha256":"7d5961c45bec56292533e65607245ad119b8733c760a5bf28f76a2e07bc3960b","origin":"QLX reference bundle (reference_zb64)"},"tellref.py":{"sha256":"4867a33106ce2597863b8d7c8fb396288954b98f291714801fae8820f1f47aa3","origin":"QLX reference bundle (reference_zb64)"},"pol_mid.json":{"sha256":"efbb5ee102db4d312f64565d9bf7232b6becbe02b624164f744a402bbbf2983b","origin":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/solved/pol_mid.json"},"qm_k1e-5.json":{"sha256":"5ff53e42ca87390e5f65d1caa3f7a480e67a8212fb0670274dfd562b05ba1afd","origin":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/solved/qm_k1e-5.json"},"q_u1.json":{"sha256":"62a0e8596efb7a424c9587463ac9cdc60e4d840b77d09e4ed057e1d5f6ce971e","origin":"generated by qpl_u1.py from Strategy.sol and qm_k1e-5.json; 14,119,829 bytes, not embedded"}},"new_reference_files":{"qpl_u1.py":"7e2fed1296962d563b0a5724e30bfec9b0c3fa6d5923ba1e2444a4f5af23283a"},"taylor":{"research_commit":"66604b3426d8e97a73e2c39940b9b4dece51cc73","fetch_sh":{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/fetch.sh","sha256":"e15046bbf222840e7f1b9fdbf6c151d7e6e3ae92580095d8012cbac6f3ae9628"},"sums":["https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/solved/SHA256SUMS","https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/SHA256SUMS"],"files":34,"mismatched":0,"tables":{"pol_mid.json":{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/solved/pol_mid.json","sha256":"efbb5ee102db4d312f64565d9bf7232b6becbe02b624164f744a402bbbf2983b"},"qm_k1e-5.json":{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/solved/qm_k1e-5.json","sha256":"5ff53e42ca87390e5f65d1caa3f7a480e67a8212fb0670274dfd562b05ba1afd"}},"gates_py":{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/4812a6382311624e1506aca131ca35c378f930d9/research/solved/gates.py","sha256":"603280c1f595ca163ffaf2ba1ebdc7945fdb08dabae67fc53c922d39e1cce604","via":"kit reference/materialize.py"}},"kit":{"base":"https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/45e7563d1a29ffca9d608fdf60c90bf2624d2d01/","commit":"45e7563d1a29ffca9d608fdf60c90bf2624d2d01","sha256":{"setup_fast.sh":"48e150d165ea3b385fb92e0e3a7aefbbe0d97c38c53efa737a587ed62c308d20","engine_eval.py":"0a3ed61457cb66c85a292c82acbb9657b5e5544a98c7aa04c7a6a5dccdc1d3b2","gatep.py":"1d1d65bc18647530037cf3cff73fd8d4448f353d61b4494dd2ee7d556be122db","reference/materialize.py":"79e316706e8b4a84ee29e261c817476120d7a502f9017ec2f7f76f8f4444aaad","bootstrap/manifest.tsv":"f9a0c49310aa6f501eac9a760e537af444d21f556239e3f00a9ed6f1d9628dad"},"runtime":"setup_fast.sh pinned downloads (16, 135,768,787 bytes): Python 3.12.16, pyrevm 0.3.7, py-solc-x 2.1.0, solc 0.8.24, amm-challenge@6b6921f8d463314aa7c96234e1be25a25245f704","engine_contracts":{"AMMStrategyBase.sol":"3f4154a6c4bb8f1223c7fc0bde1f9cd9dba10cef502e300d0f6d229f610b8869","IAMMStrategy.sol":"85b2a0fce484b1c4f70c5bebe6c06042293b2099983f0b641c4a6656c7ea15ff"}},"downstream":{"LEAN":{"url":"https://api.imd.fun/artifacts/a79a3606add967bb8f8ec2af8ef3d61bafb597419c488133597c8af5b9d34505","field":"code_zb64","sha256":"a6dfc3ba6b7a1b19ae77680eeb1d24f1e902a216a10c1093d8388a0510c38c94"},"LB4":{"url":"https://api.imd.fun/artifacts/93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e","field":"bundle.data (base64 tar.xz, sha256 f368c459fec21abaa30e179ffbf03cfbe1c7b194f1ad8b07de3637892d06e9f1)","file":"scratch/Strategy.sol","sha256":"a243bb3570545fb614d8995ced61e811db8e075af68e636add20eaf8fbaeebfb"},"driver":{"url":"https://api.imd.fun/artifacts/764c9461a9f3bab6e277178f4bb48553d1b97c6cca33bed016f7c9bfd611cc42","field":"driver_zb64","sha256":"d3f8646b541a76921a47e9d03247c8c9dfab594076a7c5dca79c36b6c048a282"},"qt1":{"via":"kit reference/materialize.py --out scratch/reference","file":"qt1/Strategy.sol","sha256":"c68887cff61180e12ba2b1ceb333edf76a830f91f63b5d775a8806fb9ec08aca"}},"not_retrievable":"The lean-sol harness named in the LEAN artifact (gates.py, qpl.py of the lookup-u1 bundle, cited there only as fd38823c...) has no full URL in any input, so it was not used; cert.py and qpl_u1.py replace it and were written here. The decoded table hash therefore differs from LEAN's d5645b6d... (different JSON serialisation); the QPL blob hash is the same 830868f9..."},"not_done":["Q, G and E were not run; no engine seed was used; nothing was submitted.","T/F ran on replica_e only (the replica the QLX vectors use), not on Taylor's replica2/replica_t and not on the Rust engine.","A split hit that leaves the offset unchanged is seen only through the probe and the synced bit, not through Strategy storage alone; fee agreement to 1e-8 bps on all callbacks is the indirect check that the contract acted on it.","The repaired reference is the contract's tables read back through qpl_u1.py, so F shows that filter, tell, tracker and fee rule agree given those tables; it says nothing about the 0.111 the compressed tables cost against full qm.","The canonical 1,099,505-row vector file was not regenerated or rehashed.","pyrevm message gas (peak 180159) is not the engine afterSwap peak."]}