FA-18401 / Time representation / Open access
Offset grammar loses sign or required colon position · case 01
The decoded time state disagrees with the explicit regression oracle for shape.
ROOT CAUSE
Offset grammar loses sign or required colon position.
VERIFIED REPAIR
Preserve the declared coordinate and state contract at shape: shape = len(text) == 6 and text[0] in '+-' and text[3] == ':'.
Unsuccessful approach: The partial correction still substitutes len(text) == 6 and text[0] in '+-' at the same fault site.
Case contract
Controlled offset lexeme is Z or signed HH:MM with ASCII digits, hour<=14, minute<=59 and hour14 only minute00. Negative zero means unknown local offset and has no numeric UTC offset; positive zero and Z are known UTC. Return accepted, known, signed minute displacement and original negative-zero marker. No timezone database is consulted.
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):
text = r['text']
zulu = text == 'Z'
shape = len(text) == 6 and text[3] == ':'
digits = shape and all('0' <= c <= '9' for c in text[1:3]+text[4:6])
hour = int(text[1:3]) if digits else 0
minute = int(text[4:6]) if digits else 0
range_ok = hour <= 14 and minute <= 59 and (hour != 14 or minute == 0)
valid = zulu or (digits and range_ok)
unknown = valid and text == '-00:00'
offset = None if not valid or unknown else (0 if zulu else (-1 if text[0] == '-' else 1) * (hour * 60 + minute))
return [valid,valid and not unknown,offset,unknown]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'text': 'Z', 'probe': 0}), [True, True, 0, False])
check('fixture 2', solve({'text': 'z', 'probe': 0}), [False, False, None, False])
check('fixture 3', solve({'text': 'UTC', 'probe': 0}), [False, False, None, False])
check('fixture 4', solve({'text': '+00:00', 'probe': 0}), [True, True, 0, False])
check('fixture 5', solve({'text': '-00:00', 'probe': 0}), [True, False, None, True])
check('fixture 6', solve({'text': '-05:30', 'probe': 0}), [True, True, -330, False])
check('fixture 7', solve({'text': '+14:00', 'probe': 0}), [True, True, 840, False])
check('fixture 8', solve({'text': '+14:01', 'probe': 0}), [False, False, None, False])
check('fixture 9', solve({'text': '+12:59', 'probe': 0}), [True, True, 779, False])
check('fixture 10', solve({'text': '+12:60', 'probe': 0}), [False, False, None, False])
check('fixture 11', solve({'text': 'x01:00', 'probe': 0}), [False, False, None, False])
check('fixture 12', solve({'text': '+01x00', 'probe': 0}), [False, False, None, False])
check('fixture 13', solve({'text': '+٠١:٠٠', 'probe': 0}), [False, False, None, False])
check('fixture 14', solve({'text': ' Z ', 'probe': 0}), [False, False, None, False])
check('fixture 15', solve({'text': '+10:02', 'probe': 0}), [True, True, 602, False])
variant = [({'text': '+01:30', 'probe': 0}, [True, True, 90, False]), ({'text': '+02:30', 'probe': 0}, [True, True, 150, False]), ({'text': '+03:30', 'probe': 0}, [True, True, 210, False]), ({'text': '+04:30', 'probe': 0}, [True, True, 270, False]), ({'text': '+05:30', 'probe': 0}, [True, True, 330, False])]
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 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 2 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 3 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 4 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 5 | [True, False, None, True] | [True, False, None, True] | Passed |
| fixture 6 | [True, True, -330, False] | [True, True, -330, False] | Passed |
| fixture 7 | [True, True, 840, False] | [True, True, 840, False] | Passed |
| fixture 8 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 9 | [True, True, 779, False] | [True, True, 779, False] | Passed |
| fixture 10 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 11 | [True, True, 60, False] | [False, False, None, False] | Failed |
| fixture 12 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 13 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 14 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 15 | [True, True, 602, False] | [True, True, 602, False] | Passed |
| variant capture | [True, True, 90, False] | [True, True, 90, False] | Passed |
SHA-256 / 30a9336d758bb55081f4cf7ef69ec7cceca73e466fbb7d8851b3ed26557813af
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):
text = r['text']
zulu = text == 'Z'
shape = len(text) == 6 and text[0] in '+-'
digits = shape and all('0' <= c <= '9' for c in text[1:3]+text[4:6])
hour = int(text[1:3]) if digits else 0
minute = int(text[4:6]) if digits else 0
range_ok = hour <= 14 and minute <= 59 and (hour != 14 or minute == 0)
valid = zulu or (digits and range_ok)
unknown = valid and text == '-00:00'
offset = None if not valid or unknown else (0 if zulu else (-1 if text[0] == '-' else 1) * (hour * 60 + minute))
return [valid,valid and not unknown,offset,unknown]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'text': 'Z', 'probe': 0}), [True, True, 0, False])
check('fixture 2', solve({'text': 'z', 'probe': 0}), [False, False, None, False])
check('fixture 3', solve({'text': 'UTC', 'probe': 0}), [False, False, None, False])
check('fixture 4', solve({'text': '+00:00', 'probe': 0}), [True, True, 0, False])
check('fixture 5', solve({'text': '-00:00', 'probe': 0}), [True, False, None, True])
check('fixture 6', solve({'text': '-05:30', 'probe': 0}), [True, True, -330, False])
check('fixture 7', solve({'text': '+14:00', 'probe': 0}), [True, True, 840, False])
check('fixture 8', solve({'text': '+14:01', 'probe': 0}), [False, False, None, False])
check('fixture 9', solve({'text': '+12:59', 'probe': 0}), [True, True, 779, False])
check('fixture 10', solve({'text': '+12:60', 'probe': 0}), [False, False, None, False])
check('fixture 11', solve({'text': 'x01:00', 'probe': 0}), [False, False, None, False])
check('fixture 12', solve({'text': '+01x00', 'probe': 0}), [False, False, None, False])
check('fixture 13', solve({'text': '+٠١:٠٠', 'probe': 0}), [False, False, None, False])
check('fixture 14', solve({'text': ' Z ', 'probe': 0}), [False, False, None, False])
check('fixture 15', solve({'text': '+10:02', 'probe': 0}), [True, True, 602, False])
variant = [({'text': '+01:30', 'probe': 0}, [True, True, 90, False]), ({'text': '+02:30', 'probe': 0}, [True, True, 150, False]), ({'text': '+03:30', 'probe': 0}, [True, True, 210, False]), ({'text': '+04:30', 'probe': 0}, [True, True, 270, False]), ({'text': '+05:30', 'probe': 0}, [True, True, 330, False])]
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 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 2 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 3 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 4 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 5 | [True, False, None, True] | [True, False, None, True] | Passed |
| fixture 6 | [True, True, -330, False] | [True, True, -330, False] | Passed |
| fixture 7 | [True, True, 840, False] | [True, True, 840, False] | Passed |
| fixture 8 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 9 | [True, True, 779, False] | [True, True, 779, False] | Passed |
| fixture 10 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 11 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 12 | [True, True, 60, False] | [False, False, None, False] | Failed |
| fixture 13 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 14 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 15 | [True, True, 602, False] | [True, True, 602, False] | Passed |
| variant capture | [True, True, 90, False] | [True, True, 90, False] | Passed |
SHA-256 / 540e78f12bc5d6b643f4ad2fae6b517e073980dfbc76e1e943b7da629b670bc1
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):
text = r['text']
zulu = text == 'Z'
shape = len(text) == 6 and text[0] in '+-' and text[3] == ':'
digits = shape and all('0' <= c <= '9' for c in text[1:3]+text[4:6])
hour = int(text[1:3]) if digits else 0
minute = int(text[4:6]) if digits else 0
range_ok = hour <= 14 and minute <= 59 and (hour != 14 or minute == 0)
valid = zulu or (digits and range_ok)
unknown = valid and text == '-00:00'
offset = None if not valid or unknown else (0 if zulu else (-1 if text[0] == '-' else 1) * (hour * 60 + minute))
return [valid,valid and not unknown,offset,unknown]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'text': 'Z', 'probe': 0}), [True, True, 0, False])
check('fixture 2', solve({'text': 'z', 'probe': 0}), [False, False, None, False])
check('fixture 3', solve({'text': 'UTC', 'probe': 0}), [False, False, None, False])
check('fixture 4', solve({'text': '+00:00', 'probe': 0}), [True, True, 0, False])
check('fixture 5', solve({'text': '-00:00', 'probe': 0}), [True, False, None, True])
check('fixture 6', solve({'text': '-05:30', 'probe': 0}), [True, True, -330, False])
check('fixture 7', solve({'text': '+14:00', 'probe': 0}), [True, True, 840, False])
check('fixture 8', solve({'text': '+14:01', 'probe': 0}), [False, False, None, False])
check('fixture 9', solve({'text': '+12:59', 'probe': 0}), [True, True, 779, False])
check('fixture 10', solve({'text': '+12:60', 'probe': 0}), [False, False, None, False])
check('fixture 11', solve({'text': 'x01:00', 'probe': 0}), [False, False, None, False])
check('fixture 12', solve({'text': '+01x00', 'probe': 0}), [False, False, None, False])
check('fixture 13', solve({'text': '+٠١:٠٠', 'probe': 0}), [False, False, None, False])
check('fixture 14', solve({'text': ' Z ', 'probe': 0}), [False, False, None, False])
check('fixture 15', solve({'text': '+10:02', 'probe': 0}), [True, True, 602, False])
variant = [({'text': '+01:30', 'probe': 0}, [True, True, 90, False]), ({'text': '+02:30', 'probe': 0}, [True, True, 150, False]), ({'text': '+03:30', 'probe': 0}, [True, True, 210, False]), ({'text': '+04:30', 'probe': 0}, [True, True, 270, False]), ({'text': '+05:30', 'probe': 0}, [True, True, 330, False])]
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 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 2 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 3 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 4 | [True, True, 0, False] | [True, True, 0, False] | Passed |
| fixture 5 | [True, False, None, True] | [True, False, None, True] | Passed |
| fixture 6 | [True, True, -330, False] | [True, True, -330, False] | Passed |
| fixture 7 | [True, True, 840, False] | [True, True, 840, False] | Passed |
| fixture 8 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 9 | [True, True, 779, False] | [True, True, 779, False] | Passed |
| fixture 10 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 11 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 12 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 13 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 14 | [False, False, None, False] | [False, False, None, False] | Passed |
| fixture 15 | [True, True, 602, False] | [True, True, 602, False] | Passed |
| variant capture | [True, True, 90, False] | [True, True, 90, False] | Passed |
SHA-256 / 959a41688549c1227741ecdf52779861b8419b7b806c5de6aacf34eeedfd25f1
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.274758+00:00.
Case digest / 8c5374750c34dc489f5629eaa3de06cda8346c77c8c76cb280f7554c5890bdfa