Why this page. Two levers that affect realization without breaking direction or stoichiometry:
(1) qualitative environment coupling via the calm gate and bounded priors, and
(2) classical constraints (charges, radicals, valence) enforced on the skeleton under collapse.
4.9 Temperature and environment (qualitative coupling)
Principle (observation-only). The direction signal still comes from e. Environment affects magnitude/realization via small rapidity priors (local) and the calm gate g_t (global). Never bake environment into e.
Design notes.
- Do not change
ewith environment. Keep the lens fixed; encode effects withg_tor bounded priors. - Stay bounded. Enforce
0 <= f_T <= 1,0 <= g_t <= 1, and clamp alignments with the sameeps_a. - Pick one lane recipe for
Z_t / A_t(see §2.8). Temperature can move stress (Z_t) or memory (Q_t)—publish the recipe.
Interpretation.
- Higher
f_Tstrengthens only the nudged term (prior). - Lower
Z_tor higherQ_traisesg_t, globally lifting realization toward ground outcomes. - In both cases, sign(RSI) remains governed by
e; only magnitude/realization changes, and stays bounded.
4.10 Radicals, charges, and constraints
Charge balance (collapse-level).
- Enforce on the reaction skeleton using
phi(m,a)=m. - For redox, either include e⁻ explicitly or ensure your redox lens uses an
nmatching net electrons transferred.
Radicals (policy).
- Represent each radical as its own species
(m,a); direction still comes fromeand the symmetric map (§4.2). - Program policy chooses whether radicals are allowed and caps unpaired e⁻ counts (per-species and/or route-level).
- Optional parity check: require an even total of unpaired electrons at end of a step/route.
Valence caps (enumeration).
- Enforce element-wise valence limits during candidate generation (orthogonal to alignment math).
- Publish the cap table and any charge-dependent overrides in the manifest.
Notes.
- These constraints act on the classical skeleton; they do not alter
e,a, or RSI computation. - Boundedness and direction remain intact:
|a| < 1with clamp; for fixed stoichiometry, sign(RSI) = sign(e).
Plain ASCII formulas & snippets (copy-ready)
# 4.9 TEMPERATURE & ENVIRONMENT (qualitative coupling)
# temperature-scaled prior (bounded factor)
alpha(T) = alpha_0 * f_T # 0 <= f_T <= 1
# environment-gated preference
RSI_env(T, mixing, light, ...) = g_t(T, mixing, light, ...) * RSI
# Example 1: bounded temperature factor for a prior
f_T = clip( (T - T_lo) / (T_hi - T_lo), 0, 1 )
delta_u = alpha_0 * f_T * Index # Index in [0,1]
# Example 2: gate lane lowered by better mixing at higher T
Z_t = clip( Z_base - k_mix * f_T , 0, 1 )
g_t = ( 1 / (1 + Z_t + kappa * |Z_t - A_t|) ) * ( 1 - exp(-mu * Q_t) ) # §2.8
# 4.10 RADICALS, CHARGES, CONSTRAINTS
# formal-charge balance (net ionic if spectators omitted), collapse-level:
sum_over_reactants( m_i * z_i ) = sum_over_products( m_j * z_j )
# policy toggles (examples)
allow_radicals in {false, true}
max_radicals_per_species >= 0
max_total_unpaired_electrons >= 0 # optional route-level cap
# valence caps during enumeration (independent of alignment math)
for each candidate species s:
for each element E in s:
require sum_bond_orders(E in s) <= V_cap(E, formal_charge_of_E_in_s)
# minimal constraint checks
check_charge_balance(reaction):
L = sum_i( m_i * z_i ) # reactants, collapsed
R = sum_j( m_j * z_j ) # products, collapsed
assert L == R
check_radicals(species, policy):
if not policy.allow_radicals:
assert unpaired_e_count(species) == 0
assert unpaired_e_count(species) <= policy.max_radicals_per_species
check_valence(species, V_cap):
for each element E in species:
assert sum_bond_orders(E) <= V_cap(E, formal_charge(E))
Navigation
Previous – M1/M2 Consistency & Priors (4.7–4.8)
Next – Worked Micro-Example (4.11)