First-Principles Capacity Computation
Experiment V2.01: First-Principles Capacity Computation
Status: COMPLETE
Goal
Compute the timing capacity C_t purely from QFT Wightman functions, with no metric input to the capacity definition. Establish that the full pipeline
Background → Wightman G+(Δτ) → UDW response F(Ω) → QFI → C_t
is non-circular: geometry enters only through the Wightman function, and temperature/metric are outputs, never inputs.
Pipeline Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐ ┌────────────┐
│ Background │ │ Wightman G+(Δτ) │ │ UDW F(Ω) │ │ QFI → C_t │
│ (M,g) fixed │────▶│ KMS state │────▶│ Response │────▶│ Capacity │
│ │ │ wightman.py │ │ detector.py │ │ capacity.py│
└─────────────────┘ └──────────────────┘ └─────────────┘ └────────────┘
↑ │
ONLY place Temperature
geometry enters is OUTPUT
Modules
| Module | Purpose | Lines | Tests |
|---|---|---|---|
wightman.py | Wightman functions for 4 backgrounds | ~200 | 13/13 |
detector.py | UDW response, detailed balance, T extraction | ~370 | 10/10 |
qfi.py | QFI for phase, parameter, temperature estimation | ~185 | (via capacity) |
capacity.py | C_t definitions, profiles, slope law analysis | ~260 | 10/10 |
Total: 33/33 tests passing.
Results
Phase 1: KMS Validation (7/7 PASS)
All Wightman functions satisfy the KMS condition G+(Δτ + iβ) = G+(Δτ) to machine precision (MSE < 10⁻³²):
| Background | Parameters | β = 1/T | KMS MSE |
|---|---|---|---|
| Rindler | a = 0.5 | 4π | 6.8 × 10⁻³³ |
| Rindler | a = 1.0 | 2π | 1.3 × 10⁻³⁴ |
| Rindler | a = 2.0 | π | 1.5 × 10⁻³⁵ |
| Rindler | a = 5.0 | 2π/5 | 4.1 × 10⁻³⁷ |
| de Sitter | H = 0.5 | 4π | 6.8 × 10⁻³³ |
| de Sitter | H = 1.0 | 2π | 1.3 × 10⁻³⁴ |
| Schwarzschild | M=1, r=10 | — | 7.4 × 10⁻³² |
Phase 2: Temperature Extraction (9/9 PASS)
Detailed balance gives exact temperature extraction (0.0% error) for all backgrounds and parameter values:
- Rindler: T = a/(2π) recovered for a ∈ {0.3, 0.5, 1.0, 2.0, 3.0, 5.0}
- de Sitter: T = H/(2π) recovered for H ∈ {0.5, 1.0, 2.0}
The extraction is non-circular: temperature enters only through the Wightman function, and is independently recovered from the detector response ratio.
Phase 3: Timing Capacity (Key Results)
Three C_t definitions were tested. Results for Rindler with σ = 8.0:
| a | T = a/(2π) | C_t (phase) | C_t (integrated) | C_t (thermal) |
|---|---|---|---|---|
| 0.3 | 0.048 | −4.75 | −6.87 | 5.81 |
| 0.5 | 0.080 | −3.64 | −5.37 | 5.08 |
| 1.0 | 0.159 | −2.14 | −3.37 | 4.08 |
| 2.0 | 0.318 | −0.64 | −1.37 | 3.08 |
| 3.0 | 0.477 | +0.23 | −0.20 | 2.49 |
| 5.0 | 0.796 | +1.33 | +1.28 | 1.75 |
Key observations:
- C_t increases monotonically with temperature (all definitions)
- Phase and integrated definitions can be negative (sub-bit information)
- Thermal definition is always positive and decreasing — it measures how distinguishable temperature changes are (easier at low T)
Phase 3b: Slope Law Test
The slope law T = (1/2π) × Γ* × |d(ln C_t)/d(ln κ)| was tested:
| Definition | Γ* (median) | CV | Holds? |
|---|---|---|---|
| Phase | 0.321 | 33.2% | No |
| Integrated | — | — | Too few positive C_t |
| Thermal | 2.405 | 28.2% | No |
The slope law does NOT hold for any of these naive definitions. The coefficient of variation (CV) exceeds 10% in all cases, meaning Γ* is not constant across the acceleration range.
This is a genuine scientific finding. It means the “correct” capacity definition — the one that makes the slope law exact — has not yet been found. This motivates Experiments V2.02–V2.06.
Phase 4: Cross-Background Comparison (4/4 PASS)
At matched temperature, Rindler and de Sitter give identical C_t:
| T | C_t (Rindler) | C_t (de Sitter) | Difference |
|---|---|---|---|
| 0.10 | −3.142 | −3.142 | 0.00% |
| 0.20 | −1.646 | −1.646 | 0.00% |
| 0.50 | +0.329 | +0.329 | 0.00% |
| 1.00 | +1.825 | +1.825 | 0.00% |
This is expected: Rindler and de Sitter share the same KMS structure (both have G+(Δτ) ∝ 1/sinh²), so the detector response depends only on T. This cross-check validates the pipeline but does not test geometric sensitivity.
Phase 5: QFI Spectrum Analysis
The optimal detector gap Ω* that maximizes timing QFI satisfies a universal ratio:
| a | T | Ω* | Ω*/T | QFI_timing | QFI_T |
|---|---|---|---|---|---|
| 0.5 | 0.080 | 0.216 | 2.72 | 6.5 × 10⁻³ | 340.6 |
| 1.0 | 0.159 | 0.433 | 2.72 | 5.2 × 10⁻² | 85.1 |
| 2.0 | 0.318 | 0.866 | 2.72 | 4.1 × 10⁻¹ | 21.3 |
| 4.0 | 0.637 | 1.732 | 2.72 | 3.3 × 10⁰ | 5.3 |
Finding: Ω/T ≈ 2.72 is universal.* The optimal gap for timing estimation is always ≈ 2.72 × T, independent of the background parameter. This is an analytic prediction from the Bose-Einstein response function:
F_timing(Ω) = Ω² × 4A × Ω/(exp(Ω/T)−1)
maximized at Ω/T = x* where d/dx[x³/(eˣ−1)] = 0, giving x* ≈ 2.82. The discretization gives 2.72, converging to 2.82 with finer grids.
Also: QFI_timing ∝ T³ (scaling as a³): each doubling of a gives 8× QFI. This follows analytically from F_timing = 4A T³ x³/(e^{x}−1).
Non-Circularity Audit
V3 Fix (Circularity Resolution)
The original V2.01 code had a circularity problem: functions like Ct_phase(),
Ct_integrated(), Ct_thermal(), qfi_phase_detector(), and
qfi_phase_optimal() all took T_kms (the KMS temperature) as their first
argument. This made temperature an INPUT to the capacity computation, which
is logically circular for a program where temperature must be an OUTPUT.
The fix: The non-circular functions already existed (Ct_from_wightman()
and qfi_timing_from_response()). The V3 update:
-
Added
DeprecationWarningto all circular functions (Ct_phase,Ct_integrated,Ct_thermal,qfi_phase_detector,qfi_phase_optimal). Their docstrings now begin with “ANALYTIC SHORTCUT” and direct users to the non-circular alternatives. -
Updated
capacity_profile()documentation to clearly distinguishmethod="wightman"(non-circular, default) frommethod="analytic"(circular shortcut). The analytic path now emits a deprecation warning. -
Added
non_circularity_audit()function that returns a structured explanation of both paths.
Pipeline Status (Post-V3)
| Component | Inputs | Outputs | Circular? |
|---|---|---|---|
| wightman.py | Background type + params | G+(dt) | No — G+ is defined by QFT |
| detector.py (regularized) | G+(dt) + detector gap Omega | F(Omega) | No — numerical FT of G+ |
| detector.py (analytic) | T_kms, Omega | F(Omega) | Yes — T is an input |
| qfi.py (qfi_timing_from_response) | F(Omega), omegas | QFI_timing | No — pure information theory |
| qfi.py (qfi_phase_optimal) | T_kms, sigma | QFI_timing | Yes — DEPRECATED |
| capacity.py (Ct_from_wightman) | G+(dt), sigma | C_t | No — canonical path |
| capacity.py (Ct_phase etc.) | T_kms, sigma | C_t | Yes — DEPRECATED |
The Two Paths
Non-circular (production pipeline):
G+(dt) --> response_spectrum_regularized() --> F(Omega)
--> qfi_timing_from_response() --> QFI_timing
--> Ct_from_wightman() --> C_t
Temperature NEVER appears as an input.
Analytic shortcut (validation only):
T_kms --> thermal_response_spectrum() --> F(Omega)
--> qfi_phase_optimal() --> QFI_timing
--> Ct_phase() --> C_t
Temperature IS an input. DEPRECATED -- use only for cross-validation.
Conclusions
-
Infrastructure validated. The Wightman → detector → QFI → C_t pipeline works end-to-end with 33/33 tests passing.
-
Non-circular temperature extraction confirmed. Detailed balance gives exact T for Rindler and de Sitter.
-
Slope law does NOT hold for naive C_t definitions. This is the central finding — we need to discover the “right” capacity definition that makes d(ln C_t)/d(ln κ) constant. This is the goal of Experiments V2.04–V2.06.
-
Universal optimal gap. Ω*/T ≈ 2.82 (analytic) is a prediction that can guide detector design in later experiments.
-
Cross-background equivalence at matched T. Expected but validates the pipeline. True geometric sensitivity requires going beyond KMS-equivalent backgrounds (V2.07+).
Next Steps → V2.02
Experiment V2.02 will implement the mode-sum Wightman computation to:
- Close the mild circularity in the analytic path
- Enable computation on backgrounds without known analytic Wightman functions
- Test C_t sensitivity to field mass, spin, and coupling