FA-18481 / Time representation / Open access
Target displacement loses signed future-versus-past meaning · case 01
The decoded time state disagrees with the explicit regression oracle for until.
ROOT CAUSE
Target displacement loses signed future-versus-past meaning.
VERIFIED REPAIR
Preserve the declared coordinate and state contract at until: until = r['target'] - coordinate.
Unsuccessful approach: The partial correction still substitutes abs(r['target'] - coordinate) 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'] - 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 = coordinate - r['target']
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'] | Failed |
| fixture 2 | ['100', '3/2', '115', '-30', '85/2'] | ['100', '3/2', '115', '30', '85/2'] | Failed |
| fixture 3 | ['227/2', '3/2', '115', '-33/2', '85/2'] | ['227/2', '3/2', '115', '33/2', '85/2'] | Failed |
| fixture 4 | ['115', '2/3', '115', '-15', '85/2'] | ['115', '2/3', '115', '15', '85/2'] | Failed |
| fixture 5 | ['347/3', '2/3', '115', '-43/3', '85/2'] | ['347/3', '2/3', '115', '43/3', '85/2'] | Failed |
| fixture 6 | ['365/3', '2/3', '115', '-25/3', '85/2'] | ['365/3', '2/3', '115', '25/3', '85/2'] | Failed |
| fixture 7 | ['135', '2/3', '115', '15', '55/2'] | ['135', '2/3', '115', '-15', '55/2'] | Failed |
| fixture 8 | ['355/3', '2/3', '115', '10/3', '20'] | ['355/3', '2/3', '115', '-10/3', '20'] | Failed |
| fixture 9 | ['215/2', '3/2', '115', '-17/2', '43/2'] | ['215/2', '3/2', '115', '17/2', '43/2'] | Failed |
| fixture 10 | ['505/3', '2/3', '115', '115/3', '85/2'] | ['505/3', '2/3', '115', '-115/3', '85/2'] | Failed |
| variant capture | ['94', '3/2', '115', '-36', '85/2'] | ['94', '3/2', '115', '36', '85/2'] | Failed |
SHA-256 / ab9c100f65f2a6abf1c28e7c53fd6618bce1bd25d2ce255b82ee41f9a797c53d
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['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 = abs(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'] | Failed |
| fixture 8 | ['355/3', '2/3', '115', '10/3', '20'] | ['355/3', '2/3', '115', '-10/3', '20'] | Failed |
| 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'] | Failed |
| variant capture | ['94', '3/2', '115', '36', '85/2'] | ['94', '3/2', '115', '36', '85/2'] | Passed |
SHA-256 / 23799ef641175c8f951540113d03bcb0bb8a976100a24125a532a57c0614b6e5
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:58.057998+00:00.
Case digest / aa3d12e1d00c90041a1dd59dd6b3b944721af5484c6f46255bdaf465171faa91