{"abstract":"The decoded time state disagrees with the explicit regression oracle for width.","category":"Time representation","checks":11,"contract":"A stipulated forward offset transition at UTC T creates local gap [T+old,T+new). Reject returns None, forward adds gap width and backward subtracts it, preserving position in the gap. Return resolved local coordinate, UTC coordinate, shift direction and successful-change flag. Outside-gap labels are unchanged.","evaluation_group":"s3-time-civil_gap_resolution","failed_approach":"The partial correction still substitutes r['old'] - r['new'] at the same fault site.","family":"s3-time_representation-civil-gap-resolution-width","id":"FA-17701","implementations":{"attempt":{"sha256":"d62d8b34339db16947e476f17ab047b0149a6a4f54a9517710c7b8cf3dcf88c7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    start = r['transition'] + r['old']\n    end = r['transition'] + r['new']\n    width = r['old'] - r['new']\n    in_gap = start <= r['local'] < end\n    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0\n    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift\n    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])\n    utc = None if resolved is None else resolved - offset\n    direction = (shift > 0) - (shift < 0)\n    changed = resolved is not None and resolved != r['local']\n    return [resolved,utc,direction,changed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])\ncheck('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])\ncheck('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])\ncheck('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])\ncheck('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])\ncheck('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])\ncheck('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])\ncheck('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])\nvariant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]\ncheck(\"variant capture\", solve(variant[N-1][0]), variant[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":"fa81f38284e8f9dadce6d7c8d2a8f1cc85db002933d3e74a43cc401298fbe064","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    start = r['transition'] + r['old']\n    end = r['transition'] + r['new']\n    width = r['new'] + r['old']\n    in_gap = start <= r['local'] < end\n    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0\n    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift\n    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])\n    utc = None if resolved is None else resolved - offset\n    direction = (shift > 0) - (shift < 0)\n    changed = resolved is not None and resolved != r['local']\n    return [resolved,utc,direction,changed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])\ncheck('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])\ncheck('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])\ncheck('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])\ncheck('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])\ncheck('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])\ncheck('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])\ncheck('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])\nvariant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]\ncheck(\"variant capture\", solve(variant[N-1][0]), variant[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"},"fixed":{"sha256":"d0ee2a9fbf387a1d8347ba1f8e5292e596af918caa4999da3261fb5675877d12","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    start = r['transition'] + r['old']\n    end = r['transition'] + r['new']\n    width = r['new'] - r['old']\n    in_gap = start <= r['local'] < end\n    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0\n    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift\n    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])\n    utc = None if resolved is None else resolved - offset\n    direction = (shift > 0) - (shift < 0)\n    changed = resolved is not None and resolved != r['local']\n    return [resolved,utc,direction,changed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])\ncheck('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])\ncheck('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])\ncheck('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])\ncheck('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])\ncheck('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])\ncheck('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])\ncheck('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])\ncheck('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])\nvariant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]\ncheck(\"variant capture\", solve(variant[N-1][0]), variant[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":"Deterministic integer reference model with stipulated units and policies; not a complete clock, wire standard or platform implementation. 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":"s3-time_representation-civil-gap-resolution-width","generated_at":"2026-09-29T14:39:49.544792+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Clock transfer and timestamp consumers require preserved coordinate, phase, validity and elapsed-time semantics.","repair":"Preserve the declared coordinate and state contract at width: width = r['new'] - r['old'].","root_cause":"Gap displacement uses offset sum or reversed offset change.","sha256":"eea60728013cb98af73179c6d63a0c9fe4c3b742ec311c230822b27ef4562e2a","title":"Gap displacement uses offset sum or reversed offset change · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":49.029,"exit_code":1,"observations":[{"actual":[109,99,0,false],"check":"fixture 1","expected":[109,99,0,false],"passed":true},{"actual":[90,80,-1,true],"check":"fixture 2","expected":[130,100,1,true],"passed":false},{"actual":[130,100,1,true],"check":"fixture 3","expected":[90,80,-1,true],"passed":false},{"actual":[null,null,0,false],"check":"fixture 4","expected":[null,null,0,false],"passed":true},{"actual":[149,119,1,true],"check":"fixture 5","expected":[109,99,-1,true],"passed":false},{"actual":[130,100,0,false],"check":"fixture 6","expected":[130,100,0,false],"passed":true},{"actual":[100,90,-1,true],"check":"fixture 7","expected":[140,110,1,true],"passed":false},{"actual":[null,null,0,false],"check":"fixture 8","expected":[null,null,0,false],"passed":true},{"actual":[-20,-30,0,false],"check":"fixture 9","expected":[-20,-30,0,false],"passed":true},{"actual":[140,110,0,false],"check":"fixture 10","expected":[140,110,0,false],"passed":true},{"actual":[90,80,-1,true],"check":"variant capture","expected":[130,100,1,true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [109, 99, 0, false], \"expected\": [109, 99, 0, false], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [90, 80, -1, true], \"expected\": [130, 100, 1, true], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [130, 100, 1, true], \"expected\": [90, 80, -1, true], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [149, 119, 1, true], \"expected\": [109, 99, -1, true], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [130, 100, 0, false], \"expected\": [130, 100, 0, false], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [100, 90, -1, true], \"expected\": [140, 110, 1, true], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 9\", \"actual\": [-20, -30, 0, false], \"expected\": [-20, -30, 0, false], \"passed\": true}, {\"check\": \"fixture 10\", \"actual\": [140, 110, 0, false], \"expected\": [140, 110, 0, false], \"passed\": true}, {\"check\": \"variant capture\", \"actual\": [90, 80, -1, true], \"expected\": [130, 100, 1, true], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":52.813,"exit_code":1,"observations":[{"actual":[109,99,0,false],"check":"fixture 1","expected":[109,99,0,false],"passed":true},{"actual":[150,120,1,true],"check":"fixture 2","expected":[130,100,1,true],"passed":false},{"actual":[70,60,-1,true],"check":"fixture 3","expected":[90,80,-1,true],"passed":false},{"actual":[null,null,0,false],"check":"fixture 4","expected":[null,null,0,false],"passed":true},{"actual":[89,79,-1,true],"check":"fixture 5","expected":[109,99,-1,true],"passed":false},{"actual":[130,100,0,false],"check":"fixture 6","expected":[130,100,0,false],"passed":true},{"actual":[160,130,1,true],"check":"fixture 7","expected":[140,110,1,true],"passed":false},{"actual":[null,null,0,false],"check":"fixture 8","expected":[null,null,0,false],"passed":true},{"actual":[-20,-30,0,false],"check":"fixture 9","expected":[-20,-30,0,false],"passed":true},{"actual":[140,110,0,false],"check":"fixture 10","expected":[140,110,0,false],"passed":true},{"actual":[150,120,1,true],"check":"variant capture","expected":[130,100,1,true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [109, 99, 0, false], \"expected\": [109, 99, 0, false], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [150, 120, 1, true], \"expected\": [130, 100, 1, true], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [70, 60, -1, true], \"expected\": [90, 80, -1, true], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [89, 79, -1, true], \"expected\": [109, 99, -1, true], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [130, 100, 0, false], \"expected\": [130, 100, 0, false], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [160, 130, 1, true], \"expected\": [140, 110, 1, true], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 9\", \"actual\": [-20, -30, 0, false], \"expected\": [-20, -30, 0, false], \"passed\": true}, {\"check\": \"fixture 10\", \"actual\": [140, 110, 0, false], \"expected\": [140, 110, 0, false], \"passed\": true}, {\"check\": \"variant capture\", \"actual\": [150, 120, 1, true], \"expected\": [130, 100, 1, true], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":52.161,"exit_code":0,"observations":[{"actual":[109,99,0,false],"check":"fixture 1","expected":[109,99,0,false],"passed":true},{"actual":[130,100,1,true],"check":"fixture 2","expected":[130,100,1,true],"passed":true},{"actual":[90,80,-1,true],"check":"fixture 3","expected":[90,80,-1,true],"passed":true},{"actual":[null,null,0,false],"check":"fixture 4","expected":[null,null,0,false],"passed":true},{"actual":[109,99,-1,true],"check":"fixture 5","expected":[109,99,-1,true],"passed":true},{"actual":[130,100,0,false],"check":"fixture 6","expected":[130,100,0,false],"passed":true},{"actual":[140,110,1,true],"check":"fixture 7","expected":[140,110,1,true],"passed":true},{"actual":[null,null,0,false],"check":"fixture 8","expected":[null,null,0,false],"passed":true},{"actual":[-20,-30,0,false],"check":"fixture 9","expected":[-20,-30,0,false],"passed":true},{"actual":[140,110,0,false],"check":"fixture 10","expected":[140,110,0,false],"passed":true},{"actual":[130,100,1,true],"check":"variant capture","expected":[130,100,1,true],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [109, 99, 0, false], \"expected\": [109, 99, 0, false], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [130, 100, 1, true], \"expected\": [130, 100, 1, true], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [90, 80, -1, true], \"expected\": [90, 80, -1, true], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [109, 99, -1, true], \"expected\": [109, 99, -1, true], \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": [130, 100, 0, false], \"expected\": [130, 100, 0, false], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [140, 110, 1, true], \"expected\": [140, 110, 1, true], \"passed\": true}, {\"check\": \"fixture 8\", \"actual\": [null, null, 0, false], \"expected\": [null, null, 0, false], \"passed\": true}, {\"check\": \"fixture 9\", \"actual\": [-20, -30, 0, false], \"expected\": [-20, -30, 0, false], \"passed\": true}, {\"check\": \"fixture 10\", \"actual\": [140, 110, 0, false], \"expected\": [140, 110, 0, false], \"passed\": true}, {\"check\": \"variant capture\", \"actual\": [130, 100, 1, true], \"expected\": [130, 100, 1, true], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}