FA-18441 / Time representation / Open access
Rate switch continuity anchor omits monotonic origin · case 01
The decoded time state disagrees with the explicit regression oracle for first_span.
ROOT CAUSE
Rate switch continuity anchor omits monotonic origin.
VERIFIED REPAIR
Preserve the declared coordinate and state contract at first_span: first_span = r['switch'] - r['mono_origin'].
Unsuccessful approach: The partial correction still substitutes r['switch'] - r['reading'] at the same fault site.
Case contract
Virtual clock has anchor A at monotonic M0, rate p0/q0 until switch S, then p1/q1 thereafter. Readings may precede M0 and use first rate. The switch is continuous. Report exact coordinate, active rate, continuity anchor, next target delta and inverse monotonic coordinate for a target at or after switch. All rates positive.
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):
first_span = r['switch']
first_rate = Fraction(r['p0'],r['q0'])
second_rate = Fraction(r['p1'],r['q1'])
join = r['anchor'] + first_span * first_rate
second = r['reading'] >= r['switch']
delta = r['reading'] - (r['switch'] if second else r['mono_origin'])
active = second_rate if second else first_rate
coordinate = (join if second else r['anchor']) + delta * active
until = r['target'] - coordinate
inverse = r['switch'] + (r['target'] - join) / second_rate
return [str(coordinate),str(active),str(join),str(until),str(inverse)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 5, 'target': 130}), ['185/2', '3/2', '115', '75/2', '85/2'])
check('fixture 2', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}), ['100', '3/2', '115', '30', '85/2'])
check('fixture 3', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 19, 'target': 130}), ['227/2', '3/2', '115', '33/2', '85/2'])
check('fixture 4', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 20, 'target': 130}), ['115', '2/3', '115', '15', '85/2'])
check('fixture 5', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 21, 'target': 130}), ['347/3', '2/3', '115', '43/3', '85/2'])
check('fixture 6', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 30, 'target': 130}), ['365/3', '2/3', '115', '25/3', '85/2'])
check('fixture 7', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 50, 'target': 120}), ['135', '2/3', '115', '-15', '55/2'])
check('fixture 8', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 25, 'target': 115}), ['355/3', '2/3', '115', '-10/3', '20'])
check('fixture 9', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 15, 'target': 116}), ['215/2', '3/2', '115', '17/2', '43/2'])
check('fixture 10', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 100, 'target': 130}), ['505/3', '2/3', '115', '-115/3', '85/2'])
variant = [({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 6, 'target': 130}, ['94', '3/2', '115', '36', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 7, 'target': 130}, ['191/2', '3/2', '115', '69/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 8, 'target': 130}, ['97', '3/2', '115', '33', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 9, 'target': 130}, ['197/2', '3/2', '115', '63/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}, ['100', '3/2', '115', '30', '85/2'])]
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 | ['185/2', '3/2', '130', '75/2', '20'] | ['185/2', '3/2', '115', '75/2', '85/2'] | Failed |
| fixture 2 | ['100', '3/2', '130', '30', '20'] | ['100', '3/2', '115', '30', '85/2'] | Failed |
| fixture 3 | ['227/2', '3/2', '130', '33/2', '20'] | ['227/2', '3/2', '115', '33/2', '85/2'] | Failed |
| fixture 4 | ['130', '2/3', '130', '0', '20'] | ['115', '2/3', '115', '15', '85/2'] | Failed |
| fixture 5 | ['392/3', '2/3', '130', '-2/3', '20'] | ['347/3', '2/3', '115', '43/3', '85/2'] | Failed |
| fixture 6 | ['410/3', '2/3', '130', '-20/3', '20'] | ['365/3', '2/3', '115', '25/3', '85/2'] | Failed |
| fixture 7 | ['150', '2/3', '130', '-30', '5'] | ['135', '2/3', '115', '-15', '55/2'] | Failed |
| fixture 8 | ['400/3', '2/3', '130', '-55/3', '-5/2'] | ['355/3', '2/3', '115', '-10/3', '20'] | Failed |
| fixture 9 | ['215/2', '3/2', '130', '17/2', '-1'] | ['215/2', '3/2', '115', '17/2', '43/2'] | Failed |
| fixture 10 | ['550/3', '2/3', '130', '-160/3', '20'] | ['505/3', '2/3', '115', '-115/3', '85/2'] | Failed |
| variant capture | ['94', '3/2', '130', '36', '20'] | ['94', '3/2', '115', '36', '85/2'] | Failed |
SHA-256 / 64e023e36d123a04d23dc133421dcd828b256c9f1878fd60d46322d5754f1cc9
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):
first_span = r['switch'] - r['reading']
first_rate = Fraction(r['p0'],r['q0'])
second_rate = Fraction(r['p1'],r['q1'])
join = r['anchor'] + first_span * first_rate
second = r['reading'] >= r['switch']
delta = r['reading'] - (r['switch'] if second else r['mono_origin'])
active = second_rate if second else first_rate
coordinate = (join if second else r['anchor']) + delta * active
until = r['target'] - coordinate
inverse = r['switch'] + (r['target'] - join) / second_rate
return [str(coordinate),str(active),str(join),str(until),str(inverse)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 5, 'target': 130}), ['185/2', '3/2', '115', '75/2', '85/2'])
check('fixture 2', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}), ['100', '3/2', '115', '30', '85/2'])
check('fixture 3', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 19, 'target': 130}), ['227/2', '3/2', '115', '33/2', '85/2'])
check('fixture 4', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 20, 'target': 130}), ['115', '2/3', '115', '15', '85/2'])
check('fixture 5', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 21, 'target': 130}), ['347/3', '2/3', '115', '43/3', '85/2'])
check('fixture 6', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 30, 'target': 130}), ['365/3', '2/3', '115', '25/3', '85/2'])
check('fixture 7', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 50, 'target': 120}), ['135', '2/3', '115', '-15', '55/2'])
check('fixture 8', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 25, 'target': 115}), ['355/3', '2/3', '115', '-10/3', '20'])
check('fixture 9', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 15, 'target': 116}), ['215/2', '3/2', '115', '17/2', '43/2'])
check('fixture 10', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 100, 'target': 130}), ['505/3', '2/3', '115', '-115/3', '85/2'])
variant = [({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 6, 'target': 130}, ['94', '3/2', '115', '36', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 7, 'target': 130}, ['191/2', '3/2', '115', '69/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 8, 'target': 130}, ['97', '3/2', '115', '33', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 9, 'target': 130}, ['197/2', '3/2', '115', '63/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}, ['100', '3/2', '115', '30', '85/2'])]
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 | ['185/2', '3/2', '245/2', '75/2', '125/4'] | ['185/2', '3/2', '115', '75/2', '85/2'] | Failed |
| fixture 2 | ['100', '3/2', '115', '30', '85/2'] | ['100', '3/2', '115', '30', '85/2'] | Passed |
| fixture 3 | ['227/2', '3/2', '203/2', '33/2', '251/4'] | ['227/2', '3/2', '115', '33/2', '85/2'] | Failed |
| fixture 4 | ['100', '2/3', '100', '30', '65'] | ['115', '2/3', '115', '15', '85/2'] | Failed |
| fixture 5 | ['595/6', '2/3', '197/2', '185/6', '269/4'] | ['347/3', '2/3', '115', '43/3', '85/2'] | Failed |
| fixture 6 | ['275/3', '2/3', '85', '115/3', '175/2'] | ['365/3', '2/3', '115', '25/3', '85/2'] | Failed |
| fixture 7 | ['75', '2/3', '55', '45', '235/2'] | ['135', '2/3', '115', '-15', '55/2'] | Failed |
| fixture 8 | ['575/6', '2/3', '185/2', '115/6', '215/4'] | ['355/3', '2/3', '115', '-10/3', '20'] | Failed |
| fixture 9 | ['215/2', '3/2', '215/2', '17/2', '131/4'] | ['215/2', '3/2', '115', '17/2', '43/2'] | Failed |
| fixture 10 | ['100/3', '2/3', '-20', '290/3', '245'] | ['505/3', '2/3', '115', '-115/3', '85/2'] | Failed |
| variant capture | ['94', '3/2', '121', '36', '67/2'] | ['94', '3/2', '115', '36', '85/2'] | Failed |
SHA-256 / 96d5f32a27b041d8ade4fa24eeb8892232b007b6d7d52248c8df4e46c46f402f
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):
first_span = r['switch'] - r['mono_origin']
first_rate = Fraction(r['p0'],r['q0'])
second_rate = Fraction(r['p1'],r['q1'])
join = r['anchor'] + first_span * first_rate
second = r['reading'] >= r['switch']
delta = r['reading'] - (r['switch'] if second else r['mono_origin'])
active = second_rate if second else first_rate
coordinate = (join if second else r['anchor']) + delta * active
until = r['target'] - coordinate
inverse = r['switch'] + (r['target'] - join) / second_rate
return [str(coordinate),str(active),str(join),str(until),str(inverse)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 5, 'target': 130}), ['185/2', '3/2', '115', '75/2', '85/2'])
check('fixture 2', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}), ['100', '3/2', '115', '30', '85/2'])
check('fixture 3', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 19, 'target': 130}), ['227/2', '3/2', '115', '33/2', '85/2'])
check('fixture 4', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 20, 'target': 130}), ['115', '2/3', '115', '15', '85/2'])
check('fixture 5', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 21, 'target': 130}), ['347/3', '2/3', '115', '43/3', '85/2'])
check('fixture 6', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 30, 'target': 130}), ['365/3', '2/3', '115', '25/3', '85/2'])
check('fixture 7', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 50, 'target': 120}), ['135', '2/3', '115', '-15', '55/2'])
check('fixture 8', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 25, 'target': 115}), ['355/3', '2/3', '115', '-10/3', '20'])
check('fixture 9', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 15, 'target': 116}), ['215/2', '3/2', '115', '17/2', '43/2'])
check('fixture 10', solve({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 100, 'target': 130}), ['505/3', '2/3', '115', '-115/3', '85/2'])
variant = [({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 6, 'target': 130}, ['94', '3/2', '115', '36', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 7, 'target': 130}, ['191/2', '3/2', '115', '69/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 8, 'target': 130}, ['97', '3/2', '115', '33', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 9, 'target': 130}, ['197/2', '3/2', '115', '63/2', '85/2']), ({'mono_origin': 10, 'anchor': 100, 'switch': 20, 'p0': 3, 'q0': 2, 'p1': 2, 'q1': 3, 'reading': 10, 'target': 130}, ['100', '3/2', '115', '30', '85/2'])]
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 | ['185/2', '3/2', '115', '75/2', '85/2'] | ['185/2', '3/2', '115', '75/2', '85/2'] | Passed |
| fixture 2 | ['100', '3/2', '115', '30', '85/2'] | ['100', '3/2', '115', '30', '85/2'] | Passed |
| fixture 3 | ['227/2', '3/2', '115', '33/2', '85/2'] | ['227/2', '3/2', '115', '33/2', '85/2'] | Passed |
| fixture 4 | ['115', '2/3', '115', '15', '85/2'] | ['115', '2/3', '115', '15', '85/2'] | Passed |
| fixture 5 | ['347/3', '2/3', '115', '43/3', '85/2'] | ['347/3', '2/3', '115', '43/3', '85/2'] | Passed |
| fixture 6 | ['365/3', '2/3', '115', '25/3', '85/2'] | ['365/3', '2/3', '115', '25/3', '85/2'] | Passed |
| fixture 7 | ['135', '2/3', '115', '-15', '55/2'] | ['135', '2/3', '115', '-15', '55/2'] | Passed |
| fixture 8 | ['355/3', '2/3', '115', '-10/3', '20'] | ['355/3', '2/3', '115', '-10/3', '20'] | Passed |
| fixture 9 | ['215/2', '3/2', '115', '17/2', '43/2'] | ['215/2', '3/2', '115', '17/2', '43/2'] | Passed |
| fixture 10 | ['505/3', '2/3', '115', '-115/3', '85/2'] | ['505/3', '2/3', '115', '-115/3', '85/2'] | Passed |
| variant capture | ['94', '3/2', '115', '36', '85/2'] | ['94', '3/2', '115', '36', '85/2'] | Passed |
SHA-256 / 8fdcdffbb20c91deb17e8de8625c7ba422be0170c4d12248e7529db60f2b6fc4
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:57.649691+00:00.
Case digest / ff87429f2c83da7353ac7cd6b51e527ef7a3b8908bf8df102d27887f12216812