{"abstract":"The decoded time state disagrees with the explicit regression oracle for roundtrip.","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.","contract_signature":"r","evaluation_group":"s3-time-civil_fold_candidates","failed_approach":"The partial correction still substitutes None if chosen is None else chosen - offset at the same fault site.","family":"s3-time_representation-civil-fold-candidates-roundtrip","id":"FA-17686","implementations":{"attempt":{"sha256":"dbbbff304af0d140fb8ca83a35d29922198740807641e4bb557ec99fb74f637a","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"},"broken":{"sha256":"ff267f29d38c28858883cfd938466dfebd697818c5897992ff9f069e4e4c7c63","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 = chosen\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-roundtrip","generated_at":"2026-09-29T14:39:49.285093+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.","root_cause":"Civil roundtrip subtracts the selected zone offset.","sha256":"cf72ecf3ce5828e19a2bf6dc856d38314c35a3eaeffbf7c27747c4aad6117207","title":"Civil roundtrip subtracts the selected zone offset · 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":49.786,"exit_code":1,"observations":[{"actual":[[89],false,89,20,69],"check":"fixture 1","expected":[[89],false,89,20,109],"passed":false},{"actual":[[90,100],true,90,20,70],"check":"fixture 2","expected":[[90,100],true,90,20,110],"passed":false},{"actual":[[90,100],true,100,10,90],"check":"fixture 3","expected":[[90,100],true,100,10,110],"passed":false},{"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,99],"check":"fixture 5","expected":[[99,109],true,109,10,119],"passed":false},{"actual":[[110],false,110,10,100],"check":"fixture 6","expected":[[110],false,110,10,120],"passed":false},{"actual":[[80],false,80,20,60],"check":"fixture 7","expected":[[80],false,80,20,100],"passed":false},{"actual":[[120],false,120,10,110],"check":"fixture 8","expected":[[120],false,120,10,130],"passed":false},{"actual":[[-40],false,-40,20,-60],"check":"fixture 9","expected":[[-40],false,-40,20,-20],"passed":false},{"actual":[[95,105],true,105,10,95],"check":"fixture 10","expected":[[95,105],true,105,10,115],"passed":false},{"actual":[[90,100],true,90,20,70],"check":"variant capture","expected":[[90,100],true,90,20,110],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[89], false, 89, 20, 69], \"expected\": [[89], false, 89, 20, 109], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [[90, 100], true, 90, 20, 70], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [[90, 100], true, 100, 10, 90], \"expected\": [[90, 100], true, 100, 10, 110], \"passed\": false}, {\"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, 99], \"expected\": [[99, 109], true, 109, 10, 119], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [[110], false, 110, 10, 100], \"expected\": [[110], false, 110, 10, 120], \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": [[80], false, 80, 20, 60], \"expected\": [[80], false, 80, 20, 100], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [[120], false, 120, 10, 110], \"expected\": [[120], false, 120, 10, 130], \"passed\": false}, {\"check\": \"fixture 9\", \"actual\": [[-40], false, -40, 20, -60], \"expected\": [[-40], false, -40, 20, -20], \"passed\": false}, {\"check\": \"fixture 10\", \"actual\": [[95, 105], true, 105, 10, 95], \"expected\": [[95, 105], true, 105, 10, 115], \"passed\": false}, {\"check\": \"variant capture\", \"actual\": [[90, 100], true, 90, 20, 70], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":50.521,"exit_code":1,"observations":[{"actual":[[89],false,89,20,89],"check":"fixture 1","expected":[[89],false,89,20,109],"passed":false},{"actual":[[90,100],true,90,20,90],"check":"fixture 2","expected":[[90,100],true,90,20,110],"passed":false},{"actual":[[90,100],true,100,10,100],"check":"fixture 3","expected":[[90,100],true,100,10,110],"passed":false},{"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,109],"check":"fixture 5","expected":[[99,109],true,109,10,119],"passed":false},{"actual":[[110],false,110,10,110],"check":"fixture 6","expected":[[110],false,110,10,120],"passed":false},{"actual":[[80],false,80,20,80],"check":"fixture 7","expected":[[80],false,80,20,100],"passed":false},{"actual":[[120],false,120,10,120],"check":"fixture 8","expected":[[120],false,120,10,130],"passed":false},{"actual":[[-40],false,-40,20,-40],"check":"fixture 9","expected":[[-40],false,-40,20,-20],"passed":false},{"actual":[[95,105],true,105,10,105],"check":"fixture 10","expected":[[95,105],true,105,10,115],"passed":false},{"actual":[[90,100],true,90,20,90],"check":"variant capture","expected":[[90,100],true,90,20,110],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [[89], false, 89, 20, 89], \"expected\": [[89], false, 89, 20, 109], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [[90, 100], true, 90, 20, 90], \"expected\": [[90, 100], true, 90, 20, 110], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [[90, 100], true, 100, 10, 100], \"expected\": [[90, 100], true, 100, 10, 110], \"passed\": false}, {\"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, 109], \"expected\": [[99, 109], true, 109, 10, 119], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [[110], false, 110, 10, 110], \"expected\": [[110], false, 110, 10, 120], \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": [[80], false, 80, 20, 80], \"expected\": [[80], false, 80, 20, 100], \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": [[120], false, 120, 10, 120], \"expected\": [[120], false, 120, 10, 130], \"passed\": false}, {\"check\": \"fixture 9\", \"actual\": [[-40], false, -40, 20, -40], \"expected\": [[-40], false, -40, 20, -20], \"passed\": false}, {\"check\": \"fixture 10\", \"actual\": [[95, 105], true, 105, 10, 105], \"expected\": [[95, 105], true, 105, 10, 115], \"passed\": false}, {\"check\": \"variant capture\", \"actual\": [[90, 100], true, 90, 20, 90], \"expected\": [[90, 100], true, 90, 20, 110], \"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."}}