{"abstract":"The decoded time state disagrees with the explicit regression oracle for end.","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['transition'] + r['old'] at the same fault site.","family":"s3-time_representation-civil-gap-resolution-end","id":"FA-17696","implementations":{"attempt":{"sha256":"2d8a1d3cffc8e7842e1bb72f517714e2fbf54af1824012a74e96e8c2207cc4b0","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['old']\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"},"broken":{"sha256":"9e323412e03eab7be748c719bd8ba1ed4edf99d6e11895ac5b99bd4f5b66383c","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-end","generated_at":"2026-09-29T14:39:49.423194+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 end: end = r['transition'] + r['new'].","root_cause":"Civil gap end is interpreted in UTC instead of new local coordinates.","sha256":"35cb87143eb5e870d7791aa114941c57c118d468fcb110b838c3769942ddc1bd","title":"Civil gap end is interpreted in UTC instead of new local coordinates · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":53.102,"exit_code":1,"observations":[{"actual":[109,99,0,false],"check":"fixture 1","expected":[109,99,0,false],"passed":true},{"actual":[110,80,0,false],"check":"fixture 2","expected":[130,100,1,true],"passed":false},{"actual":[110,80,0,false],"check":"fixture 3","expected":[90,80,-1,true],"passed":false},{"actual":[110,80,0,false],"check":"fixture 4","expected":[null,null,0,false],"passed":false},{"actual":[129,99,0,false],"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":[120,90,0,false],"check":"fixture 7","expected":[140,110,1,true],"passed":false},{"actual":[120,90,0,false],"check":"fixture 8","expected":[null,null,0,false],"passed":false},{"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":[110,80,0,false],"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\": [110, 80, 0, false], \"expected\": [130, 100, 1, true], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [110, 80, 0, false], \"expected\": [90, 80, -1, true], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [110, 80, 0, false], \"expected\": [null, null, 0, false], \"passed\": false}, {\"check\": \"fixture 5\", \"actual\": [129, 99, 0, false], \"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\": [120, 90, 0, false], \"expected\": [140, 110, 1, true], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [120, 90, 0, false], \"expected\": [null, null, 0, false], \"passed\": false}, {\"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\": [110, 80, 0, false], \"expected\": [130, 100, 1, true], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":55.11,"exit_code":1,"observations":[{"actual":[109,99,0,false],"check":"fixture 1","expected":[109,99,0,false],"passed":true},{"actual":[110,80,0,false],"check":"fixture 2","expected":[130,100,1,true],"passed":false},{"actual":[110,80,0,false],"check":"fixture 3","expected":[90,80,-1,true],"passed":false},{"actual":[110,80,0,false],"check":"fixture 4","expected":[null,null,0,false],"passed":false},{"actual":[129,99,0,false],"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":[120,90,0,false],"check":"fixture 7","expected":[140,110,1,true],"passed":false},{"actual":[120,90,0,false],"check":"fixture 8","expected":[null,null,0,false],"passed":false},{"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":[110,80,0,false],"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\": [110, 80, 0, false], \"expected\": [130, 100, 1, true], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [110, 80, 0, false], \"expected\": [90, 80, -1, true], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [110, 80, 0, false], \"expected\": [null, null, 0, false], \"passed\": false}, {\"check\": \"fixture 5\", \"actual\": [129, 99, 0, false], \"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\": [120, 90, 0, false], \"expected\": [140, 110, 1, true], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [120, 90, 0, false], \"expected\": [null, null, 0, false], \"passed\": false}, {\"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\": [110, 80, 0, false], \"expected\": [130, 100, 1, true], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":50.392,"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"}