{
 "credit": "Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved: the solved policy, Gaussian filter (real.py), tell posterior (tellpol.py), qm tables and replica. LEAN contract (A/a79a3606...), LEANBASE reference (A/efb8e653...), the AGE rule (A/326a3225...) and the block driver (A/764c9461...) are the network results this item builds on.",
 "key": "age",
 "rule": {
  "pick": "AGE",
  "source": "e03-cheap-ref/age-thr, https://api.imd.fun/artifacts/326a32254eb393c65551c31311212b728155d59924f8474985260539b2a1335d",
  "thr_ported": false,
  "hyp_ported": false,
  "params": {
   "a0": 0,
   "ainf": 0.7,
   "tau": 1,
   "soft": 1
  },
  "base": "LEAN, code_zb64 of https://api.imd.fun/artifacts/a79a3606add967bb8f8ec2af8ef3d61bafb597419c488133597c8af5b9d34505 (source sha256 a6dfc3ba6b7a1b19ae77680eeb1d24f1e902a216a10c1093d8388a0510c38c94)",
  "as_ported": "On a callback read as retail (not arb), c = s*(1-fb)/0.997 on isBuy else s*0.997/(1-fa) with the fees in force. If the bound binds (c<r on buy, c>r on sell): r=c, synced, rt=timestamp. Else if c!=r: weight = pullW(timestamp-rt) = 7e17*age/(age+1) in WAD; if weight>0, r = exp(ln r + weight*(ln c - ln r)); synced (also when the weight is 0, as in the reference). LEAN used the constant 35e16 here. Nothing else changes: filter, lean tell, chance, QPL tables (blob byte-identical, sha256 830868f9...), fee guard, getName.",
  "state": "rt (timestamp of the last binding bound, initially 0) in bits 224..252 of slots[2], an existing word: no new storage word. Bits 253..254 of the same word record what the rule did in the last callback (0 read as arb: rule not run, 1 binding bound, 2 pull, 3 neither); they are written with the same SSTORE, are never read by the contract, and exist so gate T can read the rule per callback.",
  "added_external": "pullW(uint256 age) pure, the function afterSwap itself calls for the weight",
  "diff_vs_lean": "header comment, slot comment, 2 locals (rt, k), the bound/pull lines, pullW, 2 fields in the slots[2] store: +1,053 source characters, +139 runtime bytes",
  "build": "test/scratch build_age.py: exact-match substitutions on LEAN, each asserted to occur once (script in harness_zb64)"
 },
 "gates": {
  "T": {
   "pass": true,
   "mismatches": 0,
   "callbacks": 549505,
   "seeds": [
    74200,
    74249
   ],
   "labels_open_loop": {
    "what": "reference (leanbase:Policy soft=1 qm=qm_k1e-5.json a0=0 ainf=0.7 tau=1) runs its own stream for the whole 10,000 steps; on every first own trade the contract leanLabel must equal lean_tell.classify and the contract isArb must equal the hit the reference on_grid returned",
    "first_trades": 352817,
    "callbacks_in_stream": 549412,
    "mismatches": 0,
    "label_counts": {
     "sell/neg": 80794,
     "buy/pos": 97178,
     "buy/neg": 80060,
     "sell/pos": 94785
    },
    "rows_sha256": "cf9f27db66f99743c548650b393521dd29eebac9ccf4a2ae8ec2f2cec0176cec"
   },
   "rule_closed_loop": {
    "what": "the contract drives Taylor replica2 for the whole run of each seed (50 full runs); the reference shadows it with the fees in force set to the returned wads after every call. After every afterSwap the harness reads slots(2) and slots(1): arb read (k==0) vs reference is_arb; k vs the reference (binding recomputed with stalerival expressions from the reference state, pull = the reference ran its second lookup); on every callback not read as arb, age = timestamp - rt vs reference router_age, and weight = pullW(age) vs reference a0+(ainf-a0)*age/(age+tau)",
    "callbacks": 549505,
    "rule_mismatches": 0,
    "first_trades": 352831,
    "tell_mismatches": 0,
    "label_counts": {
     "neg": 161140,
     "pos": 191691
    },
    "kind_counts": {
     "arb_rule_not_run": 191517,
     "binding": 312946,
     "pull": 45042,
     "neither": 0
    },
    "pulls_with_weight_0": 9943,
    "max_age": 46,
    "weight_equality": "integer weight == floor(7e17*age/(age+1)) exactly and |weight/1e18 - reference float| <= 2e-16",
    "synced_and_arb_state_mismatches": 0,
    "max_relative_difference_of_rival_estimate": 7.001624594496762e-15,
    "mean_replica_edge_contract_driven": 537.6781639353585,
    "edge_note": "50 seeds, the contract over its own compressed tables; context only, not gate Q",
    "rows_sha256": "5ab7b15b2c1a14e14fc908335833668b4c78d6558b5160e078da2fa24b50faa7"
   }
  },
  "F": {
   "pass": true,
   "worst_bps": 7.48403075623294e-11,
   "callbacks": 100000,
   "per_seed_callbacks": 2000,
   "seeds": [
    74200,
    74249
   ],
   "tolerance_bps": 0.01,
   "worst_bps_bid_ask": [
    7.48403075623294e-11,
    4.801714581503802e-11
   ],
   "errors_over_tolerance": 0,
   "worst": {
    "seed": 74224,
    "callback": 1199,
    "t": 1060,
    "side": 1,
    "contract": 2232231333222335,
    "reference": 0.002232231333218148,
    "error_bps": 4.187188790139018e-11,
    "first": false,
    "grid": [
     false,
     0.00048828125
    ]
   },
   "tell_mismatches": 0,
   "rule_mismatches": 0,
   "guard_shifts": 0,
   "peak_tx_gas_pyrevm": 172257,
   "rows_sha256": "c6ec71df5a989998c9e71c7b909180ee5ba747ef47728122ed764e8768e909e4",
   "reference": "leanbase:Policy (variant A) soft=1 a0=0 ainf=0.7 tau=1 over the contract tables decoded from the QPL blob, closed loop as in LEAN gate F: starting fee 2823606104386589, fees in force synced to the exact returned wads, compared after replica2.clampf",
   "tables_note": "q_u1.json here (sha256 7068c7e5f06cfed2cbfff45b02990fddf4b842e7596f0382c8f6dd4711ebc133) was decoded by a decoder written for this item from the contract surf()/record() code, because lookup-u1 qpl.py was not reachable (only the hash prefix fd38823c is given). It is not the file LEAN gate F used (sha256 d5645b6d...). Check of the decoder and harness: unmodified LEAN against leanbase a0=ainf=0.35 on debug seeds 64000..64001, 2,000 callbacks each: worst 2.9039813088937994e-11 bps, 0 tell mismatches (LEAN reported 4.67e-07 bps with its own decoded file)."
  },
  "G": {
   "pass": true,
   "runtime_bytes": 21507,
   "source_chars": 44616,
   "peak_gas": 197103,
   "lean_peak_gas": 195938,
   "out_of_gas": 0,
   "lean_out_of_gas": 0,
   "limits": {
    "runtime_bytes": 24576,
    "source_chars": 50000,
    "peak_gas": 245000
   },
   "afterSwap_calls": 89009,
   "lean_afterSwap_calls": 88944,
   "mean_gas": 124417.9194912874,
   "lean_mean_gas": 124447.94678674222,
   "failures_all_callbacks": {
    "oog": 0,
    "revert": 0,
    "other_halt": 0,
    "tx_error": 0,
    "bad_return": 0
   },
   "lean_failures_all_callbacks": {
    "oog": 0,
    "revert": 0,
    "other_halt": 0,
    "tx_error": 0,
    "bad_return": 0
   },
   "engine_seeds": [
    10009056,
    10009063
   ],
   "blocks_per_arm": 1,
   "block_size": 8,
   "lean_runtime_bytes": 21368,
   "lean_source_chars": 43563,
   "lean_runtime_sha256": "52d01b1e7221eccb0b55982f498caa0fecea01dd0619c9d96cf685db85f6e912",
   "runtime_sha256": "d2962345c17acebced5e8c97499eeb95209cdce7f49dd355900af46d0ba1be98",
   "creation_sha256": "2b667609141686c2223b92bbb49bceb5a909eff358d469f7ec24e5bbb5bdf21b",
   "compiler": "solc 0.8.24, optimizer 200, viaIR, paris (kit engine_eval._compiler + engine SolidityCompiler)",
   "validator": {
    "valid": true,
    "errors": [],
    "warnings": []
   },
   "storage": "only AMMStrategyBase slots uint256[32]; indices used 0..5",
   "assembly_tokens": 0,
   "per_seed_edge": [
    {
     "seed": 10009056,
     "age": 515.6180273072437,
     "lean": 515.751221070073
    },
    {
     "seed": 10009057,
     "age": 461.50503348888185,
     "lean": 461.21657441907905
    },
    {
     "seed": 10009058,
     "age": 466.04669373623955,
     "lean": 466.07815014116073
    },
    {
     "seed": 10009059,
     "age": 602.2982545838638,
     "lean": 602.1849068800809
    },
    {
     "seed": 10009060,
     "age": 555.4699785420722,
     "lean": 555.2334233547928
    },
    {
     "seed": 10009061,
     "age": 606.7306530306989,
     "lean": 606.7812264118592
    },
    {
     "seed": 10009062,
     "age": 621.074892375165,
     "lean": 621.2182563293527
    },
    {
     "seed": 10009063,
     "age": 443.58098868871707,
     "lean": 443.665803426388
    }
   ],
   "age_minus_lean": {
    "n": 8,
    "mean_diff": 0.024369965011963757,
    "se": 0.059205761937774874
   },
   "edge_note": "each arm alone against the 30 bps VanillaStrategy; 8 seeds are a gas gate, not a score (se 0.059)",
   "driver": "driver_zb64 of https://api.imd.fun/artifacts/764c9461a9f3bab6e277178f4bb48553d1b97c6cca33bed016f7c9bfd611cc42 (sha256 d3f8646b541a76921a47e9d03247c8c9dfab594076a7c5dca79c36b6c048a282, unchanged): --strategy age=Strategy.sol --strategy lean=Lean.sol --seeds 10009056 10009063 --lease 10009056 10009063 --block 8; exit 0; --compile-only and --check-configs (96 fields equal, no simulation) were run first",
   "engine": "benedictbrady/amm-challenge@6b6921f8d463314aa7c96234e1be25a25245f704, amm_sim_rs native sha256 ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14"
  }
 },
 "all_pass": true,
 "code_zb64": "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",
 "code_encoding": "base64(zlib(utf-8 Strategy.sol))",
 "source_sha256": "8cb006fa6376b0f5b2ac1c80627ce55f6b52ceef19d22a80687a87247431b135",
 "engine_seeds_used": {
  "seeds": [
   10009056,
   10009057,
   10009058,
   10009059,
   10009060,
   10009061,
   10009062,
   10009063
  ],
  "arms": [
   "age",
   "lean"
  ],
  "runs_per_seed_per_arm": 1,
  "burnt": [],
  "other_engine_seeds": []
 },
 "replica_seeds_used": {
  "gate_T_and_F": [
   74200,
   74249
  ],
  "harness_debug": [
   64000,
   64001
  ]
 },
 "not_done": [
  "Gates P, Q and E were not run: no replica score and no paired engine score of this contract against lb-4 or qt1; the 8 engine seeds show gas and absence of failures only.",
  "afterSwap returns only the two fees, so gate T does not read the weight from inside the callback: it reads k and rt from slots[2] after each callback and calls pullW(age), the function afterSwap calls. That the pull was applied with that weight is supported by the rival estimate in slots[1] agreeing with the reference to 7.0e-15 relative after every one of the 549,505 callbacks, and by gate F.",
  "A view replay of the callback (peek, sharing the callback body with afterSwap) was tried first and dropped before any gate: that build compiled to 35,507 runtime bytes, over the 24,576 limit.",
  "lookup-u1 gates.py and qpl.py (fd38823c...) and the BASE contract (fd2f147e...) could not be fetched: only hash prefixes are given. The compile/deploy helpers and the QPL decoder were rewritten for this item; LEAN q_u1.json sha256 d5645b6d... was not reproduced.",
  "Kind 3 (bound neither binds nor differs, c == r) never occurred, the over-budget tell label never occurred and the fee guard never shifted a fee (guard_shifts 0) on the gate streams: those branches are not exercised here.",
  "The afterSwap peak is from 8 engine seeds (197,103; LEAN 195,938 on the same seeds); a larger sample will show a higher peak.",
  "rt is stored in 29 bits: timestamps of 2^29 or more would wrap (the engine runs 10,000 steps).",
  "The 50,000-character limit was checked as Python len() of the ASCII source (44,616), not on paradigm.xyz.",
  "Debug seeds 64000..64001 lie in the rule artifact choose range; they were used only to debug the harness (2,000 callbacks each, LEAN and AGE), nothing was chosen on them.",
  "No submission was made or prepared."
 ],
 "harness_zb64": "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",
 "harness_encoding": "base64(zlib(json of name: text)): build_age.py (LEAN -> Strategy.sol), gates.py (compile, pyrevm, QPL decoder), age_gate.py (gates T and F); run from the kit venv after . scratch/env.sh"
}