{"abstract":"Line search accepts decrease without sufficient decrease.","category":"Optimization solver contracts","checks":6,"contract":"For positive alpha and 0<c<1, accept exactly when slope<0 and trial<=old+c*alpha*slope.","contract_signature":"old, trial, slope, alpha, c","evaluation_group":"model-ae07a280337e8e91","failed_approach":"Adding the inequality alone accepts an uphill direction when its allowance is positive.","family":"z-optimization-armijo","id":"FA-11991","implementations":{"attempt":{"sha256":"6d82bd393a30982f6a1ffa0a4440db0d4b3fbb9d3646312ca6c65235325e025a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(old, trial, slope, alpha, c):\n    return trial <= old+c*alpha*slope\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('weak decrease', solve(10*N, 9*N, -10*N, 1, 0.5), False)\ncheck('exact sufficient decrease', solve(10*N, 5*N, -10*N, 1, 0.5), True)\ncheck('strong decrease', solve(10, 1, -2, 1, 0.5), True)\ncheck('uphill direction', solve(10, 11, 4, 1, 0.5), False)\ncheck('zero direction', solve(10, 10, 0, 1, 0.5), False)\ncheck('short step', solve(10, 9, -4, 0.5, 0.5), True)\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":"8536e42a97e08c3cc3e571901fd4e1cc2d2d1d3082f2b272ab23e5509becc14b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(old, trial, slope, alpha, c):\n    return trial < old\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('weak decrease', solve(10*N, 9*N, -10*N, 1, 0.5), False)\ncheck('exact sufficient decrease', solve(10*N, 5*N, -10*N, 1, 0.5), True)\ncheck('strong decrease', solve(10, 1, -2, 1, 0.5), True)\ncheck('uphill direction', solve(10, 11, 4, 1, 0.5), False)\ncheck('zero direction', solve(10, 10, 0, 1, 0.5), False)\ncheck('short step', solve(10, 9, -4, 0.5, 0.5), True)\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":"Controlled finite inputs and explicit one-step contracts; this is not a production solver or a numerical stability benchmark. 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":"z-optimization-armijo","generated_at":"2026-09-29T14:38:52.864476+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This deterministic solver-step model isolates an algorithmic invariant used by iterative optimization implementations.","root_cause":"Any reduction is accepted without the directional derivative term.","sha256":"efbdf0ad93bbefcac9c35de3e639813d8787cf61bef5c44af513d7c6ccc96c72","title":"Line search accepts decrease without sufficient decrease · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.304,"exit_code":1,"observations":[{"actual":false,"check":"weak decrease","expected":false,"passed":true},{"actual":true,"check":"exact sufficient decrease","expected":true,"passed":true},{"actual":true,"check":"strong decrease","expected":true,"passed":true},{"actual":true,"check":"uphill direction","expected":false,"passed":false},{"actual":true,"check":"zero direction","expected":false,"passed":false},{"actual":true,"check":"short step","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"weak decrease\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"exact sufficient decrease\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"strong decrease\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"uphill direction\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"zero direction\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"short step\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.13,"exit_code":1,"observations":[{"actual":true,"check":"weak decrease","expected":false,"passed":false},{"actual":true,"check":"exact sufficient decrease","expected":true,"passed":true},{"actual":true,"check":"strong decrease","expected":true,"passed":true},{"actual":false,"check":"uphill direction","expected":false,"passed":true},{"actual":false,"check":"zero direction","expected":false,"passed":true},{"actual":true,"check":"short step","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"weak decrease\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"exact sufficient decrease\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"strong decrease\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"uphill direction\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"zero direction\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"short step\", \"actual\": true, \"expected\": true, \"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."}}