Purpose. Verify that the stamp’s UTC-derived clock state matches its own fields. This yields CLOCK_OK.
Deterministic mapping (UTC → angle, sector)
Given iso_utc (must be YYYY-MM-DDThh:mm:ssZ), compute:
unix_seconds = seconds_since_1970_UTC(iso_utc)wrap360(x) = x - 360*floor(x/360)theta'_deg = wrap360( (unix_seconds / 86400) * 360 )rasi'_idx = floor(theta'_deg / 30)
Checks (must / should)
- MUST (discrete sector):
rasi'_idx == rasi_idx→ sector matches. - SHOULD (formatted angle string): format
theta'_degwith exactlytheta_precfractional digits (default5) using IEEE-754 binary64 round-half-to-even, then require string equality:theta_fmt == theta_deg.- Tolerance option (when policy allows): if a legacy producer printed
theta_degwith the right numeric value but the wrong string policy, a verifier MAY acceptabs(theta'_deg - theta_deg) <= 5e-7(about one unit in the last place attheta_prec=5). Prefer string equality when possible.
- Tolerance option (when policy allows): if a legacy producer printed
Procedure (verifier, step-by-step)
- Confirm
iso_utcshape and no leap second (:60forbidden). - Compute
unix_seconds. - Compute
theta'_degandrasi'_idxas above. - Sector check (MUST): compare
rasi'_idxtorasi_idx. - Determine
p = kv:theta_precelse5. - Format
theta'_degtopdigits using binary64 round-half-to-even →theta_fmt. - Angle string (SHOULD): compare
theta_fmttotheta_deg(string). - Set
CLOCK_OK = (sector_ok && (angle_ok or tolerated)).
Notes & invariants
theta_deg ∈ [0,360);rasi_idx ∈ {0..11}.- Angle print policy is part of determinism: compare as strings to avoid locale/format drift.
- Timezones/offsets/subseconds: not allowed; only
...Zwith whole seconds is valid. - The per-second advance is constant:
dtheta_per_sec = 360/86400.
Common failure reasons
iso_utcincludes subseconds or a timezone offset.theta_degnot printed with exactlytheta_precdigits.- Rounding mode not round-half-to-even.
- Producer emits
23:59:60(must be rejected upstream).
Outcome
- Emit
CLOCK_OK=true/false, plus a short reason if false (e.g.,rasi mismatch,theta string mismatch).
Navigation
Back: SSM-Clock Stamp – Content Integrity (2.2)
Next: SSM-Clock Stamp – Chain Continuity (2.4)