{"abstract":"A dynamic array overwrites a formula whose visible result is empty.","category":"Spreadsheet calculation semantics","checks":7,"contract":"Given equal-length proposed values and target cells, return values if all targets are None, otherwise #SPILL!. An empty string means an occupied formula cell. No partial write occurs.","evaluation_group":"model-6bbfc3b16a0712c4","failed_approach":"Checking empty strings fixes formula collisions but still treats numeric zero and False as free.","family":"z-spreadsheets-spill-occupied-empty","id":"FA-11371","implementations":{"attempt":{"sha256":"654aa72b4f5c7d23a04ec99344283abe59f875b004f10f21517898a2dbc5a0ef","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(values, targets):\n    return '#SPILL!' if any(v or v == '' for v in targets) else values\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('empty string formula blocks', solve([N], ['']), '#SPILL!')\ncheck('zero blocks', solve([N],[0]), '#SPILL!')\ncheck('logical false blocks', solve([N],[False]), '#SPILL!')\ncheck('absent cell accepts', solve([N],[None]), [N])\ncheck('later collision blocks whole spill', solve([N,N+1],[None,0]), '#SPILL!')\ncheck('empty shape', solve([],[]), [])\ncheck('ordinary text blocks', solve([N],['x']), '#SPILL!')\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":"3f55d3217230d84c4982d6de5dbdfcbc69d9dd6cdcadb96667d9559245546545","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(values, targets):\n    return '#SPILL!' if any(targets) else values\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('empty string formula blocks', solve([N], ['']), '#SPILL!')\ncheck('zero blocks', solve([N],[0]), '#SPILL!')\ncheck('logical false blocks', solve([N],[False]), '#SPILL!')\ncheck('absent cell accepts', solve([N],[None]), [N])\ncheck('later collision blocks whole spill', solve([N,N+1],[None,0]), '#SPILL!')\ncheck('empty shape', solve([],[]), [])\ncheck('ordinary text blocks', solve([N],['x']), '#SPILL!')\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":"0ea66b7c8f133243e4d6e5132911d61f5058346f8423fc1468d129c76370bc1b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(values, targets):\n    return '#SPILL!' if any(v is not None for v in targets) else values\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('empty string formula blocks', solve([N], ['']), '#SPILL!')\ncheck('zero blocks', solve([N],[0]), '#SPILL!')\ncheck('logical false blocks', solve([N],[False]), '#SPILL!')\ncheck('absent cell accepts', solve([N],[None]), [N])\ncheck('later collision blocks whole spill', solve([N,N+1],[None,0]), '#SPILL!')\ncheck('empty shape', solve([],[]), [])\ncheck('ordinary text blocks', solve([N],['x']), '#SPILL!')\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":" 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-spreadsheets-spill-occupied-empty","generated_at":"2026-09-29T14:38:47.364007+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This isolated spreadsheet model makes cell semantics explicit; it does not claim compatibility with every workbook engine.","repair":"Permit only absent None targets; zero, False and empty strings remain occupied.","root_cause":"Spill collision checks use displayed value truthiness rather than cell occupancy.","sha256":"98cf07cae83986f41cb957f7f753a518c333306ce1dad4e486e6772a5c3b74f7","title":"A spill overwrites an occupied cell displaying an empty string · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.526,"exit_code":1,"observations":[{"actual":"#SPILL!","check":"empty string formula blocks","expected":"#SPILL!","passed":true},{"actual":[1],"check":"zero blocks","expected":"#SPILL!","passed":false},{"actual":[1],"check":"logical false blocks","expected":"#SPILL!","passed":false},{"actual":[1],"check":"absent cell accepts","expected":[1],"passed":true},{"actual":[1,2],"check":"later collision blocks whole spill","expected":"#SPILL!","passed":false},{"actual":[],"check":"empty shape","expected":[],"passed":true},{"actual":"#SPILL!","check":"ordinary text blocks","expected":"#SPILL!","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty string formula blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}, {\"check\": \"zero blocks\", \"actual\": [1], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"logical false blocks\", \"actual\": [1], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"absent cell accepts\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"later collision blocks whole spill\", \"actual\": [1, 2], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"empty shape\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"ordinary text blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.956,"exit_code":1,"observations":[{"actual":[1],"check":"empty string formula blocks","expected":"#SPILL!","passed":false},{"actual":[1],"check":"zero blocks","expected":"#SPILL!","passed":false},{"actual":[1],"check":"logical false blocks","expected":"#SPILL!","passed":false},{"actual":[1],"check":"absent cell accepts","expected":[1],"passed":true},{"actual":[1,2],"check":"later collision blocks whole spill","expected":"#SPILL!","passed":false},{"actual":[],"check":"empty shape","expected":[],"passed":true},{"actual":"#SPILL!","check":"ordinary text blocks","expected":"#SPILL!","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty string formula blocks\", \"actual\": [1], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"zero blocks\", \"actual\": [1], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"logical false blocks\", \"actual\": [1], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"absent cell accepts\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"later collision blocks whole spill\", \"actual\": [1, 2], \"expected\": \"#SPILL!\", \"passed\": false}, {\"check\": \"empty shape\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"ordinary text blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.046,"exit_code":0,"observations":[{"actual":"#SPILL!","check":"empty string formula blocks","expected":"#SPILL!","passed":true},{"actual":"#SPILL!","check":"zero blocks","expected":"#SPILL!","passed":true},{"actual":"#SPILL!","check":"logical false blocks","expected":"#SPILL!","passed":true},{"actual":[1],"check":"absent cell accepts","expected":[1],"passed":true},{"actual":"#SPILL!","check":"later collision blocks whole spill","expected":"#SPILL!","passed":true},{"actual":[],"check":"empty shape","expected":[],"passed":true},{"actual":"#SPILL!","check":"ordinary text blocks","expected":"#SPILL!","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty string formula blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}, {\"check\": \"zero blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}, {\"check\": \"logical false blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}, {\"check\": \"absent cell accepts\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"later collision blocks whole spill\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}, {\"check\": \"empty shape\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"ordinary text blocks\", \"actual\": \"#SPILL!\", \"expected\": \"#SPILL!\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}