{"abstract":"The decoded time state disagrees with the explicit regression oracle for ambiguous.","category":"Time representation","checks":11,"contract":"A stipulated backward offset transition at UTC T changes larger old offset to smaller new offset. Candidate UTC coordinates local-offset are admitted on their owning sides (<T old, >=T new). Return sorted unique candidates, ambiguity flag, selected instant under earlier/later/reject policy, selected offset and civil roundtrip. No timezone database is modeled.","evaluation_group":"s3-time-civil_fold_candidates","failed_approach":"The partial correction still substitutes old_valid != new_valid at the same fault site.","family":"s3-time_representation-civil-fold-candidates-ambiguous","id":"FA-17671","implementations":{"attempt":{"sha256":"8c2633e424b9fa9c133e0f2a6b4361aa8308a0736e49ebf750462edbf63dc3d3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    old_candidate = r['local'] - r['old']\n    new_candidate = r['local'] - r['new']\n    old_valid = old_candidate < r['transition']\n    new_valid = new_candidate >= r['transition']\n    candidates = sorted(set(([old_candidate] if old_valid else []) + ([new_candidate] if new_valid else [])))\n    count = len(candidates)\n    ambiguous = old_valid != new_valid\n    chosen = None if count == 0 or (ambiguous and r['policy'] == 'reject') else candidates[-1 if r['policy'] == 'later' else 0]\n    offset = None if chosen is None else (r['old'] if chosen < r['transition'] else r['new'])\n    roundtrip = None if chosen is None else chosen + offset\n    return [candidates,ambiguous,chosen,offset,roundtrip]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[89], False, 89, 20, 109])\ncheck('fixture 2', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[90, 100], True, 90, 20, 110])\ncheck('fixture 3', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[90, 100], True, 100, 10, 110])\ncheck('fixture 4', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[90, 100], True, None, None, None])\ncheck('fixture 5', solve({'local': 119, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[99, 109], True, 109, 10, 119])\ncheck('fixture 6', solve({'local': 120, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[110], False, 110, 10, 120])\ncheck('fixture 7', solve({'local': 100, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[80], False, 80, 20, 100])\ncheck('fixture 8', solve({'local': 130, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[120], False, 120, 10, 130])\ncheck('fixture 9', solve({'local': -20, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[-40], False, -40, 20, -20])\ncheck('fixture 10', solve({'local': 115, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[95, 105], True, 105, 10, 115])\nvariant = [({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[90, 100], True, 90, 20, 110]), ({'local': 111, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[91, 101], True, 91, 20, 111]), ({'local': 112, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[92, 102], True, 92, 20, 112]), ({'local': 113, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[93, 103], True, 93, 20, 113]), ({'local': 114, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[94, 104], True, 94, 20, 114])]\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":"acf05d8ff6d1c200001fc0dba44a632aef475b8afb164c1f04a8fc06fb7edde8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    old_candidate = r['local'] - r['old']\n    new_candidate = r['local'] - r['new']\n    old_valid = old_candidate < r['transition']\n    new_valid = new_candidate >= r['transition']\n    candidates = sorted(set(([old_candidate] if old_valid else []) + ([new_candidate] if new_valid else [])))\n    count = len(candidates)\n    ambiguous = count > 0\n    chosen = None if count == 0 or (ambiguous and r['policy'] == 'reject') else candidates[-1 if r['policy'] == 'later' else 0]\n    offset = None if chosen is None else (r['old'] if chosen < r['transition'] else r['new'])\n    roundtrip = None if chosen is None else chosen + offset\n    return [candidates,ambiguous,chosen,offset,roundtrip]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[89], False, 89, 20, 109])\ncheck('fixture 2', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[90, 100], True, 90, 20, 110])\ncheck('fixture 3', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[90, 100], True, 100, 10, 110])\ncheck('fixture 4', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[90, 100], True, None, None, None])\ncheck('fixture 5', solve({'local': 119, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[99, 109], True, 109, 10, 119])\ncheck('fixture 6', solve({'local': 120, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[110], False, 110, 10, 120])\ncheck('fixture 7', solve({'local': 100, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[80], False, 80, 20, 100])\ncheck('fixture 8', solve({'local': 130, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[120], False, 120, 10, 130])\ncheck('fixture 9', solve({'local': -20, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[-40], False, -40, 20, -20])\ncheck('fixture 10', solve({'local': 115, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[95, 105], True, 105, 10, 115])\nvariant = [({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[90, 100], True, 90, 20, 110]), ({'local': 111, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[91, 101], True, 91, 20, 111]), ({'local': 112, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[92, 102], True, 92, 20, 112]), ({'local': 113, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[93, 103], True, 93, 20, 113]), ({'local': 114, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[94, 104], True, 94, 20, 114])]\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":"d21c5db944df4d397679661e96bdd23917ab65d501b4d8fcd8f038396d9aa721","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(r):\n    old_candidate = r['local'] - r['old']\n    new_candidate = r['local'] - r['new']\n    old_valid = old_candidate < r['transition']\n    new_valid = new_candidate >= r['transition']\n    candidates = sorted(set(([old_candidate] if old_valid else []) + ([new_candidate] if new_valid else [])))\n    count = len(candidates)\n    ambiguous = count == 2\n    chosen = None if count == 0 or (ambiguous and r['policy'] == 'reject') else candidates[-1 if r['policy'] == 'later' else 0]\n    offset = None if chosen is None else (r['old'] if chosen < r['transition'] else r['new'])\n    roundtrip = None if chosen is None else chosen + offset\n    return [candidates,ambiguous,chosen,offset,roundtrip]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve({'local': 109, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[89], False, 89, 20, 109])\ncheck('fixture 2', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[90, 100], True, 90, 20, 110])\ncheck('fixture 3', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[90, 100], True, 100, 10, 110])\ncheck('fixture 4', solve({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[90, 100], True, None, None, None])\ncheck('fixture 5', solve({'local': 119, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[99, 109], True, 109, 10, 119])\ncheck('fixture 6', solve({'local': 120, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[110], False, 110, 10, 120])\ncheck('fixture 7', solve({'local': 100, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[80], False, 80, 20, 100])\ncheck('fixture 8', solve({'local': 130, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'reject'}), [[120], False, 120, 10, 130])\ncheck('fixture 9', solve({'local': -20, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}), [[-40], False, -40, 20, -20])\ncheck('fixture 10', solve({'local': 115, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'later'}), [[95, 105], True, 105, 10, 115])\nvariant = [({'local': 110, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[90, 100], True, 90, 20, 110]), ({'local': 111, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[91, 101], True, 91, 20, 111]), ({'local': 112, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[92, 102], True, 92, 20, 112]), ({'local': 113, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[93, 103], True, 93, 20, 113]), ({'local': 114, 'old': 20, 'new': 10, 'transition': 100, 'policy': 'earlier'}, [[94, 104], True, 94, 20, 114])]\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-fold-candidates-ambiguous","generated_at":"2026-09-29T14:39:49.177558+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 ambiguous: ambiguous = count == 2.","root_cause":"A unique civil instant is labeled ambiguous.","sha256":"05da0218cbc3aee63df0e2aa1e6edbf69aae6b2721db0bcec92161910d0da0ee","title":"A unique civil instant is labeled ambiguous · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":49.415,"exit_code":1,"observations":[{"actual":[[89],true,89,20,109],"check":"fixture 1","expected":[[89],false,89,20,109],"passed":false},{"actual":[[90,100],false,90,20,110],"check":"fixture 2","expected":[[90,100],true,90,20,110],"passed":false},{"actual":[[90,100],false,100,10,110],"check":"fixture 3","expected":[[90,100],true,100,10,110],"passed":false},{"actual":[[90,100],false,90,20,110],"check":"fixture 4","expected":[[90,100],true,null,null,null],"passed":false},{"actual":[[99,109],false,109,10,119],"check":"fixture 5","expected":[[99,109],true,109,10,119],"passed":false},{"actual":[[110],true,110,10,120],"check":"fixture 6","expected":[[110],false,110,10,120],"passed":false},{"actual":[[80],true,80,20,100],"check":"fixture 7","expected":[[80],false,80,20,100],"passed":false},{"actual":[[120],true,null,null,null],"check":"fixture 8","expected":[[120],false,120,10,130],"passed":false},{"actual":[[-40],true,-40,20,-20],"check":"fixture 9","expected":[[-40],false,-40,20,-20],"passed":false},{"actual":[[95,105],false,105,10,115],"check":"fixture 10","expected":[[95,105],true,105,10,115],"passed":false},{"actual":[[90,100],false,90,20,110],"check":"variant capture","expected":[[90,100],true,90,20,110],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[89], true, 89, 20, 109], \"expected\": [[89], false, 89, 20, 109], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [[90, 100], false, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [[90, 100], false, 100, 10, 110], \"expected\": [[90, 100], true, 100, 10, 110], \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": [[90, 100], false, 90, 20, 110], \"expected\": [[90, 100], true, null, null, null], \"passed\": false}, {\"check\": \"fixture 5\", \"actual\": [[99, 109], false, 109, 10, 119], \"expected\": [[99, 109], true, 109, 10, 119], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [[110], true, 110, 10, 120], \"expected\": [[110], false, 110, 10, 120], \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": [[80], true, 80, 20, 100], \"expected\": [[80], false, 80, 20, 100], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [[120], true, null, null, null], \"expected\": [[120], false, 120, 10, 130], \"passed\": false}, {\"check\": \"fixture 9\", \"actual\": [[-40], true, -40, 20, -20], \"expected\": [[-40], false, -40, 20, -20], \"passed\": false}, {\"check\": \"fixture 10\", \"actual\": [[95, 105], false, 105, 10, 115], \"expected\": [[95, 105], true, 105, 10, 115], \"passed\": false}, {\"check\": \"variant capture\", \"actual\": [[90, 100], false, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":49.758,"exit_code":1,"observations":[{"actual":[[89],true,89,20,109],"check":"fixture 1","expected":[[89],false,89,20,109],"passed":false},{"actual":[[90,100],true,90,20,110],"check":"fixture 2","expected":[[90,100],true,90,20,110],"passed":true},{"actual":[[90,100],true,100,10,110],"check":"fixture 3","expected":[[90,100],true,100,10,110],"passed":true},{"actual":[[90,100],true,null,null,null],"check":"fixture 4","expected":[[90,100],true,null,null,null],"passed":true},{"actual":[[99,109],true,109,10,119],"check":"fixture 5","expected":[[99,109],true,109,10,119],"passed":true},{"actual":[[110],true,110,10,120],"check":"fixture 6","expected":[[110],false,110,10,120],"passed":false},{"actual":[[80],true,80,20,100],"check":"fixture 7","expected":[[80],false,80,20,100],"passed":false},{"actual":[[120],true,null,null,null],"check":"fixture 8","expected":[[120],false,120,10,130],"passed":false},{"actual":[[-40],true,-40,20,-20],"check":"fixture 9","expected":[[-40],false,-40,20,-20],"passed":false},{"actual":[[95,105],true,105,10,115],"check":"fixture 10","expected":[[95,105],true,105,10,115],"passed":true},{"actual":[[90,100],true,90,20,110],"check":"variant capture","expected":[[90,100],true,90,20,110],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[89], true, 89, 20, 109], \"expected\": [[89], false, 89, 20, 109], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [[90, 100], true, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [[90, 100], true, 100, 10, 110], \"expected\": [[90, 100], true, 100, 10, 110], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [[90, 100], true, null, null, null], \"expected\": [[90, 100], true, null, null, null], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [[99, 109], true, 109, 10, 119], \"expected\": [[99, 109], true, 109, 10, 119], \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": [[110], true, 110, 10, 120], \"expected\": [[110], false, 110, 10, 120], \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": [[80], true, 80, 20, 100], \"expected\": [[80], false, 80, 20, 100], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [[120], true, null, null, null], \"expected\": [[120], false, 120, 10, 130], \"passed\": false}, {\"check\": \"fixture 9\", \"actual\": [[-40], true, -40, 20, -20], \"expected\": [[-40], false, -40, 20, -20], \"passed\": false}, {\"check\": \"fixture 10\", \"actual\": [[95, 105], true, 105, 10, 115], \"expected\": [[95, 105], true, 105, 10, 115], \"passed\": true}, {\"check\": \"variant capture\", \"actual\": [[90, 100], true, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.935,"exit_code":0,"observations":[{"actual":[[89],false,89,20,109],"check":"fixture 1","expected":[[89],false,89,20,109],"passed":true},{"actual":[[90,100],true,90,20,110],"check":"fixture 2","expected":[[90,100],true,90,20,110],"passed":true},{"actual":[[90,100],true,100,10,110],"check":"fixture 3","expected":[[90,100],true,100,10,110],"passed":true},{"actual":[[90,100],true,null,null,null],"check":"fixture 4","expected":[[90,100],true,null,null,null],"passed":true},{"actual":[[99,109],true,109,10,119],"check":"fixture 5","expected":[[99,109],true,109,10,119],"passed":true},{"actual":[[110],false,110,10,120],"check":"fixture 6","expected":[[110],false,110,10,120],"passed":true},{"actual":[[80],false,80,20,100],"check":"fixture 7","expected":[[80],false,80,20,100],"passed":true},{"actual":[[120],false,120,10,130],"check":"fixture 8","expected":[[120],false,120,10,130],"passed":true},{"actual":[[-40],false,-40,20,-20],"check":"fixture 9","expected":[[-40],false,-40,20,-20],"passed":true},{"actual":[[95,105],true,105,10,115],"check":"fixture 10","expected":[[95,105],true,105,10,115],"passed":true},{"actual":[[90,100],true,90,20,110],"check":"variant capture","expected":[[90,100],true,90,20,110],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[89], false, 89, 20, 109], \"expected\": [[89], false, 89, 20, 109], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [[90, 100], true, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [[90, 100], true, 100, 10, 110], \"expected\": [[90, 100], true, 100, 10, 110], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [[90, 100], true, null, null, null], \"expected\": [[90, 100], true, null, null, null], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [[99, 109], true, 109, 10, 119], \"expected\": [[99, 109], true, 109, 10, 119], \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": [[110], false, 110, 10, 120], \"expected\": [[110], false, 110, 10, 120], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [[80], false, 80, 20, 100], \"expected\": [[80], false, 80, 20, 100], \"passed\": true}, {\"check\": \"fixture 8\", \"actual\": [[120], false, 120, 10, 130], \"expected\": [[120], false, 120, 10, 130], \"passed\": true}, {\"check\": \"fixture 9\", \"actual\": [[-40], false, -40, 20, -20], \"expected\": [[-40], false, -40, 20, -20], \"passed\": true}, {\"check\": \"fixture 10\", \"actual\": [[95, 105], true, 105, 10, 115], \"expected\": [[95, 105], true, 105, 10, 115], \"passed\": true}, {\"check\": \"variant capture\", \"actual\": [[90, 100], true, 90, 20, 110], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}