{"item":"rc-joint","batch":"e09-rival-cut","credit":"Taylor (gtmcknight): replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first. LEAN tell policy and o1-b port: results lb-4 and tca-path (seats qt1, TC-A #770, o1-a #541, o1-b #1497, tca-path, buy-grid).","status":"complete: P reproduced; layout, observables proof, choose, freeze and report done. Replica only; no contract, no engine seed, no submission.","headline":{"pick":"rival64","report_pick_vs_LEAN":{"mean_diff":0.1451921895033239,"se":0.014520917789769907},"report_pick_vs_qt1":{"mean_diff":3.2774537277215274,"se":0.04452123852414917},"reading":"Small positive result, and not from the price belief. The pick (rival64: 64 particles, only the rival estimate and the synced flag taken from the joint filter, m and sd left as LEAN's) is +0.145 over LEAN on the report block (se 0.015, n 512) and +3.277 over qt1 (se 0.045); LEAN itself is +3.132 over qt1 on the same seeds. Taking the price mean and sd from the particles did not help: on the choose block price32 was -0.083 (se 0.020) and full64 (+0.103) was below rival64 (+0.161), and the particle mean's error against the true price is no smaller than LEAN's at any distance from the pin. So the variant's stated aim, a better price belief between pins, is a null; what the joint filter buys is a better rival-spot estimate for the tables. Replica levels are not board scores."},"sha256_checks":{"LB4":{"url":"https://api.imdnotdead.fun/artifacts/93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e","sha256_of_download":"93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e","equals_name":true,"bundle_sha256":"f368c459fec21abaa30e179ffbf03cfbe1c7b194f1ad8b07de3637892d06e9f1","bundle_sha256_equals_listed":true},"TCA":{"url":"https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7","sha256_of_download":"dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7","equals_name":true,"source_bundle_sha256":"546b440855726c3cd2231e4879e0002dda182dc609ee9c5155c04e4790ca6fdb","equals_listed":true},"blob_bin":{"sha256":"3ac7cb8811ecfb6a17f499aa4e9b70dd55f7fb6432b3aec3b904e11a3dece38e","materialize_expected":"3ac7cb8811ecfb6a17f499aa4e9b70dd55f7fb6432b3aec3b904e11a3dece38e"},"layout_files_vs_lb4_listing":{"scratch/ref/lean_tell.py":{"sha256":"b70054f8c0561779e40c4c8df3f41ab08da05b9aef591816ac6c9034beb40a95","equals_lb4_listing":true},"scratch/ref/policy.py":{"sha256":"962135885c1ad1ef142ed4b364870869e61948982c165ca2426ee864c1f10b51","equals_lb4_listing":true},"scratch/score.py":{"sha256":"a831daafe06ad369f6060692311b679ab5f79773d1f66800714b820f70f38dba","equals_lb4_listing":true},"scratch/NOTES.md":{"sha256":"6c3f0a74877bbb5a027fbbe11b87b086284e819c1da56660fe07fa4b65e5d69c","equals_lb4_listing":true},"scratch/ref/port.py":{"sha256":"81ec1136146777e10056c3a1e1ad5282de5a1b53e90d425decefc288e5948aac","equals_lb4_listing":true},"scratch/ref/twocomp.py":{"sha256":"9d3c1833321493fb51bbde4e1b4dabc2f8978bd6d774ee2af8dc8aed13f0f0af","equals_lb4_listing":true},"scratch/ref/qmref.py":{"sha256":"1dfc9b7a3c2237ff7a93dd9f0af54b9bdab16f2ce0a7eb00784cb4432598db92","equals_lb4_listing":true},"scratch/ref/replica2.py":{"sha256":"6e37b4e61e1ffa5ffb1e43912ddb8659105989aa986eb48fcd1d7608f8dca685","equals_lb4_listing":true},"scratch/materialize.py":{"sha256":"12ebf6f647f67826e7bc5ad2df0f045bec1b46028c552b136bb706fd4b7bbaea","equals_lb4_listing":true}},"amm_sim":{"commit":"4812a6382311624e1506aca131ca35c378f930d9","tracked_files_unmodified":true,"gates_py_sha256":"603280c1f595ca163ffaf2ba1ebdc7945fdb08dabae67fc53c922d39e1cce604","gates_py_sha256_equals_lb4_record":true}},"P":{"status":"pass","command":"python3 -I gates.py (research/solved, unmodified, before any change; rerun for this record)","stdout":["seed   perfect-info      gaussian+plain    gaussian+qm       lattice+qm","10000  448.261189  443.455598  443.522608  443.663520","10001  576.779199  571.463409  571.623551  571.977293","10002  531.886497  525.168028  525.865859  526.411631"],"every_line_found_verbatim_in_README":true},"variant_as_built":{"name":"JOINT FILTER, gas ignored: weighted particle filter on (x = ln p, r = ln rival spot), run beside LEAN's own analytic belief","file":"rc/joint.py JointPolicy(blob, N, mode), subclass of lb-4 TellPolicy(blob, 4, .0001); port, tell, tables, fee rule, phase logic are LEAN's","per_step":["move: x += 9.45 bps * z (z from a fixed table of 8191 normals, constant seed 20261110)","own arb: if LEAN calls the first trade the arb (tell positive): weight *= exp(-(lp-x)^2/(2 sigma^2)), x = lp. Otherwise (silent step, capped at 12 as LEAN, or a retail first trade): weight 0 unless lo < x < hi, LEAN's own no-arb interval of the quotes in force","rival arb: r = clip(r, x + ln 0.997, x - ln 0.997)","silent retail (silent steps and the rest of a step after an arb): weight *= exp(-0.4(1-F(gap_ask))) * exp(-0.4(1-F(gap_bid))), F = probability an order stops before the rival quote reaches ours (401-entry table, 0.5 bps); with probability 0.4 F a rival-only order moves r toward our quote by a draw from the truncated law","own retail fill ay (every non-arb callback): c = ln(cand), cand = LEAN's split-order sync value (Taylor README: s(1-fb)/0.997 on a buy, s 0.997/(1-fa) on a sell). Particles whose rival quote beat the final common quote: q2 = 1000 e^{r/2}(e^{d/2}-1)/0.997, weight *= 2 f(ay+q2)/f(ay), r = c. Others keep r, weight unchanged. f = lognormal(ln 20 - 0.72, 1.2)","normalise; systematic resampling when the effective size is under N/2; if every particle is lost, restart from LEAN's (m, v, s2h) (count reported as reinit)"],"outputs_by_mode":{"full":"m, sd, rival, synced flag from the particles","price":"m, sd from the particles; rival and synced from LEAN","rival":"rival (weighted mean r) and synced (at least half the weight synced this step) from the particles; m, sd stay LEAN's","control":"N = 0: no particle code runs"},"constants":"sigma 9.45 bps, G 0.997, rate 0.8, size median 20 e^-0.72 Y, log-sd 1.2, rival K 1e6: public game constants or Taylor's; nothing read from init","settings_written_before_scoring":{"credit":"Taylor (gtmcknight): replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved","written_down_before_scoring":"4 settings (of at most 6) plus the zero-change control (N=0). Fixed after timing two debug seeds (64900, 64901), before any choose seed was run. Cut to fit a 2-core machine: 4 settings instead of 6, N at most 64, silent steps capped at 12 as LEAN's.","settings":[["full32",32,"full"],["full64",64,"full"],["rival64",64,"rival"],["price32",32,"price"]]},"cut_to_fit_machine":"2 cores, pure Python. Timed first on debug seeds 64900, 64901 (LEAN about 0.8 s a run, N=64 about 1.8 s). Cut: 4 settings instead of 6; N at most 64; no grid version; silent steps capped at 12; belief-error diagnostic on 8 seeds; no rival-estimate error diagnostic."},"observables_proof":{"method":"Garble wrapper (rc/run.py): init arguments replaced by (-7.5, 9e9, inf); the port's previous-reserve tuple by (1, 1), its path tag by GARBAGE; on_trade arb, p, s2, j by True, 12345.678+t, -1.0, 99. Fees compared on every callback against the ungarbled run.","seeds":[64900,64903],"rows":[{"seed":64900,"control_edge_equals_LEAN":true,"control":{"callbacks":9414,"identical_fees":true,"edge_equal":true},"full32":{"callbacks":9492,"identical_fees":true,"edge_equal":true},"full64":{"callbacks":9498,"identical_fees":true,"edge_equal":true},"rival64":{"callbacks":9496,"identical_fees":true,"edge_equal":true},"price32":{"callbacks":9393,"identical_fees":true,"edge_equal":true}},{"seed":64901,"control_edge_equals_LEAN":true,"control":{"callbacks":12069,"identical_fees":true,"edge_equal":true},"full32":{"callbacks":12127,"identical_fees":true,"edge_equal":true},"full64":{"callbacks":12130,"identical_fees":true,"edge_equal":true},"rival64":{"callbacks":12151,"identical_fees":true,"edge_equal":true},"price32":{"callbacks":12054,"identical_fees":true,"edge_equal":true}},{"seed":64902,"control_edge_equals_LEAN":true,"control":{"callbacks":9964,"identical_fees":true,"edge_equal":true},"full32":{"callbacks":9986,"identical_fees":true,"edge_equal":true},"full64":{"callbacks":9999,"identical_fees":true,"edge_equal":true},"rival64":{"callbacks":9998,"identical_fees":true,"edge_equal":true},"price32":{"callbacks":9947,"identical_fees":true,"edge_equal":true}},{"seed":64903,"control_edge_equals_LEAN":true,"control":{"callbacks":11058,"identical_fees":true,"edge_equal":true},"full32":{"callbacks":11067,"identical_fees":true,"edge_equal":true},"full64":{"callbacks":11055,"identical_fees":true,"edge_equal":true},"rival64":{"callbacks":11084,"identical_fees":true,"edge_equal":true},"price32":{"callbacks":11035,"identical_fees":true,"edge_equal":true}}],"all_identical":true},"choose":{"seeds":[64000,64255],"n":256,"LEAN_mean_edge":529.8841476730621,"zero_change_control_reproduces_LEAN_edges_exactly":true,"table":[{"setting":"full32","N":32,"mode":"full","mean_diff":0.06468536152906723,"se":0.02437526933165725,"min":-0.8399513993318806,"reinit_mean":13.01171875},{"setting":"full64","N":64,"mode":"full","mean_diff":0.10334529721989938,"se":0.024345924033654952,"min":-0.8644336650869491,"reinit_mean":4.17578125},{"setting":"rival64","N":64,"mode":"rival","mean_diff":0.16051873686288487,"se":0.021827831653259567,"min":-0.994449096905214,"reinit_mean":4.30078125},{"setting":"price32","N":32,"mode":"price","mean_diff":-0.08271802504452053,"se":0.01981940048876428,"min":-0.8340375994189344,"reinit_mean":12.75}],"rule":"highest mean paired difference against LEAN on 64000..64255","pick":"rival64","seconds_per_seed_all_arms":7.5739496408850755,"log_sha256":"ac96dcb9e53707168a76aa0ecec05afca64f90791a93afeda912a92c9c4aec88"},"frozen":{"pick":"rival64","N":64,"mode":"rival","sha256":{"ref/policy.py":"962135885c1ad1ef142ed4b364870869e61948982c165ca2426ee864c1f10b51","ref/lean_tell.py":"b70054f8c0561779e40c4c8df3f41ab08da05b9aef591816ac6c9034beb40a95","ref/port.py":"81ec1136146777e10056c3a1e1ad5282de5a1b53e90d425decefc288e5948aac","ref/twocomp.py":"9d3c1833321493fb51bbde4e1b4dabc2f8978bd6d774ee2af8dc8aed13f0f0af","ref/qmref.py":"1dfc9b7a3c2237ff7a93dd9f0af54b9bdab16f2ce0a7eb00784cb4432598db92","ref/blob.bin":"3ac7cb8811ecfb6a17f499aa4e9b70dd55f7fb6432b3aec3b904e11a3dece38e","joint.py":"ed9abde0c296abd0c45ed8f542d96a8db795be2a8a027a4d824f80e99b3d7abc","run.py":"c93e2c4050249d542d581f31c4dd052278f757a18b113c1887ae22f35d0ed06f","settings.json":"71520683ad63d8c734812e5401a4babe8fa00448c6c9e7a8d44a44f8fe893897"},"frozen_before_report":true,"rechecked_unchanged_after_report":true},"report":{"seeds":[11024,11535],"order":"once, in order, each seed: the pick, LEAN, qt1; three chunks, hashes asserted at each start","levels":{"pick":537.149579653065,"LEAN":537.0043874635617,"qt1":533.8721259253434},"paired_vs_LEAN":{"n":512,"mean_diff":0.1451921895033239,"se":0.014520917789769907,"min":-1.6744159484084093,"worst5":[{"seed":11303,"diff":-1.6744159484084093},{"seed":11038,"diff":-0.823862063503384},{"seed":11413,"diff":-0.8108295284396263},{"seed":11209,"diff":-0.7203494715746501},{"seed":11417,"diff":-0.6547451379960876}]},"paired_vs_qt1":{"n":512,"mean_diff":3.2774537277215274,"se":0.04452123852414917,"min":-1.2186131968286418,"worst5":[{"seed":11062,"diff":-1.2186131968286418},{"seed":11303,"diff":0.2555797623124363},{"seed":11413,"diff":0.5760703486807301},{"seed":11376,"diff":0.5841471025112241},{"seed":11519,"diff":0.6677873593213235}]},"LEAN_vs_qt1":{"n":512,"mean_diff":3.1322615382182035,"se":0.042881129367013104,"min":-1.3596829746003323,"worst5":[{"seed":11062,"diff":-1.3596829746003323},{"seed":11376,"diff":0.012546694402089997},{"seed":11519,"diff":0.16165349985828925},{"seed":11233,"diff":0.7560240457011105},{"seed":11313,"diff":0.9185477277961809}]},"log_sha256":"24089c68d11776826ed9630c47cebf597f2d2dd8ee25ac0eb8021799f60cb681"},"belief_error":{"definition":"|m - ln p| in bps after each own callback, m = the mean fed to the tables, bucketed by steps since the last callback LEAN called an arb (the pin). True p is read only by the diagnostic wrapper, whose loop reproduces port.run edges exactly.","seeds":[64900,64907],"loop_equals_port":true,"LEAN":{"0":{"n":50446,"mean_abs_bps":0.0423,"rms_bps":0.7885},"1":{"n":8096,"mean_abs_bps":5.4759,"rms_bps":7.0392},"2":{"n":5667,"mean_abs_bps":7.7077,"rms_bps":9.6523},"3":{"n":4456,"mean_abs_bps":9.1127,"rms_bps":11.2973},"4-5":{"n":6478,"mean_abs_bps":10.0093,"rms_bps":12.3035},"6-9":{"n":6583,"mean_abs_bps":10.4735,"rms_bps":12.7531},"10+":{"n":4488,"mean_abs_bps":10.8347,"rms_bps":13.2163},"all":{"n":86214,"mean_abs_bps":3.6324}},"pick":{"0":{"n":50892,"mean_abs_bps":0.0498,"rms_bps":1.0267},"1":{"n":8129,"mean_abs_bps":5.461,"rms_bps":7.0031},"2":{"n":5730,"mean_abs_bps":7.7522,"rms_bps":9.732},"3":{"n":4456,"mean_abs_bps":9.1345,"rms_bps":11.3182},"4-5":{"n":6443,"mean_abs_bps":9.9685,"rms_bps":12.2504},"6-9":{"n":6539,"mean_abs_bps":10.4447,"rms_bps":12.7218},"10+":{"n":4487,"mean_abs_bps":10.8542,"rms_bps":13.1178},"all":{"n":86676,"mean_abs_bps":3.6143}},"other_settings":{"full32":{"0":{"n":50881,"mean_abs_bps":0.0179,"rms_bps":0.8971},"1":{"n":8147,"mean_abs_bps":5.6144,"rms_bps":7.1874},"2":{"n":5715,"mean_abs_bps":7.8314,"rms_bps":9.8595},"3":{"n":4474,"mean_abs_bps":9.3434,"rms_bps":11.5671},"4-5":{"n":6476,"mean_abs_bps":10.2336,"rms_bps":12.6227},"6-9":{"n":6472,"mean_abs_bps":10.6973,"rms_bps":13.0577},"10+":{"n":4474,"mean_abs_bps":11.1324,"rms_bps":13.5864},"all":{"n":86639,"mean_abs_bps":3.6764}},"full64":{"0":{"n":50821,"mean_abs_bps":0.0119,"rms_bps":0.8017},"1":{"n":8140,"mean_abs_bps":5.5761,"rms_bps":7.2099},"2":{"n":5662,"mean_abs_bps":7.8162,"rms_bps":9.8394},"3":{"n":4479,"mean_abs_bps":9.2451,"rms_bps":11.4507},"4-5":{"n":6454,"mean_abs_bps":10.0484,"rms_bps":12.3871},"6-9":{"n":6532,"mean_abs_bps":10.5441,"rms_bps":12.9435},"10+":{"n":4534,"mean_abs_bps":10.9359,"rms_bps":13.3035},"all":{"n":86622,"mean_abs_bps":3.6361}},"price32":{"0":{"n":50349,"mean_abs_bps":0.0121,"rms_bps":0.7871},"1":{"n":8114,"mean_abs_bps":5.5797,"rms_bps":7.1817},"2":{"n":5715,"mean_abs_bps":7.9385,"rms_bps":10.0152},"3":{"n":4436,"mean_abs_bps":9.3975,"rms_bps":11.7319},"4-5":{"n":6505,"mean_abs_bps":10.2135,"rms_bps":12.5442},"6-9":{"n":6551,"mean_abs_bps":10.7196,"rms_bps":13.1385},"10+":{"n":4455,"mean_abs_bps":11.1617,"rms_bps":13.6912},"all":{"n":86125,"mean_abs_bps":3.7077}}},"note":"The pick keeps LEAN's m, so its row differs from LEAN's only because its fees, and so its callbacks, differ. full64 (in other_settings) is the particle price mean: slightly worse than LEAN's analytic two-component belief in every bucket after the pin (e.g. 5.58 against 5.48 bps one step after), so the rival coupling, the silence likelihood and the fill-size likelihood did not sharpen the price at N = 64. Measured on 8 debug seeds only; no standard errors computed. The error of the rival estimate itself was not measured."},"contract_needs":{"extra_state":"N particles, each x (ln p), r (ln rival spot), weight: 192 values at N = 64 (about 64 packed slots at 80 bits each), plus a cursor into the pseudo-random stream, a pending-silent-step flag, a synced flag. For the pick the x values are needed only to drive r. LEAN's own state is unchanged and kept alongside.","arithmetic":"Per particle per elapsed step (up to 13 steps a callback): one normal draw (table of 8191 or a hash-based generator), two compares for the own cut, a clip, two lookups in 401-entry tables (F and exp(-0.4(1-F))), one uniform draw, an occasional binary search of F. Per particle on a pin: one exp. Per particle on a retail fill: two exp, one ln, one division. Per callback: a normalising sum, a sum of squares, systematic resampling when the effective size is under N/2, and the weighted means of x and r (variance too in full mode).","gas":"Gas was ignored by the variant. As built it cannot fit 245,000: writing 64 packed slots alone is beyond the budget, before up to 13 x 64 particle steps. A contract would need a closed-form or few-point substitute for the rival posterior (for example a 3 to 5 point distribution of r - m updated by the same clip, sync and fill-size rules); that was not built or measured here.","size":"Two 401-entry tables and the normal table would have to be replaced by formulas or far coarser tables to stay under 24,576 bytes with LEAN's tables."},"seeds_used":{"debug":"64900..64907 (timing, garbage proof, belief diagnostic); outside the choose block and the report seeds","choose":"64000..64255, once, in order","report":"11024..11535, once, in order, after freeze","engine":"none"},"notes":["Gate order: P (gates.py unmodified, three rows equal the README to 6 decimals), layout (TCA bundle, LB4 over it, four files deleted, materialize.py restored blob.bin with the expected sha256), timing on two debug seeds, settings written down, observables proof, choose, freeze, report.","The settings list was fixed after timing and before any choose seed ran. The first timing run used a draft list with price64 in place of price32; its edges on debug seeds 64900 and 64901 were printed, and no choice was made from them.","Choose was run in three chunks (64000..64075, 64076..64167, 64168..64255) and the report in three (11024..11199, 11200..11369, 11370..11535), each under 8 minutes on 2 cores; rows are appended in seed order and the driver refuses a start that is not the next seed. The interim choose table was printed after the first two chunks; the pick was made by the freeze command from all 256 seeds.","The pick is by the brief's rule (highest mean paired difference against LEAN). On the choose block rival64 is not separated from full64 by much (0.161 against 0.103, se about 0.02 each, paired difference between them not computed).","Particle draws come from a fixed table with a constant seed, so the policy is a deterministic function of its callbacks; the result carries Monte Carlo noise from N = 64 that a larger N would reduce. N above 64 and a grid version were not run.","Approximations in the filter: rate 0.8 and median size fixed at the public midpoints rather than estimated per run; rival Y reserve taken as 1e4 in the silent-step tables; at most one rival-only order a side per silent step; no rival-only orders modelled inside a step that had an own retail fill; split Jacobian fixed at 2; LEAN's hard arb/retail decision applied to all particles.","Worst report seed against LEAN: 11303 at -1.674; minimum against qt1 -1.219.","Not done: any contract, any engine run, the F gate (no contract), a rival-estimate error diagnostic. No engine seed was consumed. Nothing was submitted to the board."],"bundle":{"format":"base64(tar.xz): rc/joint.py, rc/run.py, rc/settings.json, rc/extract.py, rc/NOTES.md, state/frozen.json; needs the LB4-over-TCA layout (rc/NOTES.md)","sha256":"8df07d5b05342f0ff2bac5829bc17712762e8b93c8d8028de72d97ef94664694","bytes":9252,"data":"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"}}