{"abstract":"Every parameter group is forced to use the slow learning rate.","category":"Optimizer update state","checks":6,"contract":"Records [group,p,g] use rates {'slow':1,'fast':3}; return [group,p-rate*g] in input order.","contract_signature":"records","evaluation_group":"optimizer-toy-parameter-group-rate","failed_approach":"Replacing the global rate with the fast rate fixes fast records but corrupts slow records in a mixed group list.","family":"w3-optimizer-update-state-parameter-group-rate","id":"FA-99026","implementations":{"attempt":{"sha256":"0a65e3ee80abc00f6f1c92c509ab20921b07e0faed6e56a2d5e05731189dfb1f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(records):\n    return [[r[0],r[1]-3*r[2]] for r in records]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('both groups',solve([['slow',10,2],['fast',10,2]]),[['slow',8],['fast',4]])\ncheck('reversed groups',solve([['fast',10,2],['slow',10,2]]),[['fast',4],['slow',8]])\ncheck('single slow',solve([['slow',N,1]]),[['slow',N-1]])\ncheck('single fast',solve([['fast',N,1]]),[['fast',N-3]])\ncheck('empty group list',solve([]),[])\ncheck('negative gradient',solve([['fast',4,-2]]),[['fast',10]])\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":"2e7dd1a2a829010549c4723ede010e7913dc427df9b8c1d132e4bb097f3eb6f8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(records):\n    return [[r[0],r[1]-r[2]] for r in records]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('both groups',solve([['slow',10,2],['fast',10,2]]),[['slow',8],['fast',4]])\ncheck('reversed groups',solve([['fast',10,2],['slow',10,2]]),[['fast',4],['slow',8]])\ncheck('single slow',solve([['slow',N,1]]),[['slow',N-1]])\ncheck('single fast',solve([['fast',N,1]]),[['fast',N-3]])\ncheck('empty group list',solve([]),[])\ncheck('negative gradient',solve([['fast',4,-2]]),[['fast',10]])\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-parameter-group-rate","generated_at":"2026-09-30T16:48:19.455552+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 update substitutes the slow group rate for every record regardless of its group name.","sha256":"6617544e5b48b50274b2db1f0b8a4eccf2b7b6e76575e569a61969aba310c7ee","title":"Every parameter group is forced to use the slow learning rate · case 01","variant":1,"variant_policy":"The fixture code references N, supplied as 1 through 5. Fixed boundary checks may repeat. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":27.918,"exit_code":1,"observations":[{"actual":[["slow",4],["fast",4]],"check":"both groups","expected":[["slow",8],["fast",4]],"passed":false},{"actual":[["fast",4],["slow",4]],"check":"reversed groups","expected":[["fast",4],["slow",8]],"passed":false},{"actual":[["slow",-2]],"check":"single slow","expected":[["slow",0]],"passed":false},{"actual":[["fast",-2]],"check":"single fast","expected":[["fast",-2]],"passed":true},{"actual":[],"check":"empty group list","expected":[],"passed":true},{"actual":[["fast",10]],"check":"negative gradient","expected":[["fast",10]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"both groups\", \"actual\": [[\"slow\", 4], [\"fast\", 4]], \"expected\": [[\"slow\", 8], [\"fast\", 4]], \"passed\": false}, {\"check\": \"reversed groups\", \"actual\": [[\"fast\", 4], [\"slow\", 4]], \"expected\": [[\"fast\", 4], [\"slow\", 8]], \"passed\": false}, {\"check\": \"single slow\", \"actual\": [[\"slow\", -2]], \"expected\": [[\"slow\", 0]], \"passed\": false}, {\"check\": \"single fast\", \"actual\": [[\"fast\", -2]], \"expected\": [[\"fast\", -2]], \"passed\": true}, {\"check\": \"empty group list\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"negative gradient\", \"actual\": [[\"fast\", 10]], \"expected\": [[\"fast\", 10]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":28.039,"exit_code":1,"observations":[{"actual":[["slow",8],["fast",8]],"check":"both groups","expected":[["slow",8],["fast",4]],"passed":false},{"actual":[["fast",8],["slow",8]],"check":"reversed groups","expected":[["fast",4],["slow",8]],"passed":false},{"actual":[["slow",0]],"check":"single slow","expected":[["slow",0]],"passed":true},{"actual":[["fast",0]],"check":"single fast","expected":[["fast",-2]],"passed":false},{"actual":[],"check":"empty group list","expected":[],"passed":true},{"actual":[["fast",6]],"check":"negative gradient","expected":[["fast",10]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"both groups\", \"actual\": [[\"slow\", 8], [\"fast\", 8]], \"expected\": [[\"slow\", 8], [\"fast\", 4]], \"passed\": false}, {\"check\": \"reversed groups\", \"actual\": [[\"fast\", 8], [\"slow\", 8]], \"expected\": [[\"fast\", 4], [\"slow\", 8]], \"passed\": false}, {\"check\": \"single slow\", \"actual\": [[\"slow\", 0]], \"expected\": [[\"slow\", 0]], \"passed\": true}, {\"check\": \"single fast\", \"actual\": [[\"fast\", 0]], \"expected\": [[\"fast\", -2]], \"passed\": false}, {\"check\": \"empty group list\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"negative gradient\", \"actual\": [[\"fast\", 6]], \"expected\": [[\"fast\", 10]], \"passed\": false}], \"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."}}