FAILURE MAP
← Case archive

FA-17701 / Time representation / Open access

Gap displacement uses offset sum or reversed offset change · case 01

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

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

ROOT CAUSE

Gap displacement uses offset sum or reversed offset change.

VERIFIED REPAIR

Preserve the declared coordinate and state contract at width: width = r['new'] - r['old'].

Unsuccessful approach: The partial correction still substitutes r['old'] - r['new'] at the same fault site.

Case contract

A stipulated forward offset transition at UTC T creates local gap [T+old,T+new). Reject returns None, forward adds gap width and backward subtracts it, preserving position in the gap. Return resolved local coordinate, UTC coordinate, shift direction and successful-change flag. Outside-gap labels are unchanged.

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):
    start = r['transition'] + r['old']
    end = r['transition'] + r['new']
    width = r['new'] + r['old']
    in_gap = start <= r['local'] < end
    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0
    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift
    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])
    utc = None if resolved is None else resolved - offset
    direction = (shift > 0) - (shift < 0)
    changed = resolved is not None and resolved != r['local']
    return [resolved,utc,direction,changed]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])
check('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])
check('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])
check('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])
check('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])
check('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])
check('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])
check('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])
variant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]
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[109, 99, 0, False][109, 99, 0, False]Passed
fixture 2[150, 120, 1, True][130, 100, 1, True]Failed
fixture 3[70, 60, -1, True][90, 80, -1, True]Failed
fixture 4[None, None, 0, False][None, None, 0, False]Passed
fixture 5[89, 79, -1, True][109, 99, -1, True]Failed
fixture 6[130, 100, 0, False][130, 100, 0, False]Passed
fixture 7[160, 130, 1, True][140, 110, 1, True]Failed
fixture 8[None, None, 0, False][None, None, 0, False]Passed
fixture 9[-20, -30, 0, False][-20, -30, 0, False]Passed
fixture 10[140, 110, 0, False][140, 110, 0, False]Passed
variant capture[150, 120, 1, True][130, 100, 1, True]Failed

SHA-256 / fa81f38284e8f9dadce6d7c8d2a8f1cc85db002933d3e74a43cc401298fbe064

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):
    start = r['transition'] + r['old']
    end = r['transition'] + r['new']
    width = r['old'] - r['new']
    in_gap = start <= r['local'] < end
    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0
    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift
    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])
    utc = None if resolved is None else resolved - offset
    direction = (shift > 0) - (shift < 0)
    changed = resolved is not None and resolved != r['local']
    return [resolved,utc,direction,changed]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])
check('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])
check('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])
check('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])
check('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])
check('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])
check('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])
check('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])
variant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]
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[109, 99, 0, False][109, 99, 0, False]Passed
fixture 2[90, 80, -1, True][130, 100, 1, True]Failed
fixture 3[130, 100, 1, True][90, 80, -1, True]Failed
fixture 4[None, None, 0, False][None, None, 0, False]Passed
fixture 5[149, 119, 1, True][109, 99, -1, True]Failed
fixture 6[130, 100, 0, False][130, 100, 0, False]Passed
fixture 7[100, 90, -1, True][140, 110, 1, True]Failed
fixture 8[None, None, 0, False][None, None, 0, False]Passed
fixture 9[-20, -30, 0, False][-20, -30, 0, False]Passed
fixture 10[140, 110, 0, False][140, 110, 0, False]Passed
variant capture[90, 80, -1, True][130, 100, 1, True]Failed

SHA-256 / d62d8b34339db16947e476f17ab047b0149a6a4f54a9517710c7b8cf3dcf88c7

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):
    start = r['transition'] + r['old']
    end = r['transition'] + r['new']
    width = r['new'] - r['old']
    in_gap = start <= r['local'] < end
    shift = (width if r['policy'] == 'forward' else -width) if in_gap and r['policy'] != 'reject' else 0
    resolved = None if in_gap and r['policy'] == 'reject' else r['local'] + shift
    offset = None if resolved is None else (r['old'] if resolved < start else r['new'])
    utc = None if resolved is None else resolved - offset
    direction = (shift > 0) - (shift < 0)
    changed = resolved is not None and resolved != r['local']
    return [resolved,utc,direction,changed]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'local': 109, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [109, 99, 0, False])
check('fixture 2', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [130, 100, 1, True])
check('fixture 3', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [90, 80, -1, True])
check('fixture 4', solve({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 5', solve({'local': 129, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [109, 99, -1, True])
check('fixture 6', solve({'local': 130, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [130, 100, 0, False])
check('fixture 7', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 1, True])
check('fixture 8', solve({'local': 120, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'reject'}), [None, None, 0, False])
check('fixture 9', solve({'local': -20, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'backward'}), [-20, -30, 0, False])
check('fixture 10', solve({'local': 140, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}), [140, 110, 0, False])
variant = [({'local': 110, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [130, 100, 1, True]), ({'local': 111, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [131, 101, 1, True]), ({'local': 112, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [132, 102, 1, True]), ({'local': 113, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [133, 103, 1, True]), ({'local': 114, 'old': 10, 'new': 30, 'transition': 100, 'policy': 'forward'}, [134, 104, 1, True])]
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[109, 99, 0, False][109, 99, 0, False]Passed
fixture 2[130, 100, 1, True][130, 100, 1, True]Passed
fixture 3[90, 80, -1, True][90, 80, -1, True]Passed
fixture 4[None, None, 0, False][None, None, 0, False]Passed
fixture 5[109, 99, -1, True][109, 99, -1, True]Passed
fixture 6[130, 100, 0, False][130, 100, 0, False]Passed
fixture 7[140, 110, 1, True][140, 110, 1, True]Passed
fixture 8[None, None, 0, False][None, None, 0, False]Passed
fixture 9[-20, -30, 0, False][-20, -30, 0, False]Passed
fixture 10[140, 110, 0, False][140, 110, 0, False]Passed
variant capture[130, 100, 1, True][130, 100, 1, True]Passed

SHA-256 / d0ee2a9fbf387a1d8347ba1f8e5292e596af918caa4999da3261fb5675877d12

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:49.544792+00:00.

Case digest / eea60728013cb98af73179c6d63a0c9fe4c3b742ec311c230822b27ef4562e2a