{"abstract":"The car keeps relevelling with doors open after the offset grows large.","category":"Elevator dispatch scheduling","checks":8,"contract":"While standing at a floor the level offset (mm) is sampled. Beyond +-200 mm the sample is a fault and any relevel stops. Relevelling starts when |offset| > 10 and continues until |offset| <= 3 (hysteresis). A relevel runs with doors open when |offset| <= 75, otherwise the doors close first (close-relevel). Output hold, relevel, close-relevel or fault per sample.","contract_signature":"x","evaluation_group":"w2-elevator_dispatch_scheduling-relevelling-control","failed_approach":"Dropping the limit for active relevels misses growth after the start.","family":"w2-elevator_dispatch_scheduling-relevelling-control-open-door-limit-while-active","id":"FA-67666","implementations":{"attempt":{"sha256":"9b1f14b96364b83473bb7ea52c389780b8917ebc8554532f7a6834d5f3d1f9a5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    active = False\n    out = []\n    for off in x['samples']:\n        a = abs(off)\n        if a > 200:\n            out.append('fault')\n            active = False\n            continue\n        if active:\n            if a <= 3:\n                active = False\n                out.append('hold')\n            else:\n                out.append('relevel')\n        elif a > 10:\n            active = True\n            out.append('relevel' if a <= 75 else 'close-relevel')\n        else:\n            out.append('hold')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 4', {'samples': [150, 4, 200, 201, 4, -250, 9, 0]}, ['close-relevel', 'relevel', 'close-relevel', 'fault', 'hold', 'fault', 'hold', 'hold']), ('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('boundary: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('sampled regression 1', {'samples': [200, 40, 200, 9, 4]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 10', {'samples': [10, 9, -11, 150, 3, 201]}, ['hold', 'hold', 'relevel', 'close-relevel', 'hold', 'fault'])], [('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 15', {'samples': [-3, 2, 75, 201, 75, 200]}, ['hold', 'hold', 'relevel', 'fault', 'relevel', 'close-relevel']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 12', {'samples': [-4, 150, 11]}, ['hold', 'close-relevel', 'relevel']), ('control 18', {'samples': [-76, 10, 10, -250, 201, -4, 40]}, ['close-relevel', 'relevel', 'relevel', 'fault', 'fault', 'hold', 'relevel']), ('control 21', {'samples': [75, 40, 201, 9, 11, 4]}, ['relevel', 'relevel', 'fault', 'hold', 'relevel', 'relevel'])], [('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 27', {'samples': [3, 11, 11, 4, 201, 150, 150, -4, 10]}, ['hold', 'relevel', 'relevel', 'relevel', 'fault', 'close-relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 16', {'samples': [200, 75, -76, 10, 0, 40]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'hold', 'relevel']), ('boundary: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 23', {'samples': [3, 10, 200, 0, 3, -4, 0, 200, -4, 150]}, ['hold', 'hold', 'close-relevel', 'hold', 'hold', 'hold', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('control 26', {'samples': [76, 201, 3, 3]}, ['close-relevel', 'fault', 'hold', 'hold']), ('control 29', {'samples': [2, 4, 75, 0, 11, -3, -3, 4]}, ['hold', 'hold', 'relevel', 'hold', 'relevel', 'hold', 'hold', 'hold'])], [('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 42', {'samples': [-3, -76, -76, 11, 2, 150, 75, 76]}, ['hold', 'close-relevel', 'close-relevel', 'relevel', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('sampled regression 25', {'samples': [200, 150, 2, 11, -250, 75, 0, 11]}, ['close-relevel', 'close-relevel', 'hold', 'relevel', 'fault', 'relevel', 'hold', 'relevel']), ('boundary: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 34', {'samples': [150, 10, 200]}, ['close-relevel', 'relevel', 'close-relevel']), ('sampled regression 37', {'samples': [-76, 0, 76, 11, -11, 200, 150, 9]}, ['close-relevel', 'hold', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'close-relevel', 'relevel']), ('sampled regression 40', {'samples': [40, 76, -4]}, ['relevel', 'close-relevel', 'relevel'])], [('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 60', {'samples': [-250, 200, 40, -4, 150, 3, 3, 3]}, ['fault', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'hold', 'hold', 'hold']), ('sampled regression 36', {'samples': [11, 150, 11, 3]}, ['relevel', 'close-relevel', 'relevel', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('sampled regression 48', {'samples': [150, -76, 10, 4, -250, 40, 10]}, ['close-relevel', 'close-relevel', 'relevel', 'relevel', 'fault', 'relevel', 'relevel']), ('sampled regression 51', {'samples': [200, -4, -4, 76, 75, 76]}, ['close-relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'close-relevel'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"1d960ff9efebf4fd9387e83d59d617183ddfdab33dbbc1cb2be1fb97654cbe2d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    active = False\n    out = []\n    for off in x['samples']:\n        a = abs(off)\n        if a > 200:\n            out.append('fault')\n            active = False\n            continue\n        if active:\n            if a <= 3:\n                active = False\n                out.append('hold')\n            else:\n                out.append('relevel' if a <= 200 else 'close-relevel')\n        elif a > 10:\n            active = True\n            out.append('relevel' if a <= 75 else 'close-relevel')\n        else:\n            out.append('hold')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 4', {'samples': [150, 4, 200, 201, 4, -250, 9, 0]}, ['close-relevel', 'relevel', 'close-relevel', 'fault', 'hold', 'fault', 'hold', 'hold']), ('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('boundary: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('sampled regression 1', {'samples': [200, 40, 200, 9, 4]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 10', {'samples': [10, 9, -11, 150, 3, 201]}, ['hold', 'hold', 'relevel', 'close-relevel', 'hold', 'fault'])], [('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 15', {'samples': [-3, 2, 75, 201, 75, 200]}, ['hold', 'hold', 'relevel', 'fault', 'relevel', 'close-relevel']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 12', {'samples': [-4, 150, 11]}, ['hold', 'close-relevel', 'relevel']), ('control 18', {'samples': [-76, 10, 10, -250, 201, -4, 40]}, ['close-relevel', 'relevel', 'relevel', 'fault', 'fault', 'hold', 'relevel']), ('control 21', {'samples': [75, 40, 201, 9, 11, 4]}, ['relevel', 'relevel', 'fault', 'hold', 'relevel', 'relevel'])], [('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 27', {'samples': [3, 11, 11, 4, 201, 150, 150, -4, 10]}, ['hold', 'relevel', 'relevel', 'relevel', 'fault', 'close-relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 16', {'samples': [200, 75, -76, 10, 0, 40]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'hold', 'relevel']), ('boundary: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 23', {'samples': [3, 10, 200, 0, 3, -4, 0, 200, -4, 150]}, ['hold', 'hold', 'close-relevel', 'hold', 'hold', 'hold', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('control 26', {'samples': [76, 201, 3, 3]}, ['close-relevel', 'fault', 'hold', 'hold']), ('control 29', {'samples': [2, 4, 75, 0, 11, -3, -3, 4]}, ['hold', 'hold', 'relevel', 'hold', 'relevel', 'hold', 'hold', 'hold'])], [('regression: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 42', {'samples': [-3, -76, -76, 11, 2, 150, 75, 76]}, ['hold', 'close-relevel', 'close-relevel', 'relevel', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('sampled regression 25', {'samples': [200, 150, 2, 11, -250, 75, 0, 11]}, ['close-relevel', 'close-relevel', 'hold', 'relevel', 'fault', 'relevel', 'hold', 'relevel']), ('boundary: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 34', {'samples': [150, 10, 200]}, ['close-relevel', 'relevel', 'close-relevel']), ('sampled regression 37', {'samples': [-76, 0, 76, 11, -11, 200, 150, 9]}, ['close-relevel', 'hold', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'close-relevel', 'relevel']), ('sampled regression 40', {'samples': [40, 76, -4]}, ['relevel', 'close-relevel', 'relevel'])], [('regression: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 60', {'samples': [-250, 200, 40, -4, 150, 3, 3, 3]}, ['fault', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'hold', 'hold', 'hold']), ('sampled regression 36', {'samples': [11, 150, 11, 3]}, ['relevel', 'close-relevel', 'relevel', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('sampled regression 48', {'samples': [150, -76, 10, 4, -250, 40, 10]}, ['close-relevel', 'close-relevel', 'relevel', 'relevel', 'fault', 'relevel', 'relevel']), ('sampled regression 51', {'samples': [200, -4, -4, 76, 75, 76]}, ['close-relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'close-relevel'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"Stipulated toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. 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":"w2-elevator_dispatch_scheduling-relevelling-control-open-door-limit-while-active","generated_at":"2026-09-29T14:47:55.043041+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.","root_cause":"The door-open limit is replaced by the fault limit during an active relevel.","sha256":"ba8e5d6229819dfd18fad05a95916f2f5959202853f59a9675de672a742e315d","title":"Car relevelling with doors open: open door limit while active · 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":41.718,"exit_code":1,"observations":[{"actual":["relevel","relevel","relevel"],"check":"regression: large offset while relevelling","expected":["relevel","close-relevel","relevel"],"passed":false},{"actual":["close-relevel","relevel","relevel","fault","hold","fault","hold","hold"],"check":"sampled regression 4","expected":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"passed":false},{"actual":["relevel","relevel"],"check":"regression: open door limit","expected":["relevel","close-relevel"],"passed":false},{"actual":["relevel","relevel","relevel","hold"],"check":"boundary: hysteresis band","expected":["relevel","relevel","relevel","hold"],"passed":true},{"actual":["relevel","fault","hold"],"check":"boundary: fault clears relevelling","expected":["relevel","fault","hold"],"passed":true},{"actual":["close-relevel","relevel","relevel","relevel","relevel"],"check":"sampled regression 1","expected":["close-relevel","relevel","close-relevel","relevel","relevel"],"passed":false},{"actual":["fault","fault","hold","hold","hold","relevel","relevel","relevel","relevel"],"check":"sampled regression 7","expected":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"passed":false},{"actual":["hold","hold","relevel","relevel","hold","fault"],"check":"sampled regression 10","expected":["hold","hold","relevel","close-relevel","hold","fault"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: large offset while relevelling\", \"actual\": [\"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": [\"close-relevel\", \"relevel\", \"relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"passed\": false}, {\"check\": \"regression: open door limit\", \"actual\": [\"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\"], \"passed\": false}, {\"check\": \"boundary: hysteresis band\", \"actual\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"passed\": true}, {\"check\": \"boundary: fault clears relevelling\", \"actual\": [\"relevel\", \"fault\", \"hold\"], \"expected\": [\"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 1\", \"actual\": [\"close-relevel\", \"relevel\", \"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 10\", \"actual\": [\"hold\", \"hold\", \"relevel\", \"relevel\", \"hold\", \"fault\"], \"expected\": [\"hold\", \"hold\", \"relevel\", \"close-relevel\", \"hold\", \"fault\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.095,"exit_code":1,"observations":[{"actual":["relevel","relevel","relevel"],"check":"regression: large offset while relevelling","expected":["relevel","close-relevel","relevel"],"passed":false},{"actual":["close-relevel","relevel","relevel","fault","hold","fault","hold","hold"],"check":"sampled regression 4","expected":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"passed":false},{"actual":["relevel","relevel"],"check":"regression: open door limit","expected":["relevel","close-relevel"],"passed":false},{"actual":["relevel","relevel","relevel","hold"],"check":"boundary: hysteresis band","expected":["relevel","relevel","relevel","hold"],"passed":true},{"actual":["relevel","fault","hold"],"check":"boundary: fault clears relevelling","expected":["relevel","fault","hold"],"passed":true},{"actual":["close-relevel","relevel","relevel","relevel","relevel"],"check":"sampled regression 1","expected":["close-relevel","relevel","close-relevel","relevel","relevel"],"passed":false},{"actual":["fault","fault","hold","hold","hold","relevel","relevel","relevel","relevel"],"check":"sampled regression 7","expected":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"passed":false},{"actual":["hold","hold","relevel","relevel","hold","fault"],"check":"sampled regression 10","expected":["hold","hold","relevel","close-relevel","hold","fault"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: large offset while relevelling\", \"actual\": [\"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": [\"close-relevel\", \"relevel\", \"relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"passed\": false}, {\"check\": \"regression: open door limit\", \"actual\": [\"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\"], \"passed\": false}, {\"check\": \"boundary: hysteresis band\", \"actual\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"passed\": true}, {\"check\": \"boundary: fault clears relevelling\", \"actual\": [\"relevel\", \"fault\", \"hold\"], \"expected\": [\"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 1\", \"actual\": [\"close-relevel\", \"relevel\", \"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 10\", \"actual\": [\"hold\", \"hold\", \"relevel\", \"relevel\", \"hold\", \"fault\"], \"expected\": [\"hold\", \"hold\", \"relevel\", \"close-relevel\", \"hold\", \"fault\"], \"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."}}