FAILURE MAP
← Case archive

FA-18336 / Time representation / Open access

Tagged civil roundtrip discards active offset table branch · case 01

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

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

ROOT CAUSE

Tagged civil roundtrip discards active offset table branch.

VERIFIED REPAIR

Preserve the declared coordinate and state contract at reconstructed: reconstructed = label + active_offset.

Unsuccessful approach: The partial correction still substitutes label + 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
    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, 89, [89, 0]][89, 10, 1, False, False, 1, 99, [89, 0]]Failed
fixture 2[89, 11, 0, True, False, 1, 89, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed
fixture 3[90, 11, 1, False, False, 1, 90, [90, 0]][90, 11, 1, False, False, 1, 101, [90, 0]]Failed
fixture 4[99, 11, 1, False, False, 1, 99, [99, 0]][99, 11, 1, False, False, 1, 110, [99, 0]]Failed
fixture 5[91, 9, 2, False, True, -1, 91, [91, 0]][91, 9, 2, False, True, -1, 100, [91, 0]]Failed
fixture 6[89, 10, 1, False, False, -1, 89, [89, 0]][89, 10, 1, False, False, -1, 99, [89, 0]]Failed
fixture 7[92, 9, 1, False, False, -1, 92, [92, 0]][92, 9, 1, False, False, -1, 101, [92, 0]]Failed
fixture 8[90, 10, 1, False, False, 0, 90, [90, 0]][90, 10, 1, False, False, 0, 100, [90, 0]]Failed
fixture 9[88, 13, 1, True, False, 1, 88, [88, 1]][88, 13, 1, True, False, 1, 101, [88, 1]]Failed
fixture 10[90, 13, 1, False, False, 1, 90, [90, 0]][90, 13, 1, False, False, 1, 103, [90, 0]]Failed
fixture 11[87, 13, -2, True, False, 1, 87, [87, 1]][87, 13, -2, True, False, 1, 100, [87, 1]]Failed
variant capture[89, 11, 0, True, False, 1, 89, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed

SHA-256 / 760c3135a93b79fbc8ad37bcc3b555a5ac59c052d20704beb054a74f08cd30fb

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'] - 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 + r['old']
    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, 99, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed
fixture 3[90, 11, 1, False, False, 1, 100, [90, 0]][90, 11, 1, False, False, 1, 101, [90, 0]]Failed
fixture 4[99, 11, 1, False, False, 1, 109, [99, 0]][99, 11, 1, False, False, 1, 110, [99, 0]]Failed
fixture 5[91, 9, 2, False, True, -1, 101, [91, 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[92, 9, 1, False, False, -1, 102, [92, 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[88, 13, 1, True, False, 1, 98, [88, 1]][88, 13, 1, True, False, 1, 101, [88, 1]]Failed
fixture 10[90, 13, 1, False, False, 1, 100, [90, 0]][90, 13, 1, False, False, 1, 103, [90, 0]]Failed
fixture 11[87, 13, -2, True, False, 1, 97, [87, 1]][87, 13, -2, True, False, 1, 100, [87, 1]]Failed
variant capture[89, 11, 0, True, False, 1, 99, [89, 1]][89, 11, 0, True, False, 1, 100, [89, 1]]Failed

SHA-256 / 6c2bb1e8aa6404682fceca2ec8bcaa8cdd903d50edcdb95308a1ccd0c1d89e83

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

Case digest / 5b68ca1c285bdd5b99b919b051324fa81d9a0cfe3b1d3992a27ea5a72dfa8b51