FAILURE MAP
← Case archive

FA-18001 / Time representation / Open access

Exchange delay normalization hides physically impossible negative propagation · case 01

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

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

ROOT CAUSE

Exchange delay normalization hides physically impossible negative propagation.

VERIFIED REPAIR

Preserve the declared coordinate and state contract at round_trip: round_trip = client_span - server_span.

Unsuccessful approach: The partial correction still substitutes abs(client_span - server_span) at the same fault site.

Case contract

Four timestamps are ordered by message path: client send c0, server receive s1, server send s2, client receive c3. Constant offset server-minus-client is estimated by symmetric path assumption. Preserve exact half-tick fractions; report network round trip, offset, projected server now, local send/receive server equivalents, one-way path estimate and delay bounds from nonnegative path delays.

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):
    client_span = r['c3'] - r['c0']
    server_span = r['s2'] - r['s1']
    round_trip = max(0,client_span - server_span)
    offset_low = r['s2'] - r['c3']
    offset_high = r['s1'] - r['c0']
    offset = Fraction(offset_low + offset_high,2)
    projected = r['now'] + offset
    one_way = Fraction(round_trip,2)
    valid = round_trip >= 0
    uncertainty = Fraction(offset_high - offset_low,2)
    return [valid,str(offset),str(projected),str(one_way),[offset_low,offset_high],str(uncertainty),str(r['c0']+offset),str(r['c3']+offset)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 10}), [True, '5', '15', '2', [3, 7], '2', '5', '11'])
check('fixture 2', solve({'c0': 10, 's1': 9, 's2': 12, 'c3': 18, 'now': 20}), [True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'])
check('fixture 3', solve({'c0': 0, 's1': 5, 's2': 5, 'c3': 0, 'now': 2}), [True, '5', '7', '0', [5, 5], '0', '5', '5'])
check('fixture 4', solve({'c0': 10, 's1': 10, 's2': 20, 'c3': 15, 'now': 30}), [False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2'])
check('fixture 5', solve({'c0': 20, 's1': 10, 's2': 10, 'c3': 10, 'now': 30}), [False, '-5', '25', '-5', [0, -10], '-5', '15', '5'])
check('fixture 6', solve({'c0': 0, 's1': 1, 's2': 2, 'c3': 4, 'now': 5}), [True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'])
check('fixture 7', solve({'c0': -10, 's1': -5, 's2': -3, 'c3': -2, 'now': 0}), [True, '2', '2', '3', [-1, 5], '3', '-8', '0'])
check('fixture 8', solve({'c0': 100, 's1': 150, 's2': 170, 'c3': 140, 'now': 200}), [True, '40', '240', '10', [30, 50], '10', '140', '180'])
check('fixture 9', solve({'c0': 0, 's1': -5, 's2': -3, 'c3': 5, 'now': 10}), [True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'])
check('fixture 10', solve({'c0': 2, 's1': 5, 's2': 5, 'c3': 8, 'now': 10}), [True, '0', '10', '3', [-3, 3], '3', '2', '8'])
variant = [({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 11}, [True, '5', '16', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 12}, [True, '5', '17', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 13}, [True, '5', '18', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 14}, [True, '5', '19', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 15}, [True, '5', '20', '2', [3, 7], '2', '5', '11'])]
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[True, '5', '15', '2', [3, 7], '2', '5', '11'][True, '5', '15', '2', [3, 7], '2', '5', '11']Passed
fixture 2[True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'][True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2']Passed
fixture 3[True, '5', '7', '0', [5, 5], '0', '5', '5'][True, '5', '7', '0', [5, 5], '0', '5', '5']Passed
fixture 4[True, '5/2', '65/2', '0', [5, 0], '-5/2', '25/2', '35/2'][False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2']Failed
fixture 5[True, '-5', '25', '0', [0, -10], '-5', '15', '5'][False, '-5', '25', '-5', [0, -10], '-5', '15', '5']Failed
fixture 6[True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'][True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2']Passed
fixture 7[True, '2', '2', '3', [-1, 5], '3', '-8', '0'][True, '2', '2', '3', [-1, 5], '3', '-8', '0']Passed
fixture 8[True, '40', '240', '10', [30, 50], '10', '140', '180'][True, '40', '240', '10', [30, 50], '10', '140', '180']Passed
fixture 9[True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'][True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2']Passed
fixture 10[True, '0', '10', '3', [-3, 3], '3', '2', '8'][True, '0', '10', '3', [-3, 3], '3', '2', '8']Passed
variant capture[True, '5', '16', '2', [3, 7], '2', '5', '11'][True, '5', '16', '2', [3, 7], '2', '5', '11']Passed

SHA-256 / 479c23219049f0450bd7fa612a301547c26f482e0c451d9f0c09e892812e5481

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):
    client_span = r['c3'] - r['c0']
    server_span = r['s2'] - r['s1']
    round_trip = abs(client_span - server_span)
    offset_low = r['s2'] - r['c3']
    offset_high = r['s1'] - r['c0']
    offset = Fraction(offset_low + offset_high,2)
    projected = r['now'] + offset
    one_way = Fraction(round_trip,2)
    valid = round_trip >= 0
    uncertainty = Fraction(offset_high - offset_low,2)
    return [valid,str(offset),str(projected),str(one_way),[offset_low,offset_high],str(uncertainty),str(r['c0']+offset),str(r['c3']+offset)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 10}), [True, '5', '15', '2', [3, 7], '2', '5', '11'])
check('fixture 2', solve({'c0': 10, 's1': 9, 's2': 12, 'c3': 18, 'now': 20}), [True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'])
check('fixture 3', solve({'c0': 0, 's1': 5, 's2': 5, 'c3': 0, 'now': 2}), [True, '5', '7', '0', [5, 5], '0', '5', '5'])
check('fixture 4', solve({'c0': 10, 's1': 10, 's2': 20, 'c3': 15, 'now': 30}), [False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2'])
check('fixture 5', solve({'c0': 20, 's1': 10, 's2': 10, 'c3': 10, 'now': 30}), [False, '-5', '25', '-5', [0, -10], '-5', '15', '5'])
check('fixture 6', solve({'c0': 0, 's1': 1, 's2': 2, 'c3': 4, 'now': 5}), [True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'])
check('fixture 7', solve({'c0': -10, 's1': -5, 's2': -3, 'c3': -2, 'now': 0}), [True, '2', '2', '3', [-1, 5], '3', '-8', '0'])
check('fixture 8', solve({'c0': 100, 's1': 150, 's2': 170, 'c3': 140, 'now': 200}), [True, '40', '240', '10', [30, 50], '10', '140', '180'])
check('fixture 9', solve({'c0': 0, 's1': -5, 's2': -3, 'c3': 5, 'now': 10}), [True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'])
check('fixture 10', solve({'c0': 2, 's1': 5, 's2': 5, 'c3': 8, 'now': 10}), [True, '0', '10', '3', [-3, 3], '3', '2', '8'])
variant = [({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 11}, [True, '5', '16', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 12}, [True, '5', '17', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 13}, [True, '5', '18', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 14}, [True, '5', '19', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 15}, [True, '5', '20', '2', [3, 7], '2', '5', '11'])]
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[True, '5', '15', '2', [3, 7], '2', '5', '11'][True, '5', '15', '2', [3, 7], '2', '5', '11']Passed
fixture 2[True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'][True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2']Passed
fixture 3[True, '5', '7', '0', [5, 5], '0', '5', '5'][True, '5', '7', '0', [5, 5], '0', '5', '5']Passed
fixture 4[True, '5/2', '65/2', '5/2', [5, 0], '-5/2', '25/2', '35/2'][False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2']Failed
fixture 5[True, '-5', '25', '5', [0, -10], '-5', '15', '5'][False, '-5', '25', '-5', [0, -10], '-5', '15', '5']Failed
fixture 6[True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'][True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2']Passed
fixture 7[True, '2', '2', '3', [-1, 5], '3', '-8', '0'][True, '2', '2', '3', [-1, 5], '3', '-8', '0']Passed
fixture 8[True, '40', '240', '10', [30, 50], '10', '140', '180'][True, '40', '240', '10', [30, 50], '10', '140', '180']Passed
fixture 9[True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'][True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2']Passed
fixture 10[True, '0', '10', '3', [-3, 3], '3', '2', '8'][True, '0', '10', '3', [-3, 3], '3', '2', '8']Passed
variant capture[True, '5', '16', '2', [3, 7], '2', '5', '11'][True, '5', '16', '2', [3, 7], '2', '5', '11']Passed

SHA-256 / b350f8126083bc766555f4c916a7d3bec187415467145a652e086d1fab0e0f6a

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):
    client_span = r['c3'] - r['c0']
    server_span = r['s2'] - r['s1']
    round_trip = client_span - server_span
    offset_low = r['s2'] - r['c3']
    offset_high = r['s1'] - r['c0']
    offset = Fraction(offset_low + offset_high,2)
    projected = r['now'] + offset
    one_way = Fraction(round_trip,2)
    valid = round_trip >= 0
    uncertainty = Fraction(offset_high - offset_low,2)
    return [valid,str(offset),str(projected),str(one_way),[offset_low,offset_high],str(uncertainty),str(r['c0']+offset),str(r['c3']+offset)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 10}), [True, '5', '15', '2', [3, 7], '2', '5', '11'])
check('fixture 2', solve({'c0': 10, 's1': 9, 's2': 12, 'c3': 18, 'now': 20}), [True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'])
check('fixture 3', solve({'c0': 0, 's1': 5, 's2': 5, 'c3': 0, 'now': 2}), [True, '5', '7', '0', [5, 5], '0', '5', '5'])
check('fixture 4', solve({'c0': 10, 's1': 10, 's2': 20, 'c3': 15, 'now': 30}), [False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2'])
check('fixture 5', solve({'c0': 20, 's1': 10, 's2': 10, 'c3': 10, 'now': 30}), [False, '-5', '25', '-5', [0, -10], '-5', '15', '5'])
check('fixture 6', solve({'c0': 0, 's1': 1, 's2': 2, 'c3': 4, 'now': 5}), [True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'])
check('fixture 7', solve({'c0': -10, 's1': -5, 's2': -3, 'c3': -2, 'now': 0}), [True, '2', '2', '3', [-1, 5], '3', '-8', '0'])
check('fixture 8', solve({'c0': 100, 's1': 150, 's2': 170, 'c3': 140, 'now': 200}), [True, '40', '240', '10', [30, 50], '10', '140', '180'])
check('fixture 9', solve({'c0': 0, 's1': -5, 's2': -3, 'c3': 5, 'now': 10}), [True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'])
check('fixture 10', solve({'c0': 2, 's1': 5, 's2': 5, 'c3': 8, 'now': 10}), [True, '0', '10', '3', [-3, 3], '3', '2', '8'])
variant = [({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 11}, [True, '5', '16', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 12}, [True, '5', '17', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 13}, [True, '5', '18', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 14}, [True, '5', '19', '2', [3, 7], '2', '5', '11']), ({'c0': 0, 's1': 7, 's2': 9, 'c3': 6, 'now': 15}, [True, '5', '20', '2', [3, 7], '2', '5', '11'])]
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[True, '5', '15', '2', [3, 7], '2', '5', '11'][True, '5', '15', '2', [3, 7], '2', '5', '11']Passed
fixture 2[True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2'][True, '-7/2', '33/2', '5/2', [-6, -1], '5/2', '13/2', '29/2']Passed
fixture 3[True, '5', '7', '0', [5, 5], '0', '5', '5'][True, '5', '7', '0', [5, 5], '0', '5', '5']Passed
fixture 4[False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2'][False, '5/2', '65/2', '-5/2', [5, 0], '-5/2', '25/2', '35/2']Passed
fixture 5[False, '-5', '25', '-5', [0, -10], '-5', '15', '5'][False, '-5', '25', '-5', [0, -10], '-5', '15', '5']Passed
fixture 6[True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2'][True, '-1/2', '9/2', '3/2', [-2, 1], '3/2', '-1/2', '7/2']Passed
fixture 7[True, '2', '2', '3', [-1, 5], '3', '-8', '0'][True, '2', '2', '3', [-1, 5], '3', '-8', '0']Passed
fixture 8[True, '40', '240', '10', [30, 50], '10', '140', '180'][True, '40', '240', '10', [30, 50], '10', '140', '180']Passed
fixture 9[True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2'][True, '-13/2', '7/2', '3/2', [-8, -5], '3/2', '-13/2', '-3/2']Passed
fixture 10[True, '0', '10', '3', [-3, 3], '3', '2', '8'][True, '0', '10', '3', [-3, 3], '3', '2', '8']Passed
variant capture[True, '5', '16', '2', [3, 7], '2', '5', '11'][True, '5', '16', '2', [3, 7], '2', '5', '11']Passed

SHA-256 / 99a166f1a681d535cda721910b25cbc07889b501d8dc68785ba50f74a4403813

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

Case digest / 50db083bf378349c7d0bc1fee09efb8318968cd4dd8aaebc4bc388b4b4324544