FAILURE MAP
← Case archive

FA-18296 / Time representation / Open access

Atomic-to-civil conversion reverses declared offset or freezes initial table · case 01

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

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

ROOT CAUSE

Atomic-to-civil conversion reverses declared offset or freezes initial table.

VERIFIED REPAIR

Preserve the declared coordinate and state contract at label: label = r['atomic'] - active_offset.

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

Case contract

A stipulated offset table has initial atomic-minus-civil offset and a single step effective at atomic transition T. Translate atomic to civil label using active offset, retaining a fold tag for repeated labels on positive steps. Report label, offset, previous-label delta, discontinuity direction, repeated-label window membership and invertible pair. Offsets need not correspond to any real-world table.

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):
    active_offset = r['new'] if r['atomic'] >= r['transition'] else r['old']
    label = r['atomic'] + active_offset
    previous_offset = r['new'] if r['atomic'] - 1 >= r['transition'] else r['old']
    previous_label = r['atomic'] - 1 - previous_offset
    step = r['new'] - r['old']
    label_delta = label - previous_label
    fold = step > 0 and r['transition'] <= r['atomic'] < r['transition'] + step
    gap = step < 0 and r['atomic'] == r['transition']
    direction = (step > 0) - (step < 0)
    reconstructed = label + active_offset
    return [label,active_offset,label_delta,fold,gap,direction,reconstructed,[label,int(fold)]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 10, 1, False, False, 1, 99, [89, 0]])
check('fixture 2', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 11, 0, True, False, 1, 100, [89, 1]])
check('fixture 3', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [90, 11, 1, False, False, 1, 101, [90, 0]])
check('fixture 4', solve({'atomic': 110, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [99, 11, 1, False, False, 1, 110, [99, 0]])
check('fixture 5', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [91, 9, 2, False, True, -1, 100, [91, 0]])
check('fixture 6', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [89, 10, 1, False, False, -1, 99, [89, 0]])
check('fixture 7', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [92, 9, 1, False, False, -1, 101, [92, 0]])
check('fixture 8', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 10, 'probe': 0}), [90, 10, 1, False, False, 0, 100, [90, 0]])
check('fixture 9', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [88, 13, 1, True, False, 1, 101, [88, 1]])
check('fixture 10', solve({'atomic': 103, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [90, 13, 1, False, False, 1, 103, [90, 0]])
check('fixture 11', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [87, 13, -2, True, False, 1, 100, [87, 1]])
variant = [({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [89, 11, 0, True, False, 1, 100, [89, 1]]), ({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [90, 11, 1, False, False, 1, 101, [90, 0]]), ({'atomic': 102, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [91, 11, 1, False, False, 1, 102, [91, 0]]), ({'atomic': 103, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [92, 11, 1, False, False, 1, 103, [92, 0]]), ({'atomic': 104, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [93, 11, 1, False, False, 1, 104, [93, 0]])]
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, 10, 21, False, False, 1, 119, [109, 0]][89, 10, 1, False, False, 1, 99, [89, 0]]Failed
fixture 2[111, 11, 22, True, False, 1, 122, [111, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed
fixture 3[112, 11, 23, False, False, 1, 123, [112, 0]][90, 11, 1, False, False, 1, 101, [90, 0]]Failed
fixture 4[121, 11, 23, False, False, 1, 132, [121, 0]][99, 11, 1, False, False, 1, 110, [99, 0]]Failed
fixture 5[109, 9, 20, False, True, -1, 118, [109, 0]][91, 9, 2, False, True, -1, 100, [91, 0]]Failed
fixture 6[109, 10, 21, False, False, -1, 119, [109, 0]][89, 10, 1, False, False, -1, 99, [89, 0]]Failed
fixture 7[110, 9, 19, False, False, -1, 119, [110, 0]][92, 9, 1, False, False, -1, 101, [92, 0]]Failed
fixture 8[110, 10, 21, False, False, 0, 120, [110, 0]][90, 10, 1, False, False, 0, 100, [90, 0]]Failed
fixture 9[114, 13, 27, True, False, 1, 127, [114, 1]][88, 13, 1, True, False, 1, 101, [88, 1]]Failed
fixture 10[116, 13, 27, False, False, 1, 129, [116, 0]][90, 13, 1, False, False, 1, 103, [90, 0]]Failed
fixture 11[113, 13, 24, True, False, 1, 126, [113, 1]][87, 13, -2, True, False, 1, 100, [87, 1]]Failed
variant capture[111, 11, 22, True, False, 1, 122, [111, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed

SHA-256 / 7c1014a76c95eafc773faf608532776ec8c98f815fe8400c1a434878725e09af

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):
    active_offset = r['new'] if r['atomic'] >= r['transition'] else r['old']
    label = r['atomic'] - r['old']
    previous_offset = r['new'] if r['atomic'] - 1 >= r['transition'] else r['old']
    previous_label = r['atomic'] - 1 - previous_offset
    step = r['new'] - r['old']
    label_delta = label - previous_label
    fold = step > 0 and r['transition'] <= r['atomic'] < r['transition'] + step
    gap = step < 0 and r['atomic'] == r['transition']
    direction = (step > 0) - (step < 0)
    reconstructed = label + active_offset
    return [label,active_offset,label_delta,fold,gap,direction,reconstructed,[label,int(fold)]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 10, 1, False, False, 1, 99, [89, 0]])
check('fixture 2', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 11, 0, True, False, 1, 100, [89, 1]])
check('fixture 3', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [90, 11, 1, False, False, 1, 101, [90, 0]])
check('fixture 4', solve({'atomic': 110, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [99, 11, 1, False, False, 1, 110, [99, 0]])
check('fixture 5', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [91, 9, 2, False, True, -1, 100, [91, 0]])
check('fixture 6', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [89, 10, 1, False, False, -1, 99, [89, 0]])
check('fixture 7', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [92, 9, 1, False, False, -1, 101, [92, 0]])
check('fixture 8', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 10, 'probe': 0}), [90, 10, 1, False, False, 0, 100, [90, 0]])
check('fixture 9', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [88, 13, 1, True, False, 1, 101, [88, 1]])
check('fixture 10', solve({'atomic': 103, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [90, 13, 1, False, False, 1, 103, [90, 0]])
check('fixture 11', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [87, 13, -2, True, False, 1, 100, [87, 1]])
variant = [({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [89, 11, 0, True, False, 1, 100, [89, 1]]), ({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [90, 11, 1, False, False, 1, 101, [90, 0]]), ({'atomic': 102, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [91, 11, 1, False, False, 1, 102, [91, 0]]), ({'atomic': 103, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [92, 11, 1, False, False, 1, 103, [92, 0]]), ({'atomic': 104, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [93, 11, 1, False, False, 1, 104, [93, 0]])]
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[89, 10, 1, False, False, 1, 99, [89, 0]][89, 10, 1, False, False, 1, 99, [89, 0]]Passed
fixture 2[90, 11, 1, True, False, 1, 101, [90, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed
fixture 3[91, 11, 2, False, False, 1, 102, [91, 0]][90, 11, 1, False, False, 1, 101, [90, 0]]Failed
fixture 4[100, 11, 2, False, False, 1, 111, [100, 0]][99, 11, 1, False, False, 1, 110, [99, 0]]Failed
fixture 5[90, 9, 1, False, True, -1, 99, [90, 0]][91, 9, 2, False, True, -1, 100, [91, 0]]Failed
fixture 6[89, 10, 1, False, False, -1, 99, [89, 0]][89, 10, 1, False, False, -1, 99, [89, 0]]Passed
fixture 7[91, 9, 0, False, False, -1, 100, [91, 0]][92, 9, 1, False, False, -1, 101, [92, 0]]Failed
fixture 8[90, 10, 1, False, False, 0, 100, [90, 0]][90, 10, 1, False, False, 0, 100, [90, 0]]Passed
fixture 9[91, 13, 4, True, False, 1, 104, [91, 1]][88, 13, 1, True, False, 1, 101, [88, 1]]Failed
fixture 10[93, 13, 4, False, False, 1, 106, [93, 0]][90, 13, 1, False, False, 1, 103, [90, 0]]Failed
fixture 11[90, 13, 1, True, False, 1, 103, [90, 1]][87, 13, -2, True, False, 1, 100, [87, 1]]Failed
variant capture[90, 11, 1, True, False, 1, 101, [90, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed

SHA-256 / d0cc5227a1e968637f14b1c250700914c23075661f788309c096dd3821fb0df5

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):
    active_offset = r['new'] if r['atomic'] >= r['transition'] else r['old']
    label = r['atomic'] - active_offset
    previous_offset = r['new'] if r['atomic'] - 1 >= r['transition'] else r['old']
    previous_label = r['atomic'] - 1 - previous_offset
    step = r['new'] - r['old']
    label_delta = label - previous_label
    fold = step > 0 and r['transition'] <= r['atomic'] < r['transition'] + step
    gap = step < 0 and r['atomic'] == r['transition']
    direction = (step > 0) - (step < 0)
    reconstructed = label + active_offset
    return [label,active_offset,label_delta,fold,gap,direction,reconstructed,[label,int(fold)]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 10, 1, False, False, 1, 99, [89, 0]])
check('fixture 2', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [89, 11, 0, True, False, 1, 100, [89, 1]])
check('fixture 3', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [90, 11, 1, False, False, 1, 101, [90, 0]])
check('fixture 4', solve({'atomic': 110, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}), [99, 11, 1, False, False, 1, 110, [99, 0]])
check('fixture 5', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [91, 9, 2, False, True, -1, 100, [91, 0]])
check('fixture 6', solve({'atomic': 99, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [89, 10, 1, False, False, -1, 99, [89, 0]])
check('fixture 7', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 9, 'probe': 0}), [92, 9, 1, False, False, -1, 101, [92, 0]])
check('fixture 8', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 10, 'probe': 0}), [90, 10, 1, False, False, 0, 100, [90, 0]])
check('fixture 9', solve({'atomic': 101, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [88, 13, 1, True, False, 1, 101, [88, 1]])
check('fixture 10', solve({'atomic': 103, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [90, 13, 1, False, False, 1, 103, [90, 0]])
check('fixture 11', solve({'atomic': 100, 'transition': 100, 'old': 10, 'new': 13, 'probe': 0}), [87, 13, -2, True, False, 1, 100, [87, 1]])
variant = [({'atomic': 100, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [89, 11, 0, True, False, 1, 100, [89, 1]]), ({'atomic': 101, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [90, 11, 1, False, False, 1, 101, [90, 0]]), ({'atomic': 102, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [91, 11, 1, False, False, 1, 102, [91, 0]]), ({'atomic': 103, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [92, 11, 1, False, False, 1, 103, [92, 0]]), ({'atomic': 104, 'transition': 100, 'old': 10, 'new': 11, 'probe': 0}, [93, 11, 1, False, False, 1, 104, [93, 0]])]
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[89, 10, 1, False, False, 1, 99, [89, 0]][89, 10, 1, False, False, 1, 99, [89, 0]]Passed
fixture 2[89, 11, 0, True, False, 1, 100, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Passed
fixture 3[90, 11, 1, False, False, 1, 101, [90, 0]][90, 11, 1, False, False, 1, 101, [90, 0]]Passed
fixture 4[99, 11, 1, False, False, 1, 110, [99, 0]][99, 11, 1, False, False, 1, 110, [99, 0]]Passed
fixture 5[91, 9, 2, False, True, -1, 100, [91, 0]][91, 9, 2, False, True, -1, 100, [91, 0]]Passed
fixture 6[89, 10, 1, False, False, -1, 99, [89, 0]][89, 10, 1, False, False, -1, 99, [89, 0]]Passed
fixture 7[92, 9, 1, False, False, -1, 101, [92, 0]][92, 9, 1, False, False, -1, 101, [92, 0]]Passed
fixture 8[90, 10, 1, False, False, 0, 100, [90, 0]][90, 10, 1, False, False, 0, 100, [90, 0]]Passed
fixture 9[88, 13, 1, True, False, 1, 101, [88, 1]][88, 13, 1, True, False, 1, 101, [88, 1]]Passed
fixture 10[90, 13, 1, False, False, 1, 103, [90, 0]][90, 13, 1, False, False, 1, 103, [90, 0]]Passed
fixture 11[87, 13, -2, True, False, 1, 100, [87, 1]][87, 13, -2, True, False, 1, 100, [87, 1]]Passed
variant capture[89, 11, 0, True, False, 1, 100, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Passed

SHA-256 / 29ca9cfe5ee7828c3998badc541d9eb52987267f451bf00c7b3253fa0c61258c

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

Case digest / 47c5bcbe8e77de80cd388c015a45f2f4b2f2d432006b09825e8bbd4246a056aa