{"abstract":"Predicted trip times are a millisecond short.","category":"Elevator dispatch scheduling","checks":8,"contract":"heights_mm[i] is the rise from floor i to floor i+1. The trip distance is the sum between the two floors (either direction). With speed vmax (mm/s) and acceleration acc (mm/s^2): if distance*acc >= vmax^2 the car reaches vmax and t = d/vmax + vmax/acc, otherwise t = 2*sqrt(d/acc). Return milliseconds rounded up; zero distance is 0.","contract_signature":"x","evaluation_group":"w2-elevator_dispatch_scheduling-trip-flight-time","failed_approach":"Truncation always rounds down.","family":"w2-elevator_dispatch_scheduling-trip-flight-time-millisecond-rounding","id":"FA-67451","implementations":{"attempt":{"sha256":"918b673022b465c094cd8cf7c3e6cde71374376840330de918eaf0fc68f150ac","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    lo, hi = sorted((x['from'], x['to']))\n    d = sum(x['heights_mm'][lo:hi])\n    if d == 0:\n        return 0\n    v = x['vmax']\n    a = x['acc']\n    if d * a >= v * v:\n        t = d / v + v / a\n    else:\n        t = 2 * math.sqrt(d / a)\n    return int(t * 1000)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('sampled regression 7', {'heights_mm': [3500, 3500, 4200, 5000, 3500], 'from': 4, 'to': 1, 'vmax': 2500, 'acc': 1200}, 7164), ('boundary: short hop without reaching speed', {'heights_mm': [3000, 3000, 3000, 3000, 3000], 'from': 1, 'to': 2, 'vmax': 4000, 'acc': 800}, 3873), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('boundary: long run at contract speed', {'heights_mm': [4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000], 'from': 0, 'to': 9, 'vmax': 2500, 'acc': 1000}, 16900), ('control 1', {'heights_mm': [5000, 4200, 3500, 4200, 4200, 5000, 3000, 3500, 5000, 4200, 3500], 'from': 7, 'to': 0, 'vmax': 1600, 'acc': 1200}, 19521), ('control 4', {'heights_mm': [3500, 3500, 5000, 3500], 'from': 1, 'to': 1, 'vmax': 4000, 'acc': 600}, 0), ('control 10', {'heights_mm': [4200, 4200, 5000, 4200, 3500, 3000, 3000, 3000, 5000, 3500, 4200, 3500], 'from': 7, 'to': 6, 'vmax': 2500, 'acc': 800}, 3873)], [('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('boundary: short hop without reaching speed', {'heights_mm': [3000, 3000, 3000, 3000, 3000], 'from': 1, 'to': 2, 'vmax': 4000, 'acc': 800}, 3873), ('sampled regression 38', {'heights_mm': [4200, 3500, 4200, 4200, 5000, 3000, 3500, 4200, 3500, 3000, 3500], 'from': 6, 'to': 3, 'vmax': 4000, 'acc': 1200}, 6378), ('control 6', {'heights_mm': [3000, 3500, 3000, 4200, 4200, 5000, 3500, 4200, 5000, 3000, 4200, 3000], 'from': 6, 'to': 4, 'vmax': 1000, 'acc': 600}, 10867), ('boundary: long run at contract speed', {'heights_mm': [4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000], 'from': 0, 'to': 9, 'vmax': 2500, 'acc': 1000}, 16900), ('control 12', {'heights_mm': [3000, 5000, 3000, 5000, 4200, 5000, 3000, 4200, 4200, 3500], 'from': 5, 'to': 1, 'vmax': 1000, 'acc': 600}, 18867), ('control 15', {'heights_mm': [3000, 3500, 3000, 3000, 5000, 3000, 3500, 3000, 3000, 3500], 'from': 4, 'to': 7, 'vmax': 1000, 'acc': 600}, 13167), ('control 18', {'heights_mm': [4200, 3000, 3500, 5000, 3500], 'from': 3, 'to': 4, 'vmax': 1000, 'acc': 800}, 6250)], [('regression: fractional milliseconds', {'heights_mm': [3500, 3500, 3500, 3500], 'from': 0, 'to': 3, 'vmax': 1600, 'acc': 600}, 9230), ('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('sampled regression 48', {'heights_mm': [5000, 3000, 3500, 3000, 3000, 3500, 3500, 3000, 5000, 3500], 'from': 9, 'to': 8, 'vmax': 4000, 'acc': 1000}, 4473), ('control 12', {'heights_mm': [3000, 5000, 3000, 5000, 4200, 5000, 3000, 4200, 4200, 3500], 'from': 5, 'to': 1, 'vmax': 1000, 'acc': 600}, 18867), ('boundary: same floor', {'heights_mm': [3000, 3000, 3000], 'from': 2, 'to': 2, 'vmax': 2500, 'acc': 1000}, 0), ('control 23', {'heights_mm': [5000, 3000, 3000, 4200, 4200, 3500, 3000], 'from': 1, 'to': 0, 'vmax': 1600, 'acc': 1000}, 4725), ('control 26', {'heights_mm': [4200, 5000, 4200, 4200, 3000, 3500, 3500, 3500], 'from': 7, 'to': 0, 'vmax': 4000, 'acc': 1000}, 10900), ('control 29', {'heights_mm': [3000, 3000, 3500, 3500, 3000, 4200, 3500, 3000, 3000, 4200, 3500, 5000], 'from': 0, 'to': 4, 'vmax': 1000, 'acc': 1000}, 14000)], [('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('regression: fractional milliseconds', {'heights_mm': [3500, 3500, 3500, 3500], 'from': 0, 'to': 3, 'vmax': 1600, 'acc': 600}, 9230), ('sampled regression 72', {'heights_mm': [3500, 3000, 3000, 3500, 5000, 5000, 3000, 3500, 3500, 4200, 3500, 3500], 'from': 8, 'to': 9, 'vmax': 1000, 'acc': 1200}, 4334), ('sampled regression 22', {'heights_mm': [3500, 3500, 5000, 4200, 3000, 5000, 5000, 3000], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 600}, 6929), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('control 34', {'heights_mm': [3000, 5000, 3500, 4200, 3500, 3000, 3500], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 800}, 6205), ('sampled regression 37', {'heights_mm': [3000, 3000, 5000, 3000, 5000], 'from': 2, 'to': 4, 'vmax': 1000, 'acc': 1200}, 8834), ('sampled regression 40', {'heights_mm': [3000, 3500, 3500, 5000], 'from': 0, 'to': 2, 'vmax': 1600, 'acc': 1000}, 5663)], [('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('sampled regression 7', {'heights_mm': [3500, 3500, 4200, 5000, 3500], 'from': 4, 'to': 1, 'vmax': 2500, 'acc': 1200}, 7164), ('control 34', {'heights_mm': [3000, 5000, 3500, 4200, 3500, 3000, 3500], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 800}, 6205), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('sampled regression 45', {'heights_mm': [5000, 3500, 3000, 3500, 4200, 3000, 3500, 3500, 3500, 4200], 'from': 3, 'to': 8, 'vmax': 1000, 'acc': 1200}, 18534), ('sampled regression 48', {'heights_mm': [5000, 3000, 3500, 3000, 3000, 3500, 3500, 3000, 5000, 3500], 'from': 9, 'to': 8, 'vmax': 4000, 'acc': 1000}, 4473), ('control 51', {'heights_mm': [4200, 4200, 3000, 5000, 5000, 5000, 3500], 'from': 6, 'to': 5, 'vmax': 4000, 'acc': 800}, 5000)]]\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":"e8181e578184887b7da12045f59b0d784c69e7ceab185630d658b96999ef14f0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    lo, hi = sorted((x['from'], x['to']))\n    d = sum(x['heights_mm'][lo:hi])\n    if d == 0:\n        return 0\n    v = x['vmax']\n    a = x['acc']\n    if d * a >= v * v:\n        t = d / v + v / a\n    else:\n        t = 2 * math.sqrt(d / a)\n    return round(t * 1000)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('sampled regression 7', {'heights_mm': [3500, 3500, 4200, 5000, 3500], 'from': 4, 'to': 1, 'vmax': 2500, 'acc': 1200}, 7164), ('boundary: short hop without reaching speed', {'heights_mm': [3000, 3000, 3000, 3000, 3000], 'from': 1, 'to': 2, 'vmax': 4000, 'acc': 800}, 3873), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('boundary: long run at contract speed', {'heights_mm': [4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000], 'from': 0, 'to': 9, 'vmax': 2500, 'acc': 1000}, 16900), ('control 1', {'heights_mm': [5000, 4200, 3500, 4200, 4200, 5000, 3000, 3500, 5000, 4200, 3500], 'from': 7, 'to': 0, 'vmax': 1600, 'acc': 1200}, 19521), ('control 4', {'heights_mm': [3500, 3500, 5000, 3500], 'from': 1, 'to': 1, 'vmax': 4000, 'acc': 600}, 0), ('control 10', {'heights_mm': [4200, 4200, 5000, 4200, 3500, 3000, 3000, 3000, 5000, 3500, 4200, 3500], 'from': 7, 'to': 6, 'vmax': 2500, 'acc': 800}, 3873)], [('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('boundary: short hop without reaching speed', {'heights_mm': [3000, 3000, 3000, 3000, 3000], 'from': 1, 'to': 2, 'vmax': 4000, 'acc': 800}, 3873), ('sampled regression 38', {'heights_mm': [4200, 3500, 4200, 4200, 5000, 3000, 3500, 4200, 3500, 3000, 3500], 'from': 6, 'to': 3, 'vmax': 4000, 'acc': 1200}, 6378), ('control 6', {'heights_mm': [3000, 3500, 3000, 4200, 4200, 5000, 3500, 4200, 5000, 3000, 4200, 3000], 'from': 6, 'to': 4, 'vmax': 1000, 'acc': 600}, 10867), ('boundary: long run at contract speed', {'heights_mm': [4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000], 'from': 0, 'to': 9, 'vmax': 2500, 'acc': 1000}, 16900), ('control 12', {'heights_mm': [3000, 5000, 3000, 5000, 4200, 5000, 3000, 4200, 4200, 3500], 'from': 5, 'to': 1, 'vmax': 1000, 'acc': 600}, 18867), ('control 15', {'heights_mm': [3000, 3500, 3000, 3000, 5000, 3000, 3500, 3000, 3000, 3500], 'from': 4, 'to': 7, 'vmax': 1000, 'acc': 600}, 13167), ('control 18', {'heights_mm': [4200, 3000, 3500, 5000, 3500], 'from': 3, 'to': 4, 'vmax': 1000, 'acc': 800}, 6250)], [('regression: fractional milliseconds', {'heights_mm': [3500, 3500, 3500, 3500], 'from': 0, 'to': 3, 'vmax': 1600, 'acc': 600}, 9230), ('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('sampled regression 48', {'heights_mm': [5000, 3000, 3500, 3000, 3000, 3500, 3500, 3000, 5000, 3500], 'from': 9, 'to': 8, 'vmax': 4000, 'acc': 1000}, 4473), ('control 12', {'heights_mm': [3000, 5000, 3000, 5000, 4200, 5000, 3000, 4200, 4200, 3500], 'from': 5, 'to': 1, 'vmax': 1000, 'acc': 600}, 18867), ('boundary: same floor', {'heights_mm': [3000, 3000, 3000], 'from': 2, 'to': 2, 'vmax': 2500, 'acc': 1000}, 0), ('control 23', {'heights_mm': [5000, 3000, 3000, 4200, 4200, 3500, 3000], 'from': 1, 'to': 0, 'vmax': 1600, 'acc': 1000}, 4725), ('control 26', {'heights_mm': [4200, 5000, 4200, 4200, 3000, 3500, 3500, 3500], 'from': 7, 'to': 0, 'vmax': 4000, 'acc': 1000}, 10900), ('control 29', {'heights_mm': [3000, 3000, 3500, 3500, 3000, 4200, 3500, 3000, 3000, 4200, 3500, 5000], 'from': 0, 'to': 4, 'vmax': 1000, 'acc': 1000}, 14000)], [('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('regression: fractional milliseconds', {'heights_mm': [3500, 3500, 3500, 3500], 'from': 0, 'to': 3, 'vmax': 1600, 'acc': 600}, 9230), ('sampled regression 72', {'heights_mm': [3500, 3000, 3000, 3500, 5000, 5000, 3000, 3500, 3500, 4200, 3500, 3500], 'from': 8, 'to': 9, 'vmax': 1000, 'acc': 1200}, 4334), ('sampled regression 22', {'heights_mm': [3500, 3500, 5000, 4200, 3000, 5000, 5000, 3000], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 600}, 6929), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('control 34', {'heights_mm': [3000, 5000, 3500, 4200, 3500, 3000, 3500], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 800}, 6205), ('sampled regression 37', {'heights_mm': [3000, 3000, 5000, 3000, 5000], 'from': 2, 'to': 4, 'vmax': 1000, 'acc': 1200}, 8834), ('sampled regression 40', {'heights_mm': [3000, 3500, 3500, 5000], 'from': 0, 'to': 2, 'vmax': 1600, 'acc': 1000}, 5663)], [('regression: between the two regimes', {'heights_mm': [3500, 3500, 3500, 3500, 3500, 3500], 'from': 0, 'to': 2, 'vmax': 2500, 'acc': 800}, 5917), ('regression: one floor up', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 0, 'to': 1, 'vmax': 2500, 'acc': 1000}, 3465), ('sampled regression 7', {'heights_mm': [3500, 3500, 4200, 5000, 3500], 'from': 4, 'to': 1, 'vmax': 2500, 'acc': 1200}, 7164), ('control 34', {'heights_mm': [3000, 5000, 3500, 4200, 3500, 3000, 3500], 'from': 3, 'to': 5, 'vmax': 4000, 'acc': 800}, 6205), ('boundary: downward trip', {'heights_mm': [3000, 3500, 4200, 5000], 'from': 3, 'to': 1, 'vmax': 2500, 'acc': 1000}, 5580), ('sampled regression 45', {'heights_mm': [5000, 3500, 3000, 3500, 4200, 3000, 3500, 3500, 3500, 4200], 'from': 3, 'to': 8, 'vmax': 1000, 'acc': 1200}, 18534), ('sampled regression 48', {'heights_mm': [5000, 3000, 3500, 3000, 3000, 3500, 3500, 3000, 5000, 3500], 'from': 9, 'to': 8, 'vmax': 4000, 'acc': 1000}, 4473), ('control 51', {'heights_mm': [4200, 4200, 3000, 5000, 5000, 5000, 3500], 'from': 6, 'to': 5, 'vmax': 4000, 'acc': 800}, 5000)]]\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-trip-flight-time-millisecond-rounding","generated_at":"2026-09-29T14:47:53.052384+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":"Rounding to nearest can round down.","sha256":"df6ae1b64c237b116c12ccc99d97d0a987e4b77a47ced33995f6af659c0c7440","title":"Trip flight time from a trapezoidal profile: millisecond rounding · 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.533,"exit_code":1,"observations":[{"actual":3464,"check":"regression: one floor up","expected":3465,"passed":false},{"actual":7163,"check":"sampled regression 7","expected":7164,"passed":false},{"actual":3872,"check":"boundary: short hop without reaching speed","expected":3873,"passed":false},{"actual":5580,"check":"boundary: downward trip","expected":5580,"passed":true},{"actual":16900,"check":"boundary: long run at contract speed","expected":16900,"passed":true},{"actual":19520,"check":"control 1","expected":19521,"passed":false},{"actual":0,"check":"control 4","expected":0,"passed":true},{"actual":3872,"check":"control 10","expected":3873,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: one floor up\", \"actual\": 3464, \"expected\": 3465, \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": 7163, \"expected\": 7164, \"passed\": false}, {\"check\": \"boundary: short hop without reaching speed\", \"actual\": 3872, \"expected\": 3873, \"passed\": false}, {\"check\": \"boundary: downward trip\", \"actual\": 5580, \"expected\": 5580, \"passed\": true}, {\"check\": \"boundary: long run at contract speed\", \"actual\": 16900, \"expected\": 16900, \"passed\": true}, {\"check\": \"control 1\", \"actual\": 19520, \"expected\": 19521, \"passed\": false}, {\"check\": \"control 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control 10\", \"actual\": 3872, \"expected\": 3873, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.226,"exit_code":1,"observations":[{"actual":3464,"check":"regression: one floor up","expected":3465,"passed":false},{"actual":7163,"check":"sampled regression 7","expected":7164,"passed":false},{"actual":3873,"check":"boundary: short hop without reaching speed","expected":3873,"passed":true},{"actual":5580,"check":"boundary: downward trip","expected":5580,"passed":true},{"actual":16900,"check":"boundary: long run at contract speed","expected":16900,"passed":true},{"actual":19521,"check":"control 1","expected":19521,"passed":true},{"actual":0,"check":"control 4","expected":0,"passed":true},{"actual":3873,"check":"control 10","expected":3873,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: one floor up\", \"actual\": 3464, \"expected\": 3465, \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": 7163, \"expected\": 7164, \"passed\": false}, {\"check\": \"boundary: short hop without reaching speed\", \"actual\": 3873, \"expected\": 3873, \"passed\": true}, {\"check\": \"boundary: downward trip\", \"actual\": 5580, \"expected\": 5580, \"passed\": true}, {\"check\": \"boundary: long run at contract speed\", \"actual\": 16900, \"expected\": 16900, \"passed\": true}, {\"check\": \"control 1\", \"actual\": 19521, \"expected\": 19521, \"passed\": true}, {\"check\": \"control 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"control 10\", \"actual\": 3873, \"expected\": 3873, \"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."}}