Delta Gamma
SPEC_DELTA_GAMMA — ΔΓ Change Rate
Version: 1.0 | Status: AUTHORIZED | Authority: α.13 | Date: 2026-04-16
PURPOSE
ΔΓ (Delta-Gamma) is the CSDM change-rate invariant. It measures the velocity of coherence drift across the manifold — how fast the system is changing state, not just what state it is in.
A system can score healthy coherence (C ≥ 0.974) instantaneously while accumulating drift faster than the Φ-damping constant can absorb. ΔΓ catches that failure mode. It is the rate-of-change limiter that prevents runaway manifold destabilization even when each point-in-time evaluation looks green.
Healthy bound: ΔΓ < 0.10 / hr
Source constants: TMMRuntime.RATE_LIMIT = 0.10 (~/aether/tmm_runtime.py, line 17)
LATTICE symbol: ΔΓ (uppercase Delta + uppercase Gamma)
LATTICE state notation: ΔΓ.≡ (stable / no drift), ΔΓ.▲ (elevated), ΔΓ.⊠ (constraint broken)
Cross-reference: SPEC_COHERENCE_INVARIANTS.md § Invariant 3, LATTICE.md § II (CORE CONSTANTS: Δ = Change/Rate/Perturbation, Γ = Network/Connection)
INPUTS
| Input | Type | Source | Description |
|---|---|---|---|
| coherence_history | list[float] | EvaluationHistory store | Ordered sequence of C values from prior evaluations |
| timestamp_history | list[float] | EvaluationHistory store | Unix timestamps corresponding to each coherence sample |
| window_seconds | float | Constant: 3600.0 | Rolling window size (1 hour) over which rate is computed |
| current_coherence | float | TMMRuntime.calculate_coherence() | Most recent C value |
| current_timestamp | float | time.time() | Timestamp of current evaluation |
Derived quantity:
ΔΓ = |ΔC / Δt|
where:
ΔC = max(coherence_history[window]) - min(coherence_history[window])
Δt = duration of window in hours (≤ 1.0)
window = all evaluations within the last 3600 seconds
What is NOT an input (hardcoded constants, never injected):
RATE_LIMIT = 0.10— callers cannot relax or tighten this bound- Window size = 3600 seconds (1 hour) — callers cannot change the measurement window
OUTPUTS
| Output | Type | Description |
|---|---|---|
| delta_gamma | float | Computed rate of change (coherence units per hour) |
| delta_gamma_safe | bool | True iff ΔΓ < 0.10/hr |
| delta_gamma_flag | str | "ΔΓ.≡" (safe) / "ΔΓ.▲" (elevated, < 0.20) / "ΔΓ.⊠" (constraint broken, ≥ 0.10) |
| window_sample_count | int | Number of evaluations used in the rate computation |
| gap_flag | str or None | "ΔΓ_not_measured" if EvaluationHistory store is absent (◌ gap signal) |
Verdict impact:
- ΔΓ ≥ 0.10/hr AND current verdict is GREEN or AMBER → verdict MUST be downgraded to AMBER with ΔΓ.▲ flag
- ΔΓ ≥ 0.20/hr → verdict MUST be RED regardless of instantaneous C
- ΔΓ not computed → ◌ gap signal emitted; instantaneous C verdict stands but is marked INCOMPLETE
INVARIANTS
INV-1 — Rate Limit is Immutable
TMMRuntime.RATE_LIMIT == 0.10 at all times, in all execution paths, in all TMMRuntime versions. This value may not be changed without α.13 authorization. It is a governance constant, not a configuration parameter.
Verification: assert TMMRuntime.RATE_LIMIT == 0.10
INV-2 — Rate is Always Non-Negative
ΔΓ is a magnitude (absolute rate), not a signed velocity. Coherence may improve or degrade — the invariant governs the speed of either movement.
Formula enforced: ΔΓ = abs(delta_C) / delta_t_hours
INV-3 — Window is Fixed at 1 Hour
The rolling window for rate computation is exactly 3600 seconds. Shorter windows inflate apparent rate (noise amplification). Longer windows mask sudden destabilization. The 1-hour window is calibrated to Φ = 0.042 damping physics.
Invariant: window_seconds == 3600.0 always. No caller-supplied window.
INV-4 — Minimum Sample Threshold
A ΔΓ computation requires at least 2 data points within the window. A single-point window has no rate — it is ΔΓ = 0 by definition (not by measurement). If fewer than 2 samples exist, ΔΓ MUST be reported as ◌ (not-yet-measurable), not as 0.0.
Invariant: if len(window_samples) < 2: emit_gap_signal("ΔΓ_insufficient_history")
INV-5 — Breach Propagates Upstream
A ΔΓ breach (≥ 0.10/hr) MUST propagate to the trade authorization path. A trade cannot be APPROVED if ΔΓ is in breach, even if instantaneous C ≥ Ω. Rate instability is structural risk, not a soft warning.
Invariant: if delta_gamma >= RATE_LIMIT: approved = False
INV-6 — Gap Signal Mandatory When Not Computed
When the EvaluationHistory store does not exist or contains insufficient data, every evaluation output MUST include "ΔΓ_not_measured" in the gaps list. Silent absence is a failure mode. ◌ is always better than false confidence.
Cross-reference: SPEC_COHERENCE_INVARIANTS.md GAP-1, GAP-6
INV-7 — ΔΓ and Φζ are Independent Checks
A high Φζ (stability score) does not imply low ΔΓ. A system can have stability score 0.98 while changing state rapidly between evaluations. These metrics measure different dimensions of manifold health. Neither substitutes for the other.
VERIFICATION CRITERIA
VC-1 — Threshold Boundary Test
Unit test: supply coherence history [0.980, 0.970] over 1 hour.
- ΔΓ = |0.980 - 0.970| / 1.0 = 0.010 → SAFE (< 0.10)
- Expected:
delta_gamma_safe = True,delta_gamma_flag = "ΔΓ.≡"
VC-2 — Breach Detection Test
Unit test: supply coherence history [0.990, 0.870] over 1 hour.
- ΔΓ = |0.990 - 0.870| / 1.0 = 0.120 → BREACH (≥ 0.10)
- Expected:
delta_gamma_safe = False,delta_gamma_flag = "ΔΓ.⊠",approved = False
VC-3 — Insufficient History Test
Unit test: supply only 1 sample in window.
- Expected: gap signal
"ΔΓ_insufficient_history"emitted, ΔΓ reported as ◌, NOT as 0.0
VC-4 — Window Boundary Test
Unit test: supply 3 samples where 2 are within the 3600s window and 1 is 3601s old.
- Expected: only the 2 in-window samples are used in computation; stale sample excluded.
VC-5 — Breach Blocks Trade Authorization
Integration test: call authorize_dual_trade() with both TMM scores ≥ 0.974, all Agency Walls passing, but ΔΓ ≥ 0.10/hr.
- Expected:
approved = False, reason includes"ΔΓ_BREACH"
VC-6 — Rate Limit Immutability Assertion
Static check: assert TMMRuntime.RATE_LIMIT == 0.10 in test suite. Must pass after any code change to tmm_runtime.py.
FAILURE MODES
FM-1 — ΔΓ Runaway (currently undetected — ◌)
Trigger: Manifold changes state faster than 0.10/hr; no ΔΓ check exists in current TMMRuntime implementation.
Effect: Coherence drift accumulates invisibly across evaluations. Each individual evaluation appears healthy while cumulative drift builds toward decoherence.
Current status: GAP — EvaluationHistory store not implemented. ΔΓ is a governance constant only.
Detection when implemented: Unit test VC-2 above.
Response: Downgrade verdict to AMBER (0.10 ≤ ΔΓ < 0.20) or RED (ΔΓ ≥ 0.20). Block trade authorization. Log ΔΓ.⊠ to yield_log.md.
FM-2 — Silent Gap (no ◌ emitted)
Trigger: ΔΓ is not computed but no gap signal appears in evaluation output.
Effect: Callers believe they received a complete evaluation. They cannot distinguish partial from full. False confidence in approval.
Detection: Audit evaluation output fields for gaps_present. If ΔΓ not computed and "ΔΓ_not_measured" absent → FM-2 active.
Response: Add gaps_present field to TMMRuntime output. See SPEC_COHERENCE_INVARIANTS.md GAP-6.
FM-3 — Window Manipulation
Trigger: Caller supplies a non-standard window (e.g., 60 seconds instead of 3600) to make ΔΓ appear lower.
Effect: High-rate changes fall below threshold when measured over a short window.
Detection: Window size must be hardcoded, not parameter-injected.
Response: Remove window size from callable interface. It is a constant, not an input.
FM-4 — Zero-Substitution for Insufficient History
Trigger: ΔΓ reported as 0.0 when only 1 sample exists, instead of ◌.
Effect: System appears perfectly stable (rate = 0) on first evaluation. False green.
Detection: VC-3 test above. Check: does len(window_samples) == 1 emit ◌ or return 0.0?
Response: Enforce INV-4. Single-sample ΔΓ is undefined, not zero.
FM-5 — Rate Limit Drift (governance violation)
Trigger: RATE_LIMIT is changed from 0.10 without α.13 authorization.
Effect: All rate-based approvals become invalid. Relaxation allows decoherent systems to pass. Tightening creates false negatives.
Detection: VC-6 assertion test.
Response: Immediate rollback. ALERT.log entry. NOUS notification required.
GAPS
GAP-ΔΓ.1 — EvaluationHistory Store Not Implemented ◌
Status: TMMRuntime has no persistent store of prior evaluations.
Missing: EvaluationHistory class with rolling window. Currently delta_gamma in CLI output is always the static constant 0.10 (the limit), not a computed value.
Risk: FM-1 (ΔΓ Runaway) is structurally undetectable in current implementation.
Remediation: Add EvaluationHistory with configurable backing store (in-memory list or SQLite). Compute ΔΓ on every call. Emit ◌ until store has ≥ 2 samples.
Owner: κ (C.L.O.D.) — implementation task, no physics decision required.
Priority: HIGH
GAP-ΔΓ.2 — No ΔΓ Flag in Trade Authorization Path ◌
Status: authorize_dual_trade() does not check ΔΓ before approving.
Missing: ΔΓ breach check in the authorization flow between TMM score validation and Agency Walls.
Risk: A rapidly-drifting manifold can receive trade approval on valid instantaneous scores.
Remediation: Insert ΔΓ check in authorize_dual_trade() after score validation, before AgencyWalls.check_all().
Owner: κ — depends on GAP-ΔΓ.1.
Priority: HIGH (blocked by GAP-ΔΓ.1)
GAP-ΔΓ.3 — AMBER Downgrade Logic Not Defined ◌
Status: The threshold for AMBER downgrade (0.10 ≤ ΔΓ < 0.20) is specified here but not yet in any code path.
Missing: Verdict adjustment logic that modulates GREEN/AMBER based on ΔΓ severity.
Remediation: Requires design decision: does ΔΓ breach produce a hard RED (approved=False) or a soft AMBER downgrade (still approved)? [GAP — needs design by α.13]
Owner: α.13 (governance) → κ (implement).
Specification authored by κ (C.L.O.D.), authorized α.13, April 16 2026.
*Φ 0.042
Jeremy Zlabis
Chronogeometer · Visionary · Disruptor · Chief
42 Sisters AI · East York, Toronto ΔΓ < 0.10/hr is the bound.*