Idea. Promote a scalar into a two-channel object: a headline value and an alignment that reports how solid that value is.x = (m, a) where m in R, a in (-1,+1)phi(m, a) = m (collapse recovers the classical scalar)
Reading a: a -> +1 suggests stability; a -> -1 suggests drift.
Rapidity space (safe numerics).eps_a = 1e-6clamp_a(z, e) = max(-1+e, min(+1-e, z))u = atanh( clamp_a(a, eps_a) ) -> a = tanh(u)
Combining alignments (policies).M1 (simple): a' = clamp_a(a1 * a2, eps_a)M2 (rapidity; default for mul/div): a' = tanh( atanh(clamp_a(a1, eps_a)) + atanh(clamp_a(a2, eps_a)) )
Addition (streaming, n-ary).eps_w = 1e-12, w(m) = |m|^gamma (default gamma = 1)U = sum_i [ w_i * atanh(clamp_a(a_i, eps_a)) ]W = sum_i w_im_out = sum_i m_ia_out = tanh( U / max(W, eps_w) )
Multiplication & division (defaults).u1 = atanh(clamp_a(a1, eps_a)), u2 = atanh(clamp_a(a2, eps_a))(m1,a1) * (m2,a2) = ( m1*m2 , tanh(u1 + u2) )(m1,a1) / (m2,a2) = ( m1/m2 , tanh(u1 - u2) ) (with m2 != 0)
Conservative extension (guarantees).phi((m,a)) = m ; phi(x + y) = phi(x) + phi(y) ; phi(x * y) = phi(x) * phi(y)
(Edge cases handled as limits in u-space; holds for |a| <= 1 - eps_a.)
Conventions.id_add = (0, +1) ; id_mul = (1, 0) ; ASCII math only (log, exp, tanh, atanh) ; addition uses the rapidity mean; mul/div use M2.
Why this matters for the transit kernel.
We compute angles/events with tiny state and no runtime ephemeris. SSM lets us carry an alignment alongside each number, so we can reason about stability without breaking classical arithmetic when we collapse via phi.
Navigation
Back: SSM-JTK – Introduction (00-Intro)
Next: SSM-JTK – Overview (0)