FA-18821 / Time representation / Open access
Offset conversion emits untrusted timestamp or reverses declared timescale mapping · case 01
The decoded time state disagrees with the explicit regression oracle for shifted.
ROOT CAUSE
Offset conversion emits untrusted timestamp or reverses declared timescale mapping.
VERIFIED REPAIR
Preserve the declared coordinate and state contract at shifted: shifted = r['query'] + r['offset'] if status == 'ok' else None.
Unsuccessful approach: The partial correction still substitutes r['query'] - r['offset'] if status == 'ok' else None 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']
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', 157, 5, [50, 50]] | ['version', None, 5, [50, 50]] | Failed |
| fixture 4 | ['identity', 157, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Failed |
| fixture 5 | ['identity', 157, 5, [50, 50]] | ['identity', None, 5, [50, 50]] | Failed |
| fixture 6 | ['future', 157, 11, [50, 50]] | ['future', None, 11, [50, 50]] | Failed |
| fixture 7 | ['expired', 157, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Failed |
| fixture 8 | ['expired', 157, 0, [50, 50]] | ['expired', None, 0, [50, 50]] | Failed |
| fixture 9 | ['uncovered', 207, 5, None] | ['uncovered', None, 5, None] | Failed |
| fixture 10 | ['uncovered', 106, 5, None] | ['uncovered', None, 5, None] | Failed |
| 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 / 86bf91577fa260fb5a2c4c9e0887118aaac8a66a07c09645895f965bc02224d0
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 | ['ok', 93, 10, [0, 100]] | ['ok', 107, 10, [0, 100]] | Failed |
| fixture 2 | ['ok', 143, 5, [50, 50]] | ['ok', 157, 5, [50, 50]] | Failed |
| 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', 192, 5, [99, 1]] | ['ok', 206, 5, [99, 1]] | Failed |
| fixture 12 | ['ok', 93, 5, [0, 100]] | ['ok', 107, 5, [0, 100]] | Failed |
| variant capture | ['ok', 94, 10, [1, 99]] | ['ok', 108, 10, [1, 99]] | Failed |
SHA-256 / 2889464d7e88627c1fb2af7ba81b9790d4206fa88a2ff9835eca8149d2b3d2b8
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.571253+00:00.
Case digest / a955c0ddb3e0f100e907ef48512ffd4f84f90f07640b4530726d9f7cec693498