FA-18811 / Time representation / Open access
Clock-table coverage assigns effective interval boundaries incorrectly · case 01
The decoded time state disagrees with the explicit regression oracle for covered.
ROOT CAUSE
Clock-table coverage assigns effective interval boundaries incorrectly.
VERIFIED REPAIR
Preserve the declared coordinate and state contract at covered: covered = r['start'] <= r['query'] < r['end'].
Unsuccessful approach: The partial correction still substitutes r['start'] < r['query'] < r['end'] at the same fault site.
Case contract
A timescale offset certificate declares coverage [start,end), publication instant, expiry instant, version and source identity. A query may use offset only inside coverage with a currently valid certificate and minimum accepted version. Query time and validation wall time are independent. Return status precedence identity/version/publication/expiry/coverage, admitted shifted coordinate, remaining validity and coverage margin.
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):
identity = r['source'] == r['trusted_source']
version = r['version'] >= r['minimum_version']
published = r['now'] >= r['published']
live = r['now'] < r['expires']
covered = r['start'] <= r['query'] <= r['end']
status = 'identity' if not identity else ('version' if not version else ('future' if not published else ('expired' if not live else ('uncovered' if not covered else 'ok'))))
shifted = r['query'] + r['offset'] if status == 'ok' else None
remaining = max(0,r['expires'] - r['now'])
left_margin = r['query'] - r['start']
right_margin = r['end'] - r['query']
return [status,shifted,remaining,[left_margin,right_margin] if covered else None]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 10, [0, 100]])
check('fixture 2', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 3, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['ok', 157, 5, [50, 50]])
check('fixture 3', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 1, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['version', None, 5, [50, 50]])
check('fixture 4', solve({'source': 'clock2', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 5', solve({'source': 'other', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 6', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 9, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['future', None, 11, [50, 50]])
check('fixture 7', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 20, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 8', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 21, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 9', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 200, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 10', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 99, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 11', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 199, 'offset': 7}), ['ok', 206, 5, [99, 1]])
check('fixture 12', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 5, [0, 100]])
variant = [({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 101, 'offset': 7}, ['ok', 108, 10, [1, 99]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 102, 'offset': 7}, ['ok', 109, 10, [2, 98]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 103, 'offset': 7}, ['ok', 110, 10, [3, 97]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 104, 'offset': 7}, ['ok', 111, 10, [4, 96]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 105, 'offset': 7}, ['ok', 112, 10, [5, 95]])]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['ok', 107, 10, [0, 100]] | ['ok', 107, 10, [0, 100]] | Passed |
| fixture 2 | ['ok', 157, 5, [50, 50]] | ['ok', 157, 5, [50, 50]] | Passed |
| fixture 3 | ['version', None, 5, [50, 50]] | ['version', None, 5, [50, 50]] | Passed |
| fixture 4 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 5 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 6 | ['future', None, 11, [50, 50]] | ['future', None, 11, [50, 50]] | Passed |
| fixture 7 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 8 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 9 | ['ok', 207, 5, [100, 0]] | ['uncovered', None, 5, None] | Failed |
| fixture 10 | ['uncovered', None, 5, None] | ['uncovered', None, 5, None] | Passed |
| fixture 11 | ['ok', 206, 5, [99, 1]] | ['ok', 206, 5, [99, 1]] | Passed |
| fixture 12 | ['ok', 107, 5, [0, 100]] | ['ok', 107, 5, [0, 100]] | Passed |
| variant capture | ['ok', 108, 10, [1, 99]] | ['ok', 108, 10, [1, 99]] | Passed |
SHA-256 / 9ef710f7001b1938f2240dcd273c6d625365620518cde4c35851d9441b4b4aa7
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):
identity = r['source'] == r['trusted_source']
version = r['version'] >= r['minimum_version']
published = r['now'] >= r['published']
live = r['now'] < r['expires']
covered = r['start'] < r['query'] < r['end']
status = 'identity' if not identity else ('version' if not version else ('future' if not published else ('expired' if not live else ('uncovered' if not covered else 'ok'))))
shifted = r['query'] + r['offset'] if status == 'ok' else None
remaining = max(0,r['expires'] - r['now'])
left_margin = r['query'] - r['start']
right_margin = r['end'] - r['query']
return [status,shifted,remaining,[left_margin,right_margin] if covered else None]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 10, [0, 100]])
check('fixture 2', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 3, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['ok', 157, 5, [50, 50]])
check('fixture 3', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 1, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['version', None, 5, [50, 50]])
check('fixture 4', solve({'source': 'clock2', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 5', solve({'source': 'other', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 6', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 9, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['future', None, 11, [50, 50]])
check('fixture 7', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 20, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 8', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 21, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 9', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 200, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 10', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 99, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 11', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 199, 'offset': 7}), ['ok', 206, 5, [99, 1]])
check('fixture 12', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 5, [0, 100]])
variant = [({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 101, 'offset': 7}, ['ok', 108, 10, [1, 99]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 102, 'offset': 7}, ['ok', 109, 10, [2, 98]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 103, 'offset': 7}, ['ok', 110, 10, [3, 97]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 104, 'offset': 7}, ['ok', 111, 10, [4, 96]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 105, 'offset': 7}, ['ok', 112, 10, [5, 95]])]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['uncovered', None, 10, None] | ['ok', 107, 10, [0, 100]] | Failed |
| fixture 2 | ['ok', 157, 5, [50, 50]] | ['ok', 157, 5, [50, 50]] | Passed |
| fixture 3 | ['version', None, 5, [50, 50]] | ['version', None, 5, [50, 50]] | Passed |
| fixture 4 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 5 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 6 | ['future', None, 11, [50, 50]] | ['future', None, 11, [50, 50]] | Passed |
| fixture 7 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 8 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 9 | ['uncovered', None, 5, None] | ['uncovered', None, 5, None] | Passed |
| fixture 10 | ['uncovered', None, 5, None] | ['uncovered', None, 5, None] | Passed |
| fixture 11 | ['ok', 206, 5, [99, 1]] | ['ok', 206, 5, [99, 1]] | Passed |
| fixture 12 | ['uncovered', None, 5, None] | ['ok', 107, 5, [0, 100]] | Failed |
| variant capture | ['ok', 108, 10, [1, 99]] | ['ok', 108, 10, [1, 99]] | Passed |
SHA-256 / 4b9e3c910358becc7661a098ffe0d22863c6670966bc17806de5c61ffc7fdb4c
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):
identity = r['source'] == r['trusted_source']
version = r['version'] >= r['minimum_version']
published = r['now'] >= r['published']
live = r['now'] < r['expires']
covered = r['start'] <= r['query'] < r['end']
status = 'identity' if not identity else ('version' if not version else ('future' if not published else ('expired' if not live else ('uncovered' if not covered else 'ok'))))
shifted = r['query'] + r['offset'] if status == 'ok' else None
remaining = max(0,r['expires'] - r['now'])
left_margin = r['query'] - r['start']
right_margin = r['end'] - r['query']
return [status,shifted,remaining,[left_margin,right_margin] if covered else None]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 10, [0, 100]])
check('fixture 2', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 3, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['ok', 157, 5, [50, 50]])
check('fixture 3', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 1, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['version', None, 5, [50, 50]])
check('fixture 4', solve({'source': 'clock2', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 5', solve({'source': 'other', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['identity', None, 5, [50, 50]])
check('fixture 6', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 9, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['future', None, 11, [50, 50]])
check('fixture 7', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 20, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 8', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 21, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 150, 'offset': 7}), ['expired', None, 0, [50, 50]])
check('fixture 9', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 200, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 10', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 99, 'offset': 7}), ['uncovered', None, 5, None])
check('fixture 11', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 199, 'offset': 7}), ['ok', 206, 5, [99, 1]])
check('fixture 12', solve({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 15, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 100, 'offset': 7}), ['ok', 107, 5, [0, 100]])
variant = [({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 101, 'offset': 7}, ['ok', 108, 10, [1, 99]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 102, 'offset': 7}, ['ok', 109, 10, [2, 98]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 103, 'offset': 7}, ['ok', 110, 10, [3, 97]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 104, 'offset': 7}, ['ok', 111, 10, [4, 96]]), ({'source': 'clock', 'trusted_source': 'clock', 'version': 2, 'minimum_version': 2, 'now': 10, 'published': 10, 'expires': 20, 'start': 100, 'end': 200, 'query': 105, 'offset': 7}, ['ok', 112, 10, [5, 95]])]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['ok', 107, 10, [0, 100]] | ['ok', 107, 10, [0, 100]] | Passed |
| fixture 2 | ['ok', 157, 5, [50, 50]] | ['ok', 157, 5, [50, 50]] | Passed |
| fixture 3 | ['version', None, 5, [50, 50]] | ['version', None, 5, [50, 50]] | Passed |
| fixture 4 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 5 | ['identity', None, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Passed |
| fixture 6 | ['future', None, 11, [50, 50]] | ['future', None, 11, [50, 50]] | Passed |
| fixture 7 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 8 | ['expired', None, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Passed |
| fixture 9 | ['uncovered', None, 5, None] | ['uncovered', None, 5, None] | Passed |
| fixture 10 | ['uncovered', None, 5, None] | ['uncovered', None, 5, None] | Passed |
| fixture 11 | ['ok', 206, 5, [99, 1]] | ['ok', 206, 5, [99, 1]] | Passed |
| fixture 12 | ['ok', 107, 5, [0, 100]] | ['ok', 107, 5, [0, 100]] | Passed |
| variant capture | ['ok', 108, 10, [1, 99]] | ['ok', 108, 10, [1, 99]] | Passed |
SHA-256 / 7da6b4272da020fb83d3ca3a9b5267a88c7fdde9769ed1fc6c747161c29d8d1a
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:40:01.374955+00:00.
Case digest / 4a9062467154e83bff98ce1244dc2f9e8cb5805e3795ddb8560f0f7f241ace62