{"abstract":"Conjugate gradient search direction uses the residual delta.","category":"Optimization solver contracts","checks":6,"contract":"Return one CG direction vector given residual b-Ax, old direction and nonnegative beta; lengths agree.","evaluation_group":"model-dcfbf25e3daa98e3","failed_approach":"Using a negative new residual applies the gradient sign convention to a residual recurrence.","family":"z-optimization-cg-recurrence","id":"FA-12016","implementations":{"attempt":{"sha256":"76918154f15487de065c4d7881be7a6e18ddbb25fbd6c7c7ae71174081333dbc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(residual, old_residual, direction, beta):\n    return [-r+beta*p for r,p in zip(residual,direction)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero history', solve([N], [2*N], [4*N], 0.5), [3*N])\ncheck('restart', solve([N,-N], [1,1], [9,9], 0), [N,-N])\ncheck('zero residual', solve([0], [N], [2*N], 0.5), [N])\ncheck('orthogonal coordinates', solve([N,0], [0,N], [0,2*N], 0.5), [N,N])\ncheck('negative direction', solve([N], [N], [-2*N], 1), [-N])\ncheck('empty vectors', solve([], [], [], 1), [])\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":"b626a817d7b8a0ef2942ea8626631e1bae578e458c402ecebb29e59fa481050d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(residual, old_residual, direction, beta):\n    return [r-o+beta*p for r,o,p in zip(residual,old_residual,direction)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero history', solve([N], [2*N], [4*N], 0.5), [3*N])\ncheck('restart', solve([N,-N], [1,1], [9,9], 0), [N,-N])\ncheck('zero residual', solve([0], [N], [2*N], 0.5), [N])\ncheck('orthogonal coordinates', solve([N,0], [0,N], [0,2*N], 0.5), [N,N])\ncheck('negative direction', solve([N], [N], [-2*N], 1), [-N])\ncheck('empty vectors', solve([], [], [], 1), [])\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"},"fixed":{"sha256":"849cce9422fdde72c04947148445cfb414c9d32b2e3d19acd5826c452fdd7218","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(residual, old_residual, direction, beta):\n    return [r+beta*p for r,p in zip(residual,direction)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero history', solve([N], [2*N], [4*N], 0.5), [3*N])\ncheck('restart', solve([N,-N], [1,1], [9,9], 0), [N,-N])\ncheck('zero residual', solve([0], [N], [2*N], 0.5), [N])\ncheck('orthogonal coordinates', solve([N,0], [0,N], [0,2*N], 0.5), [N,N])\ncheck('negative direction', solve([N], [N], [-2*N], 1), [-N])\ncheck('empty vectors', solve([], [], [], 1), [])\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-cg-recurrence","generated_at":"2026-09-29T14:38:53.038340+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.","repair":"Use p_new=r_new+beta*p_old for the residual b-Ax convention.","root_cause":"Direction recurrence substitutes new-old residual for the new residual.","sha256":"d848915f5b468704ddcd4239f51f3d8f953b70f87c7e8f6f28e662111f8a338e","title":"Conjugate gradient search direction uses the residual delta · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.812,"exit_code":1,"observations":[{"actual":[1.0],"check":"nonzero history","expected":[3],"passed":false},{"actual":[-1,1],"check":"restart","expected":[1,-1],"passed":false},{"actual":[1.0],"check":"zero residual","expected":[1],"passed":true},{"actual":[-1.0,1.0],"check":"orthogonal coordinates","expected":[1,1],"passed":false},{"actual":[-3],"check":"negative direction","expected":[-1],"passed":false},{"actual":[],"check":"empty vectors","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero history\", \"actual\": [1.0], \"expected\": [3], \"passed\": false}, {\"check\": \"restart\", \"actual\": [-1, 1], \"expected\": [1, -1], \"passed\": false}, {\"check\": \"zero residual\", \"actual\": [1.0], \"expected\": [1], \"passed\": true}, {\"check\": \"orthogonal coordinates\", \"actual\": [-1.0, 1.0], \"expected\": [1, 1], \"passed\": false}, {\"check\": \"negative direction\", \"actual\": [-3], \"expected\": [-1], \"passed\": false}, {\"check\": \"empty vectors\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.693,"exit_code":1,"observations":[{"actual":[1.0],"check":"nonzero history","expected":[3],"passed":false},{"actual":[0,-2],"check":"restart","expected":[1,-1],"passed":false},{"actual":[0.0],"check":"zero residual","expected":[1],"passed":false},{"actual":[1.0,0.0],"check":"orthogonal coordinates","expected":[1,1],"passed":false},{"actual":[-2],"check":"negative direction","expected":[-1],"passed":false},{"actual":[],"check":"empty vectors","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero history\", \"actual\": [1.0], \"expected\": [3], \"passed\": false}, {\"check\": \"restart\", \"actual\": [0, -2], \"expected\": [1, -1], \"passed\": false}, {\"check\": \"zero residual\", \"actual\": [0.0], \"expected\": [1], \"passed\": false}, {\"check\": \"orthogonal coordinates\", \"actual\": [1.0, 0.0], \"expected\": [1, 1], \"passed\": false}, {\"check\": \"negative direction\", \"actual\": [-2], \"expected\": [-1], \"passed\": false}, {\"check\": \"empty vectors\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.809,"exit_code":0,"observations":[{"actual":[3.0],"check":"nonzero history","expected":[3],"passed":true},{"actual":[1,-1],"check":"restart","expected":[1,-1],"passed":true},{"actual":[1.0],"check":"zero residual","expected":[1],"passed":true},{"actual":[1.0,1.0],"check":"orthogonal coordinates","expected":[1,1],"passed":true},{"actual":[-1],"check":"negative direction","expected":[-1],"passed":true},{"actual":[],"check":"empty vectors","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero history\", \"actual\": [3.0], \"expected\": [3], \"passed\": true}, {\"check\": \"restart\", \"actual\": [1, -1], \"expected\": [1, -1], \"passed\": true}, {\"check\": \"zero residual\", \"actual\": [1.0], \"expected\": [1], \"passed\": true}, {\"check\": \"orthogonal coordinates\", \"actual\": [1.0, 1.0], \"expected\": [1, 1], \"passed\": true}, {\"check\": \"negative direction\", \"actual\": [-1], \"expected\": [-1], \"passed\": true}, {\"check\": \"empty vectors\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}