{"abstract":"Adam bias correction reuses the previous update exponent.","category":"Optimizer update state","checks":6,"contract":"For positive integer t and beta values in [0,1), return [m/(1-b1**t),v/(1-b2**t)].","contract_signature":"m, v, b1, b2, t","evaluation_group":"optimizer-toy-adam-step-counter","failed_approach":"Correcting the first-moment exponent but advancing the second-moment exponent by one puts the two moments on different scales.","family":"w3-optimizer-update-state-adam-step-counter","id":"FA-98976","implementations":{"attempt":{"sha256":"700c0488ded44079e1af790a225a7c7dc32fac91ae7cc5f66f50fcd6412ef19a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(m, v, b1, b2, t):\n    return [m/(1-b1**t),v/(1-b2**(t+1))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('first moment step one',solve(2,4,0.5,0.5,1),[4,8])\ncheck('second step',solve(1,3,0.5,0.5,2),[4/3,4])\ncheck('coefficient zero',solve(3,5,0,0,1),[3,5])\ncheck('different betas',solve(2,4,0.5,0.25,1),[4,16/3])\ncheck('step three',solve(7,9,0.5,0.5,3),[8,72/7])\ncheck('equal moment correction',solve(1,1,0.5,0.5,1),[2,2])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"55c2264a5aa388411993c49e94b7108973af4d051815ab6d754129f5d23ec9c2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(m, v, b1, b2, t):\n    old=max(1,t-1)\n    return [m/(1-b1**old),v/(1-b2**old)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('first moment step one',solve(2,4,0.5,0.5,1),[4,8])\ncheck('second step',solve(1,3,0.5,0.5,2),[4/3,4])\ncheck('coefficient zero',solve(3,5,0,0,1),[3,5])\ncheck('different betas',solve(2,4,0.5,0.25,1),[4,16/3])\ncheck('step three',solve(7,9,0.5,0.5,3),[8,72/7])\ncheck('equal moment correction',solve(1,1,0.5,0.5,1),[2,2])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"These are deterministic scalar or short-vector toy contracts, not claims about production optimizer APIs or training quality. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w3-optimizer-update-state-adam-step-counter","generated_at":"2026-09-30T16:48:18.999760+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Optimizer implementations must associate each parameter with its own mathematically specified update state.","root_cause":"The bias correction uses the previous exponent after the guarded first update.","sha256":"e37eb9467daacf20deeb8642af3333ded2dfffc4e765269a0b91045eda10908f","title":"Adam bias correction reuses the previous update exponent · case 01","variant":1,"variant_policy":"The same explicitly authored fixtures repeat across all five numbered records; runtime N is unused. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":30.261,"exit_code":1,"observations":[{"actual":[4.0,5.333333333333333],"check":"first moment step one","expected":[4,8],"passed":false},{"actual":[1.3333333333333333,3.4285714285714284],"check":"second step","expected":[1.3333333333333333,4],"passed":false},{"actual":[3.0,5.0],"check":"coefficient zero","expected":[3,5],"passed":true},{"actual":[4.0,4.266666666666667],"check":"different betas","expected":[4,5.333333333333333],"passed":false},{"actual":[8.0,9.6],"check":"step three","expected":[8,10.285714285714286],"passed":false},{"actual":[2.0,1.3333333333333333],"check":"equal moment correction","expected":[2,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"first moment step one\", \"actual\": [4.0, 5.333333333333333], \"expected\": [4, 8], \"passed\": false}, {\"check\": \"second step\", \"actual\": [1.3333333333333333, 3.4285714285714284], \"expected\": [1.3333333333333333, 4], \"passed\": false}, {\"check\": \"coefficient zero\", \"actual\": [3.0, 5.0], \"expected\": [3, 5], \"passed\": true}, {\"check\": \"different betas\", \"actual\": [4.0, 4.266666666666667], \"expected\": [4, 5.333333333333333], \"passed\": false}, {\"check\": \"step three\", \"actual\": [8.0, 9.6], \"expected\": [8, 10.285714285714286], \"passed\": false}, {\"check\": \"equal moment correction\", \"actual\": [2.0, 1.3333333333333333], \"expected\": [2, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":32.07,"exit_code":1,"observations":[{"actual":[4.0,8.0],"check":"first moment step one","expected":[4,8],"passed":true},{"actual":[2.0,6.0],"check":"second step","expected":[1.3333333333333333,4],"passed":false},{"actual":[3.0,5.0],"check":"coefficient zero","expected":[3,5],"passed":true},{"actual":[4.0,5.333333333333333],"check":"different betas","expected":[4,5.333333333333333],"passed":true},{"actual":[9.333333333333334,12.0],"check":"step three","expected":[8,10.285714285714286],"passed":false},{"actual":[2.0,2.0],"check":"equal moment correction","expected":[2,2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"first moment step one\", \"actual\": [4.0, 8.0], \"expected\": [4, 8], \"passed\": true}, {\"check\": \"second step\", \"actual\": [2.0, 6.0], \"expected\": [1.3333333333333333, 4], \"passed\": false}, {\"check\": \"coefficient zero\", \"actual\": [3.0, 5.0], \"expected\": [3, 5], \"passed\": true}, {\"check\": \"different betas\", \"actual\": [4.0, 5.333333333333333], \"expected\": [4, 5.333333333333333], \"passed\": true}, {\"check\": \"step three\", \"actual\": [9.333333333333334, 12.0], \"expected\": [8, 10.285714285714286], \"passed\": false}, {\"check\": \"equal moment correction\", \"actual\": [2.0, 2.0], \"expected\": [2, 2], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}