Operator canon (portable verbs over SSM numerals)
Let a symbolic numeral be:
x = (m, a) # magnitude m in R, alignment a in (-1, +1)
phi(m, a) = m # collapse back to classical value
SSMS supplies collapse-safe operators that act on (m, a) and preserve classical results under phi:
s_add, s_sub, s_mul, s_div, s_pow
s_gt, s_eq # banded comparisons (details in 0.3)
min, max, abs, round # helpers
Clamp and rapidity path (keep alignment bounded)
sign(z) = 1 if z >= 0 else -1
clamp_a(a, eps_a):
if abs(a) >= 1 - eps_a: return sign(a) * (1 - eps_a)
else: return a
u(a) = atanh( clamp_a(a, eps_a) ) # encode to rapidity
a_of(u) = tanh(u) # decode back to alignment
Streaming-safe sum (example for two terms; generalizes to N terms)
Weights favor larger magnitudes but keep alignment bounded via rapidity.
# inputs
x1 = (m1, a1)
x2 = (m2, a2)
gamma >= 0
eps_w > 0
# magnitude channel
m_sum = m1 + m2
# alignment channel via rapidity-average
w1 = abs(m1)^gamma
w2 = abs(m2)^gamma
u1 = u(a1)
u2 = u(a2)
u_sum = (w1*u1 + w2*u2) / max(w1 + w2, eps_w)
a_sum = a_of(u_sum)
# output
s_add(x1, x2) = (m_sum, a_sum)
s_sub(x1, x2) = s_add(x1, (m2 * -1, a2)) # classical subtraction in m; same rapidity recipe
Notes:
gamma = 1is a good default.- Accumulators
(U, W)make sums associative in streaming and batch.
Products and divisions (bounded alignment combine)
Classical magnitude follows usual arithmetic; the alignment channel uses one of two portable laws.
Combine policies:
M1 (simple): a' = a1 * a2
M2 (rapidity): u' = u(a1) + u(a2)
a' = a_of(u')
Multiplication:
m_mul = m1 * m2
a_mul = M2(a1, a2) # default
s_mul(x1, x2) = (m_mul, a_mul)
Division (policy around the multiplicative inverse of the magnitude):
# choose one policy for inv_m(m)
# "strict" : forbid 1/0 (error or NaN by policy)
# "meadow" : totalize with 1/0 = 0 (algebraic meadow)
# "soft" : guard small |m| with a floor before inversion
m_div = m1 / inv_m(m2) # per chosen policy
a_div = M2(a1, a2_with_sign) # combine via M2; sign handling follows classical parity
s_div(x1, x2) = (m_div, a_div)
Notes:
- M2 is associative in rapidity space and keeps
|a'| < 1. - M1 is simpler and fast; M2 is the safer default for long chains.
- Division never alters the classical result under
phi; the policy only determines how you handle zero or near-zero magnitudes.
Integer powers (k in Z)
m_pow = m^k
a_pow = a_of( k * u(a) ) # a_pow = tanh( k * atanh(a) )
s_pow( (m, a), k ) = (m_pow, a_pow)
Optional environment gate (alignment-only)
a_env = g_t * a_op # g_t in [0, 1]
# magnitudes remain unchanged; gate applies to the final alignment channel only
Minimal defaults (declare once)
gamma = 1
eps_a = 1e-6
eps_w = 1e-12
Algebraic consistency (collapse safety)
- For every SSMS operator
op,phi( op( (m1,a1), (m2,a2) ) ) = op_classical(m1, m2). - Bounds hold by construction:
|a| < 1withclamp_a.
Navigation
Previous: Abstract and Overview (0.1)
Next: Continuity and Micro Examples with Banded Comparisons (0.3)