{"credit":"Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved","ready":true,"parity":{"n":128,"max_abs_diff":1.8443984117766377e-08,"max_rel_diff":5.943033337599645e-11,"bit_identical":false,"bit_identical_n":16,"worst":{"seed":9700051,"policy":"25/45","engine_edge":310.346300786793,"enginecore_edge":310.346300768349},"relative_definition":"abs(core-engine)/abs(engine); all reference edges nonzero","seeds":[9700000,9700063],"policies":["30/30 bps bid/ask","25/45 bps bid/ask"],"steps_per_run":10000,"proof_adapter":"https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/45e7563d1a29ffca9d608fdf60c90bf2624d2d01/engine_eval.py","after_swap_peak_gas":22587,"callback_errors":0,"evidence":"evidence.json inside code_zb64: all 128 unrounded edges and 64 exact config triples"},"step_logs":{"compared":0,"first_divergence":null,"reason":"cargo and rustc were not available on PATH; no logging patch/build was performed. Full price/order/fill/reserve trace equality is not claimed.","release_step_summaries":{"seeds":[9700000,9700003],"policies":["30/30","25/45"],"n_step_rows":80000,"fields":["fair_price","submission_spot","normalizer_spot","submission_pnl","normalizer_pnl"],"price_bit_identical":true,"bit_identical":false,"first_divergence":{"seed":9700000,"policy":"30/30","step":517,"field":"rival_pnl","engine":173.95420707825178,"core":173.95420707824815},"evidence":"step_evidence.json inside code_zb64; per-run counts, maxima, and first mismatch. Prices are bit-identical; small spot/PnL differences remain. These summaries expose neither raw reserves nor orders/fills."}},"ported":[{"what":"Recompute k from stored rounded reserves","engine_file":"amm_sim_rs/src/amm/cfmm.rs","engine_line":"131,152,180","done":true,"detail":"quote() computes rx*ry afresh for each of the three quote types; no fixed-K approximation.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/amm/cfmm.rs"},{"what":"Recompute k in arbitrage sizing; guards and 99% buy cap","engine_file":"amm_sim_rs/src/market/arbitrageur.rs","engine_line":"39-46,56-94,106-143","done":true,"detail":"Both arbitrage directions use their original parenthesized operation order; only positive profit executes.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/arbitrageur.rs"},{"what":"Incremental reserves and separate fee buckets","engine_file":"amm_sim_rs/src/amm/cfmm.rs","engine_line":"207-210,238-240,269-271","done":true,"detail":"Execution uses amount-fee, +=/-= reserves and independent fee accumulators; quotes use amount*gamma.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/amm/cfmm.rs"},{"what":"Optimal routing and execution threshold","engine_file":"amm_sim_rs/src/market/router.rs","engine_line":"41-116,188-245","done":true,"detail":"Submission first; buy/sell multiplication order differs as in source, zero-denominator handling, clamping, >0.0001 execution threshold, total_x=size/fair_price.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/router.rs"},{"what":"Submission-first arbitrage and routing; event order","engine_file":"amm_sim_rs/src/simulation/engine.rs","engine_line":"120,133-159","done":true,"detail":"One compiled loop: price, submission arb, normalizer arb, all retail draws, ordered routing. No policy gets rival or fair-price information.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs"},{"what":"Truncated WAD callback values","engine_file":"amm_sim_rs/src/types/wad.rs","engine_line":"33-40","done":true,"detail":"Exact positive integer amounts and posttrade reserves are passed as (uint64 hi,uint64 lo), including values exceeding 64 bits. timestamp is the engine zero-based step. Initialization uses explicit supplied fees.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/types/wad.rs"},{"what":"Fee clamp","engine_file":"amm_sim_rs/src/types/wad.rs","engine_line":"74-76","done":true,"detail":"Independent [0,1e17] WAD clamp on initialization and after callback. Callback returns signed int64 fees; preclamp wider policy intermediates before returning. (-1,-1) is the documented callback-failure sentinel.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/types/wad.rs"},{"what":"Retail edge output WAD roundtrip","engine_file":"amm_sim_rs/src/market/router.rs","engine_line":"201-204,211-214,229-232,239-242","done":true,"detail":"Retail output amount is rounded through WAD before edge accumulation; arbitrage profit uses its pretrade floating quote.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/router.rs"},{"what":"GBM random stream and arithmetic","engine_file":"amm_sim_rs/src/market/price_process.rs","engine_line":"37-49,63-66","done":true,"detail":"PCG64 seed_from_u64(seed), StandardNormal, left-associated drift and exp multiplication; 40000 distinct price-step values checked exactly against release engine (4 seeds).","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/price_process.rs"},{"what":"Retail random stream and draw order","engine_file":"amm_sim_rs/src/market/retail.rs","engine_line":"64-76,95-115","done":true,"detail":"Independent PCG64 seed_from_u64(seed+1); Knuth Poisson then per order LogNormal then uniform side. Baseline arrival range 0.6..1.0 only; high-lambda rejection sampler is outside supported config.","source":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/retail.rs"},{"what":"Per-seed configuration draws","engine_file":"kit/bootstrap/smoke_engine.py","engine_line":"32-43","done":true,"detail":"NumPy default_rng(seed): size, arrival rate, sigma in that order; all 64 triples exactly equal config_for.","source":"https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/45e7563d1a29ffca9d608fdf60c90bf2624d2d01/bootstrap/smoke_engine.py"}],"rng":{"generator":"Rust-compatible rand_pcg::Pcg64 (Lcg128Xsl64), XSL RR 128/64; uint64 limbs and exact LLVM high multiply; no Numba/NumPy RNG in the step loop.","distributions":"rand_distr StandardNormal ZIGNOR including rejection and open-uniform tails; LogNormal=exp(mu+sigma*z); Poisson Knuth for baseline lambda<12; rand Standard f64 for sides. Config uses NumPy default_rng PCG64/SeedSequence separately.","crate_versions":{"ported":{"rand_pcg":"0.3.1","rand_core":"0.6.4","rand_distr":"0.4.3","rand":"0.8.5"},"engine_manifest":{"rand_pcg":"0.3","rand_distr":"0.4","rand":"0.8"},"release_wheel_exact_lock":null},"how_seeded":"rand_core seed_from_u64 expands a u64 through eight PCG32 outputs into 32 little-endian seed bytes; state/odd increment, state+=increment, step. Price seed=s; retail seed=s+1. Config NumPy default_rng(s) draws uniform size 19..21, rate .6..1, sigma .000882...001008.","note":"Engine source archive has no Cargo.lock; exact release-wheel resolved crate patch versions are not asserted. Port versions above identify the source algorithms actually used."},"runs_per_core_s":160.86503559982987,"speed":{"samples":[128.19161105685558,166.18076927819712,167.5503858342092,160.86503559982987,131.74691136466421],"method":"Sequential single-thread run calls including NumPy config draws and allocation; 10000 steps, 30/30 bps; excludes JIT warmup."},"code_zb64":"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","source_sha256":"3c445696cea8149d97e708984d1e460e323173584f3ccd0325a272c1c9c6d65f","source_hash_definition":"SHA256 of enginecore.py bytes, not archive","archive_sha256":"8c5487799e51760b8b9b1cc8d197361fe6ca0c6f6705f17d49b85f122897e234","source_files_sha256":{"enginecore.py":"3c445696cea8149d97e708984d1e460e323173584f3ccd0325a272c1c9c6d65f","test_enginecore.py":"a9754e121d3e7bfe0fba3d2fd9f6e42755450cc82ce36d3de7d00f0eb0f24967","check_engine.py":"7250b86fb5ea0e16976d7dea8ad617ddcb4c22bedbca495f874b4f27a9b29e75","check_steps.py":"c6456ceebab65c21eb0f24c615f345a796237f90c8e9d329a8ecc8001bb30e79","benchmark.py":"5ce2dfafaddd415ebf5c5ec65e14b5de82b1e25502a7ac37d183c1976239789e","evidence.json":"44703c3e525a32e6210698abe6eab9e9ee222f8aebca877723dc4d3d24f70971","step_evidence.json":"c123cdb820f4898b99ae01946075560ae916ec48106037957b6112201c588b12","benchmark_evidence.json":"fb8822766db8d2b8949480aa8801726b77a94fd073fc3342e7b4e5050682d4ad","Constant30_30.sol":"39294815bedf1727f5c4c181700202be0417f6a0ce8fe1f8f908269dce6096e5","Constant25_45.sol":"42bbd0f0020e6eda45e6d904d0ac1bbadde58b2fe38ea46a7f07253d924feb82","LICENSE.txt":"66c00214017671dc328dd7f089aba0b2c02006c98daf22c7416251e67ff86692"},"run":["bash test/scratch/kit/setup_fast.sh --platform linux-x86_64 --cache \"$PWD/test/scratch/cache\" --scratch \"$PWD/test/scratch/runtime\"",". test/scratch/runtime/env.sh","PYTHONPATH=test/scratch/work:test/scratch/kit python3 -B test/scratch/work/check_engine.py --out test/scratch/parity.json","PYTHONPATH=test/scratch/work:test/scratch/kit python3 -B test/scratch/work/check_steps.py","PYTHONPATH=test/scratch/work python3 -B -m unittest -v test_enginecore","PYTHONPATH=test/scratch/work python3 -B test/scratch/work/benchmark.py"],"reproduction":{"layout":"Pinned kit extracted to test/scratch/kit; decode code_zb64 via base64, zlib, then tar into test/scratch/work. Run from repository root. No network is used by core/tests; live proof requires the already-installed pinned kit engine runtime.","python":"3.12.16","numpy":"2.5.4","numba":"0.68.1","llvmlite":"0.50.0","engine_wheel":"0.1.0.post1","engine_native_sha256":"ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14","compiler":"solc 0.8.24","source_bundle":"Runtime wheels/interpreter are not embedded in the source archive; the pinned kit supplies them."},"not_done":["Full instrumented Rust price/order/fill/reserve comparison: no cargo/rustc on PATH. Release step summaries were compared instead and their mismatches are reported.","Bit-for-bit agreement on every edge/callback is not established: 112 of 128 edges differ, although all pass the required relative tolerance. The causes of residual last-bit differences were not isolated.","Only the pinned two-pool baseline configuration is supported. Arbitrary SimulationConfig, lambda>=12, other pool counts and an EVM policy interpreter are not implemented.","No dynamic LEAN/QLX5 parity, tuning, promotion, fresh-seed gate E, or leaderboard submission was performed."],"checks":{"unit_and_saved_engine_regressions":{"n":8,"passed":8,"tested_extracted_archive":true},"source_quotes_retrieved_and_matched":20,"archive_file_hashes_verified":true}}
