FAILURE MAP
← Case archive

FA-18646 / Time representation / Open access

Era resolution excludes adjacent historical candidate · case 01

The decoded time state disagrees with the explicit regression oracle for candidates.

Verified by executionVariant 1 · 18 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Era resolution excludes adjacent historical candidate.

VERIFIED REPAIR

Preserve the declared coordinate and state contract at candidates: candidates = [(base_era + k) * 1024 + r['week'] for k in (-1,0,1)].

Unsuccessful approach: The partial correction still substitutes [(base_era+k)*1024+r['week'] for k in (0,1)] at the same fault site.

Case contract

Controlled week counter has 1024-week eras. A received low week 0..1023 and tick-within-week 0..99 must resolve near trusted absolute reference week, considering neighboring eras. Pick minimum absolute week distance; ties are ambiguous and rejected. Also require distance within trust radius. Report accepted absolute week/tick plus ambiguity, distance and selected era. No GNSS standards compliance is claimed. A nonnegative reference uncertainty invalidates selection if nearest distance plus uncertainty reaches the 512-week half-era boundary.

Why this case matters

Clock transfer and timestamp consumers require preserved coordinate, phase, validity and elapsed-time semantics.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(r):
    base_era = r['reference'] // 1024
    candidates = [base_era * 1024 + r['week']]
    distances = [abs(x-r['reference']) for x in candidates]
    nearest = min(distances)
    winners = [x for x,d in zip(candidates,distances) if d == nearest]
    ambiguous = len(winners) != 1 or (r['reference_uncertainty'] > 0 and nearest + r['reference_uncertainty'] >= 512)
    valid_fields = 0 <= r['week'] < 1024 and 0 <= r['tick'] < 100
    trusted = nearest <= r['radius']
    chosen = winners[0] if not ambiguous and valid_fields and trusted else None
    absolute_tick = None if chosen is None else chosen * 100 + r['tick']
    return [chosen,absolute_tick,ambiguous,nearest,None if chosen is None else chosen//1024]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'reference': 1023, 'week': 0, 'tick': 1, 'radius': 2, 'reference_uncertainty': 0}), [1024, 102401, False, 1, 1])
check('fixture 2', solve({'reference': 1024, 'week': 1023, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}), [1023, 102302, False, 1, 0])
check('fixture 3', solve({'reference': 512, 'week': 0, 'tick': 5, 'radius': 600, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 4', solve({'reference': 0, 'week': 512, 'tick': 1, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 5', solve({'reference': -1, 'week': 0, 'tick': 1, 'radius': 1, 'reference_uncertainty': 0}), [0, 1, False, 1, 0])
check('fixture 6', solve({'reference': -1025, 'week': 1023, 'tick': 2, 'radius': 1, 'reference_uncertainty': 0}), [-1025, -102498, False, 0, -2])
check('fixture 7', solve({'reference': 100, 'week': 100, 'tick': 99, 'radius': 0, 'reference_uncertainty': 0}), [100, 10099, False, 0, 0])
check('fixture 8', solve({'reference': 100, 'week': 100, 'tick': 100, 'radius': 1, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 9', solve({'reference': 1024, 'week': 1024, 'tick': 0, 'radius': 1024, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 10', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 99, 'reference_uncertainty': 0}), [None, None, False, 100, None])
check('fixture 11', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 100, 'reference_uncertainty': 0}), [200, 20001, False, 100, 0])
check('fixture 12', solve({'reference': 3072, 'week': 1, 'tick': 2, 'radius': 10, 'reference_uncertainty': 0}), [3073, 307302, False, 1, 3])
check('fixture 13', solve({'reference': -513, 'week': 1023, 'tick': 0, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 14', solve({'reference': 5120000, 'week': 0, 'tick': 0, 'radius': 1, 'reference_uncertainty': 0}), [5120000, 512000000, False, 0, 5000])
check('fixture 15', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 411}), [200, 20001, False, 100, 0])
check('fixture 16', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 412}), [None, None, True, 100, None])
check('fixture 17', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 500}), [None, None, True, 100, None])
variant = [({'reference': 1023, 'week': 0, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102402, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 3, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102403, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 4, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102404, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 5, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102405, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 6, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102406, False, 1, 1])]
check("variant capture", solve(variant[N-1][0]), variant[N-1][1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[None, None, False, 1023, None][1024, 102401, False, 1, 1]Failed
fixture 2[None, None, False, 1023, None][1023, 102302, False, 1, 0]Failed
fixture 3[0, 5, False, 512, 0][None, None, True, 512, None]Failed
fixture 4[512, 51201, False, 512, 0][None, None, True, 512, None]Failed
fixture 5[None, None, False, 1023, None][0, 1, False, 1, 0]Failed
fixture 6[-1025, -102498, False, 0, -2][-1025, -102498, False, 0, -2]Passed
fixture 7[100, 10099, False, 0, 0][100, 10099, False, 0, 0]Passed
fixture 8[None, None, False, 0, None][None, None, False, 0, None]Passed
fixture 9[None, None, False, 1024, None][None, None, False, 0, None]Failed
fixture 10[None, None, False, 100, None][None, None, False, 100, None]Passed
fixture 11[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 12[3073, 307302, False, 1, 3][3073, 307302, False, 1, 3]Passed
fixture 13[-1, -100, False, 512, -1][None, None, True, 512, None]Failed
fixture 14[5120000, 512000000, False, 0, 5000][5120000, 512000000, False, 0, 5000]Passed
fixture 15[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 16[None, None, True, 100, None][None, None, True, 100, None]Passed
fixture 17[None, None, True, 100, None][None, None, True, 100, None]Passed
variant capture[None, None, False, 1023, None][1024, 102402, False, 1, 1]Failed

SHA-256 / 97b959d99e4d0129fbc3c281e6faa47c1a5935a02dae5c3677fd4d4d683858ae

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(r):
    base_era = r['reference'] // 1024
    candidates = [(base_era+k)*1024+r['week'] for k in (0,1)]
    distances = [abs(x-r['reference']) for x in candidates]
    nearest = min(distances)
    winners = [x for x,d in zip(candidates,distances) if d == nearest]
    ambiguous = len(winners) != 1 or (r['reference_uncertainty'] > 0 and nearest + r['reference_uncertainty'] >= 512)
    valid_fields = 0 <= r['week'] < 1024 and 0 <= r['tick'] < 100
    trusted = nearest <= r['radius']
    chosen = winners[0] if not ambiguous and valid_fields and trusted else None
    absolute_tick = None if chosen is None else chosen * 100 + r['tick']
    return [chosen,absolute_tick,ambiguous,nearest,None if chosen is None else chosen//1024]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'reference': 1023, 'week': 0, 'tick': 1, 'radius': 2, 'reference_uncertainty': 0}), [1024, 102401, False, 1, 1])
check('fixture 2', solve({'reference': 1024, 'week': 1023, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}), [1023, 102302, False, 1, 0])
check('fixture 3', solve({'reference': 512, 'week': 0, 'tick': 5, 'radius': 600, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 4', solve({'reference': 0, 'week': 512, 'tick': 1, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 5', solve({'reference': -1, 'week': 0, 'tick': 1, 'radius': 1, 'reference_uncertainty': 0}), [0, 1, False, 1, 0])
check('fixture 6', solve({'reference': -1025, 'week': 1023, 'tick': 2, 'radius': 1, 'reference_uncertainty': 0}), [-1025, -102498, False, 0, -2])
check('fixture 7', solve({'reference': 100, 'week': 100, 'tick': 99, 'radius': 0, 'reference_uncertainty': 0}), [100, 10099, False, 0, 0])
check('fixture 8', solve({'reference': 100, 'week': 100, 'tick': 100, 'radius': 1, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 9', solve({'reference': 1024, 'week': 1024, 'tick': 0, 'radius': 1024, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 10', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 99, 'reference_uncertainty': 0}), [None, None, False, 100, None])
check('fixture 11', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 100, 'reference_uncertainty': 0}), [200, 20001, False, 100, 0])
check('fixture 12', solve({'reference': 3072, 'week': 1, 'tick': 2, 'radius': 10, 'reference_uncertainty': 0}), [3073, 307302, False, 1, 3])
check('fixture 13', solve({'reference': -513, 'week': 1023, 'tick': 0, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 14', solve({'reference': 5120000, 'week': 0, 'tick': 0, 'radius': 1, 'reference_uncertainty': 0}), [5120000, 512000000, False, 0, 5000])
check('fixture 15', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 411}), [200, 20001, False, 100, 0])
check('fixture 16', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 412}), [None, None, True, 100, None])
check('fixture 17', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 500}), [None, None, True, 100, None])
variant = [({'reference': 1023, 'week': 0, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102402, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 3, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102403, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 4, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102404, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 5, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102405, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 6, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102406, False, 1, 1])]
check("variant capture", solve(variant[N-1][0]), variant[N-1][1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[1024, 102401, False, 1, 1][1024, 102401, False, 1, 1]Passed
fixture 2[None, None, False, 1023, None][1023, 102302, False, 1, 0]Failed
fixture 3[None, None, True, 512, None][None, None, True, 512, None]Passed
fixture 4[512, 51201, False, 512, 0][None, None, True, 512, None]Failed
fixture 5[0, 1, False, 1, 0][0, 1, False, 1, 0]Passed
fixture 6[-1025, -102498, False, 0, -2][-1025, -102498, False, 0, -2]Passed
fixture 7[100, 10099, False, 0, 0][100, 10099, False, 0, 0]Passed
fixture 8[None, None, False, 0, None][None, None, False, 0, None]Passed
fixture 9[None, None, False, 1024, None][None, None, False, 0, None]Failed
fixture 10[None, None, False, 100, None][None, None, False, 100, None]Passed
fixture 11[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 12[3073, 307302, False, 1, 3][3073, 307302, False, 1, 3]Passed
fixture 13[-1, -100, False, 512, -1][None, None, True, 512, None]Failed
fixture 14[5120000, 512000000, False, 0, 5000][5120000, 512000000, False, 0, 5000]Passed
fixture 15[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 16[None, None, True, 100, None][None, None, True, 100, None]Passed
fixture 17[None, None, True, 100, None][None, None, True, 100, None]Passed
variant capture[1024, 102402, False, 1, 1][1024, 102402, False, 1, 1]Passed

SHA-256 / 4ed45a8c55588e113a041cb93229c793472e2b9e34eb00ed1e386e210809c37f

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(r):
    base_era = r['reference'] // 1024
    candidates = [(base_era + k) * 1024 + r['week'] for k in (-1,0,1)]
    distances = [abs(x-r['reference']) for x in candidates]
    nearest = min(distances)
    winners = [x for x,d in zip(candidates,distances) if d == nearest]
    ambiguous = len(winners) != 1 or (r['reference_uncertainty'] > 0 and nearest + r['reference_uncertainty'] >= 512)
    valid_fields = 0 <= r['week'] < 1024 and 0 <= r['tick'] < 100
    trusted = nearest <= r['radius']
    chosen = winners[0] if not ambiguous and valid_fields and trusted else None
    absolute_tick = None if chosen is None else chosen * 100 + r['tick']
    return [chosen,absolute_tick,ambiguous,nearest,None if chosen is None else chosen//1024]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'reference': 1023, 'week': 0, 'tick': 1, 'radius': 2, 'reference_uncertainty': 0}), [1024, 102401, False, 1, 1])
check('fixture 2', solve({'reference': 1024, 'week': 1023, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}), [1023, 102302, False, 1, 0])
check('fixture 3', solve({'reference': 512, 'week': 0, 'tick': 5, 'radius': 600, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 4', solve({'reference': 0, 'week': 512, 'tick': 1, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 5', solve({'reference': -1, 'week': 0, 'tick': 1, 'radius': 1, 'reference_uncertainty': 0}), [0, 1, False, 1, 0])
check('fixture 6', solve({'reference': -1025, 'week': 1023, 'tick': 2, 'radius': 1, 'reference_uncertainty': 0}), [-1025, -102498, False, 0, -2])
check('fixture 7', solve({'reference': 100, 'week': 100, 'tick': 99, 'radius': 0, 'reference_uncertainty': 0}), [100, 10099, False, 0, 0])
check('fixture 8', solve({'reference': 100, 'week': 100, 'tick': 100, 'radius': 1, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 9', solve({'reference': 1024, 'week': 1024, 'tick': 0, 'radius': 1024, 'reference_uncertainty': 0}), [None, None, False, 0, None])
check('fixture 10', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 99, 'reference_uncertainty': 0}), [None, None, False, 100, None])
check('fixture 11', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 100, 'reference_uncertainty': 0}), [200, 20001, False, 100, 0])
check('fixture 12', solve({'reference': 3072, 'week': 1, 'tick': 2, 'radius': 10, 'reference_uncertainty': 0}), [3073, 307302, False, 1, 3])
check('fixture 13', solve({'reference': -513, 'week': 1023, 'tick': 0, 'radius': 512, 'reference_uncertainty': 0}), [None, None, True, 512, None])
check('fixture 14', solve({'reference': 5120000, 'week': 0, 'tick': 0, 'radius': 1, 'reference_uncertainty': 0}), [5120000, 512000000, False, 0, 5000])
check('fixture 15', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 411}), [200, 20001, False, 100, 0])
check('fixture 16', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 412}), [None, None, True, 100, None])
check('fixture 17', solve({'reference': 100, 'week': 200, 'tick': 1, 'radius': 600, 'reference_uncertainty': 500}), [None, None, True, 100, None])
variant = [({'reference': 1023, 'week': 0, 'tick': 2, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102402, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 3, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102403, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 4, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102404, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 5, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102405, False, 1, 1]), ({'reference': 1023, 'week': 0, 'tick': 6, 'radius': 2, 'reference_uncertainty': 0}, [1024, 102406, False, 1, 1])]
check("variant capture", solve(variant[N-1][0]), variant[N-1][1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[1024, 102401, False, 1, 1][1024, 102401, False, 1, 1]Passed
fixture 2[1023, 102302, False, 1, 0][1023, 102302, False, 1, 0]Passed
fixture 3[None, None, True, 512, None][None, None, True, 512, None]Passed
fixture 4[None, None, True, 512, None][None, None, True, 512, None]Passed
fixture 5[0, 1, False, 1, 0][0, 1, False, 1, 0]Passed
fixture 6[-1025, -102498, False, 0, -2][-1025, -102498, False, 0, -2]Passed
fixture 7[100, 10099, False, 0, 0][100, 10099, False, 0, 0]Passed
fixture 8[None, None, False, 0, None][None, None, False, 0, None]Passed
fixture 9[None, None, False, 0, None][None, None, False, 0, None]Passed
fixture 10[None, None, False, 100, None][None, None, False, 100, None]Passed
fixture 11[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 12[3073, 307302, False, 1, 3][3073, 307302, False, 1, 3]Passed
fixture 13[None, None, True, 512, None][None, None, True, 512, None]Passed
fixture 14[5120000, 512000000, False, 0, 5000][5120000, 512000000, False, 0, 5000]Passed
fixture 15[200, 20001, False, 100, 0][200, 20001, False, 100, 0]Passed
fixture 16[None, None, True, 100, None][None, None, True, 100, None]Passed
fixture 17[None, None, True, 100, None][None, None, True, 100, None]Passed
variant capture[1024, 102402, False, 1, 1][1024, 102402, False, 1, 1]Passed

SHA-256 / e852cdb04c78fb5ac7be83d5d2028d4a79be87046978a924b1bd4267e9d1a089

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:39:59.645147+00:00.

Case digest / cd5b9c1980ef7b0d181c97819b85dc07b38eedd7b590b19f42cfbe8f41dce5aa