Six operators. Same code on every observable.

The framework's operators are domain-agnostic Python functions in validation/code/. The same code that processes Sabra-shell turbulence at \(\mathrm{Re} = 10^{10}\) processes CMIP6 sea-ice trajectories. No climate-specific variants.

The brake operator \(\mathcal{B}\) β€” extracting \(\beta\)

Given a cascade trajectory \((\Phi_i, \tau_i, \rho_i)\), \(\mathcal{B}\) returns the brake exponent

\[ \beta \;=\; \frac{\mathrm{d} \log|\rho|}{\mathrm{d} \log|\Phi|} \]

operationally extracted by ordinary least squares of \(\log|\rho|\) on \(\log|\Phi|\). Three independent estimators run in parallel:

  • polyfit_brake_p β€” naive OLS via numpy.polyfit; bootstrap CI from 1,000 resamples.
  • gls_ar1_brake_p β€” Cochrane–Orcutt iterative GLS with AR(1) residuals. Handles autocorrelated rates.
  • bayesian_brake_p β€” MAP + Laplace covariance, Metropolis sampling for credible intervals. Weakly-informative priors (\(\alpha, \beta \sim \mathrm{Normal}(0, 10^2)\)).

Disagreement between estimators flags model misspecification (e.g. strong AR(1) not accounted for in polyfit). Cross-checked at every cell. Source: validation/code/regression.py.

The dispersion operator \(\mathcal{S}\) β€” cross-model agreement

Given a set of brake exponents \(\{\beta_j\}\) extracted from \(M\) CMIP6 models, \(\mathcal{S}\) returns

\[ \sigma_{\text{cross}} \;=\; \mathrm{stddev}_j(\beta_j) \]

This is the framework's universality call. By Law III, when \(\sigma_{\text{cross}} \ll \sigma_{\text{within}}\) (within-model sample noise), the cross-shadow agreement declares the underlying signal as universal across models. When \(\sigma_{\text{cross}}\) is large, the candidate set is not jointly admissible by Theorem 6.

The consensus operator \(\mathcal{M}\) β€” median trajectory

Given \(M\) shadow trajectories \(\{\rho_j(t)\}\), \(\mathcal{M}\) returns the median rate at each moment \(t\):

\[ \mu(t) \;=\; \mathrm{median}_j[\rho_j(t)] \]

Concentrates exponentially in \(M\) by Theorem 2: \(\mathbb{P}(|\mu_M - \rho_{\text{true}}| > \delta) \le 4 \exp(-2 M F(\delta)^2)\). The MAX aggregator's expected error grows as \(\sigma \sqrt{2 \log M}\) and does not concentrate. Median is therefore the framework's natural shadow aggregator.

The spectral primitive \(\mathcal{P}\) β€” cascade vs resonance class

Given a cadence-stamped cascade \((\mathcal{C}, c)\), \(\mathcal{P}\) decomposes:

\[ \mathcal{P}(\mathcal{C}, c) = (\mathcal{C}_{\text{brake}}, \mathcal{C}_{\text{resonance}}, \mathcal{C}_{\text{residual}}) \]

via Empirical Mode Decomposition or wavelet basis. Used in instance #22 to separate the 41-kyr β†’ 100-kyr Mid-Pleistocene Transition from the brake-rate evolution: the cascade's regime change is in the resonance sub-cascade, not the brake sub-cascade. Theorem 13 governs uniqueness up to the gauge group \(G_{\mathcal{P}}\) (rescaling Γ— basis-rotation Γ— mode-reordering; frequency-reparametrisation excluded). Source: validation/code/decomposition.py.

The anti-shadow detector \(\mathfrak{A}\) β€” joint admissibility

Given a candidate shadow set \(\{\mathcal{S}_\alpha\}\), \(\mathfrak{A}\) computes the pair-difference brake dispersion. If \(\mathfrak{A} \le \tau_{T3}\), the set is jointly admissible (Theorem 10). If \(\mathfrak{A} \gg \tau_{T3}\), the candidates shadow different cascades β€” the failure mode visible in:

  • Stratospheric ozone (#25): \(\mathfrak{A} = 22.4\) for hole-minimum vs zonal-mean. Joint admissibility fails β€” they shadow structurally distinct cascades (polar-vortex chlorine chemistry vs global photochemical balance).
  • Tropical cyclones (#30): wind-vs-pressure shadows fail joint admissibility in 5/6 ocean basins.
  • ENSO NiΓ±o regions (#28): the four NiΓ±o sub-region indices are spatial sub-regions of one SST field with correlated noise. (S2) independence fails by construction. SOI alone preserves (S2).

The scope-reporter \(\mathscr{A}\) β€” every finding's self-disclosure

Every framework finding publishes a four-tuple under Theorem 12:

π’œ = (tested_cascade_shadows_cadence_operator_chain,
     excluded_conditions,
     Ο„_T3_precision_floor_at_this_log_range,
     gauge_group_under_which_finding_is_invariant)

This makes Law V operational. No framework finding is publishable without simultaneous publication of its \(\mathscr{A}\). Each catalogue instance carries its own β€” see findings for examples.

PELT change-point detection β€” supplementary primitive

The framework also uses Pruned Exact Linear Time (PELT) change-point detection on the raw \(\Phi(t)\) series, with BIC penalty (Killick 2012 standard, no imported threshold). Used to:

  • Independently rediscover regime breaks: NSIDC Arctic 1990 + 2007 (instance #17), Mid-Pleistocene Transition ~952 kyr (instance #22), Montreal Protocol 1989 (instance #25), MPT in 2/3 paleo records.
  • Locate the first permafrost change-point per CMIP6 model β€” the operative metric in instance #26 where Layer-A binds.
  • Detect coherent multi-reservoir regime shifts β€” the 2012–2014 shift in the energy-budget instance (4/5 reservoirs).

Source: validation/code/regimes.py.

End-to-end example

See the permafrost worked example for a full application of these operators to one specific climate question, producing one specific finding.