{"abstract":"Transfer loss is ignored while moving inventory between cells.","category":"Battery state accounting","checks":6,"contract":"For nonnegative inventories and even transfer no greater than donor inventory, return [donor,receiver,lost]; receiver has no capacity bound in this toy model and receives half the transfer.","contract_signature":"donor, receiver, transfer","evaluation_group":"model-9102fd4b488ae4e5","failed_approach":"Debiting only the received amount conserves charge that the model says was lost.","family":"z-battery_models-balancing-loss","id":"FA-12336","implementations":{"attempt":{"sha256":"8d23446ae11ffa92db15dad589d1710cce1658e96ae1282be8d1ed338606fc66","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(donor, receiver, transfer):\n    return [donor-transfer//2,receiver+transfer//2,transfer//2]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('partial', solve(10*N,2*N,4*N), [6*N,4*N,2*N])\ncheck('full', solve(10*N,0,10*N), [0,5*N,5*N])\ncheck('zero', solve(10*N,2*N,0), [10*N,2*N,0])\ncheck('empty', solve(0,0,0), [0,0,0])\ncheck('receiver occupied', solve(8*N,9*N,2*N), [6*N,10*N,N])\ncheck('small transfer', solve(10*N,2*N,2), [10*N-2,2*N+1,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":"a03626ffc909c16478e4ffdab1a530f907bb11f88b6b2340442060a66e791623","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(donor, receiver, transfer):\n    return [donor-transfer,receiver+transfer,0]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('partial', solve(10*N,2*N,4*N), [6*N,4*N,2*N])\ncheck('full', solve(10*N,0,10*N), [0,5*N,5*N])\ncheck('zero', solve(10*N,2*N,0), [10*N,2*N,0])\ncheck('empty', solve(0,0,0), [0,0,0])\ncheck('receiver occupied', solve(8*N,9*N,2*N), [6*N,10*N,N])\ncheck('small transfer', solve(10*N,2*N,2), [10*N-2,2*N+1,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":"Integer toy accounting with declared loss rules; no electrochemistry, hardware behavior, or safety claims. 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-battery_models-balancing-loss","generated_at":"2026-09-29T14:38:56.015384+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An explicit synthetic battery bookkeeping model isolates this state-accounting error; it is not an engineering prediction or safety procedure.","root_cause":"Transfer loss is ignored while moving inventory between cells.","sha256":"8af9e391a1035622cebeb4f8fce12ff096a13838e285191767d4dbf69cf28338","title":"Balancing credits the receiver without debiting losses · 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":38.304,"exit_code":1,"observations":[{"actual":[8,4,2],"check":"partial","expected":[6,4,2],"passed":false},{"actual":[5,5,5],"check":"full","expected":[0,5,5],"passed":false},{"actual":[10,2,0],"check":"zero","expected":[10,2,0],"passed":true},{"actual":[0,0,0],"check":"empty","expected":[0,0,0],"passed":true},{"actual":[7,10,1],"check":"receiver occupied","expected":[6,10,1],"passed":false},{"actual":[9,3,1],"check":"small transfer","expected":[8,3,1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"partial\", \"actual\": [8, 4, 2], \"expected\": [6, 4, 2], \"passed\": false}, {\"check\": \"full\", \"actual\": [5, 5, 5], \"expected\": [0, 5, 5], \"passed\": false}, {\"check\": \"zero\", \"actual\": [10, 2, 0], \"expected\": [10, 2, 0], \"passed\": true}, {\"check\": \"empty\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"receiver occupied\", \"actual\": [7, 10, 1], \"expected\": [6, 10, 1], \"passed\": false}, {\"check\": \"small transfer\", \"actual\": [9, 3, 1], \"expected\": [8, 3, 1], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.751,"exit_code":1,"observations":[{"actual":[6,6,0],"check":"partial","expected":[6,4,2],"passed":false},{"actual":[0,10,0],"check":"full","expected":[0,5,5],"passed":false},{"actual":[10,2,0],"check":"zero","expected":[10,2,0],"passed":true},{"actual":[0,0,0],"check":"empty","expected":[0,0,0],"passed":true},{"actual":[6,11,0],"check":"receiver occupied","expected":[6,10,1],"passed":false},{"actual":[8,4,0],"check":"small transfer","expected":[8,3,1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"partial\", \"actual\": [6, 6, 0], \"expected\": [6, 4, 2], \"passed\": false}, {\"check\": \"full\", \"actual\": [0, 10, 0], \"expected\": [0, 5, 5], \"passed\": false}, {\"check\": \"zero\", \"actual\": [10, 2, 0], \"expected\": [10, 2, 0], \"passed\": true}, {\"check\": \"empty\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"receiver occupied\", \"actual\": [6, 11, 0], \"expected\": [6, 10, 1], \"passed\": false}, {\"check\": \"small transfer\", \"actual\": [8, 4, 0], \"expected\": [8, 3, 1], \"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."}}