# Logbook — 2026-04-13 — S2 expansion (|α|=1, 5) + H1 Floquet lock-tolerance + correction to S2-falsification

**Context.** Guardian cleared the falsification and recommended:
(i) S2 sheets at |α| ∈ {1, 5} to complete the arg C(|α|, φ_α) map;
(ii) H1 (Floquet lock-tolerance) promoted as the cheapest protocol-
identity test; (iii) an unwrapped arg C panel; (iv) explicit
arg C(|α|, φ_α) S3-replacement. All four done in this entry. One
self-correction to the previous falsification logbook is also issued.

**Verdict.** Three findings:

1. **|C|(δ₀, φ_α) is φ_α-independent to machine precision at all three
   |α| ∈ {1, 3, 5}.** Worst |Δ|C|| vs φ_α = 0 reference: 3×10⁻¹⁵ (α=1),
   7×10⁻¹³ (α=3), 7×10⁻¹⁵ (α=5). The matrix-element-magnitude theorem
   holds on the entire lineshape, not just the carrier.

2. **The closed-form theory `arg C(δ_0=0, φ_α) = 90° + 2η|α|·cos φ_α`
   matches the full engine exactly — to 10⁻¹¹ deg RMS**, not
   approximately. The term "η-dressing" used in the previous
   falsification logbook was wrong; there is no dressing, only a linear
   phase that wraps on the principal branch when 4η|α| > 2π (at |α| ≥ 5
   for η = 0.397). Unwrapped ranges match 4η|α| to 0.01° in both engines.

3. **H1 Floquet lock-tolerance is |α|-dependent.** At |α| = 0, |C| is
   essentially flat in ε = ω_pulse/ω_m − 1 across ±2.5%; at |α| = 3,
   |C| has a resonant peak with FWHM ≈ 3.3% in ε. The published
   Δω_m/ω_m ≲ 1/(2πN) ≈ 0.72% sits comfortably inside the α = 3
   tolerance window.

-----

## 1. S2 expansion — sheets at |α| ∈ {1, 5}

Wall times: |α|=1 in 38 s; |α|=5 in 203 s. Worst Fock leakage:
5×10⁻²² (α=1, nmax=30), 8×10⁻¹⁴ (α=5, nmax=80). Convergence fine.

Files:
- [../numerics/S2_delta_phi_alpha1.h5](../numerics/S2_delta_phi_alpha1.h5)
- [../numerics/S2_delta_phi_alpha5.h5](../numerics/S2_delta_phi_alpha5.h5)

φ_α-independence of |C| across all three sheets:

| |α|  | nmax | worst \|Δ\|C\|\| vs φ_α=0 ref |
|------|------|--------------------------------|
| 1    | 30   | 3.11 × 10⁻¹⁵                   |
| 3    | 40   | 6.63 × 10⁻¹³                   |
| 5    | 80   | 6.77 × 10⁻¹⁵                   |

Matrix-element-magnitude theorem confirmed at three |α| values, not
just one. The theorem is independent of |α|, so this is a consistency
check rather than a new result per se — but it was worth doing before
moving on.

## 2. Correction to `2026-04-13-S2-falsification.md` — no η-dressing

The previous falsification entry used the phrase "η-dressed" to describe
the difference between R1 and full engine arg C curves. Guardian flagged
this as imprecise; the actual situation is stronger.

**Corrected statement.** At δ₀ = 0, arg C is given *exactly* by

```
arg C(δ_0 = 0, |α|, φ_α) = 90° + 2η|α| · cos φ_α   (mod 360°)
```

in both engines, where "exactly" means the unwrapped measured trace
matches this expression to 10⁻¹¹ deg RMS (see the "Residual (unwrapped)"
panel of [../plots/S2_combined.png](../plots/S2_combined.png)). The only
difference between full and R1 traces is the value of η: at η = 0.04
(R1), the amplitude 2η|α| ranges from 4.58° to 22.9° (for |α| up to 5),
stays within one principal branch, and the curve is a clean low-
amplitude cosine. At η = 0.397 (full), the amplitude ranges from 22.7°
to 113.7°, and the cosine wraps on the principal branch.

**Unwrapped range = 4η|α| in both engines:**

| |α| | full measured | theory 4η_full|α| | R1 measured | theory 4η_R1|α| |
|-----|---------------|--------------------|-------------|-----------------|
| 1   | 90.99°        | 90.99°             | 9.17°       | 9.17°           |
| 3   | 272.96°       | 272.96°            | 27.50°      | 27.50°          |
| 5   | 454.93°       | 454.93°            | 45.84°      | 45.84°          |

The N = 22 pulse accumulation does nothing nonlinear to arg C at
δ_0 = 0. The rotation axis tilt 2η|α|·cos φ_α is imparted per pulse
by the matrix element, and the N pulses accumulate to a π/2 rotation
around that tilted axis, giving the final Bloch vector at
(−sin θ, cos θ, 0) with θ = 2η|α|·cos φ_α — whence arg C = 90° + θ,
*by 3D rotation geometry*, not by approximation.

This is a cleaner result than the falsification logbook reported. The
"1.5 motivations" framing stands; the claim "η-dressing produces the
complicated-looking arg C curve" does not. The apparent complexity is
purely the principal-branch wrap.

## 3. Plots generated

- [../plots/S2_alpha1_summary.png](../plots/S2_alpha1_summary.png),
  [../plots/S2_alpha1_residuals.png](../plots/S2_alpha1_residuals.png):
  single-sheet figures for |α| = 1 (auto-generated by plot_S2.py).
- [../plots/S2_alpha5_summary.png](../plots/S2_alpha5_summary.png),
  [../plots/S2_alpha5_residuals.png](../plots/S2_alpha5_residuals.png):
  same for |α| = 5.
- **[../plots/S2_combined.png](../plots/S2_combined.png)** — headline
  synthesis (Guardian flags 2 + 4):
  - Row 1: |C|_full heatmaps at |α| ∈ {1, 3, 5}, all showing identical
    vertical banding.
  - Row 2: wrapped arg C (left), unwrapped arg C vs φ_α with theory
    overlay (centre), R1 linear regime (right).
  - Row 3: S3-replacement scatter arg C_full(|α|, φ_α) at δ_0 = 0,
    residual vs cos theory (now vanishing to 10⁻¹¹ deg RMS after the
    unwrap fix), and unwrapped range vs |α| confirming 4η|α|.
- [../plots/H1_lock_tolerance.png](../plots/H1_lock_tolerance.png) — see §4.

Driver: [../numerics/plot_S2_combined.py](../numerics/plot_S2_combined.py).

## 4. H1 — Floquet lock-tolerance

Driver: `execute_H1` in [../numerics/run_slices.py](../numerics/run_slices.py).
Output: [../numerics/H1_lock_tolerance.h5](../numerics/H1_lock_tolerance.h5).
Plot: [../numerics/plot_H1.py](../numerics/plot_H1.py).
Wall time 1.7 s (81 ε × 2 |α| values at 3 detuning points each).

**Protocol.** ε = t_sep_factor − 1 = ω_m/ω_pulse − 1. Swept over [−2.5%,
+2.5%] in 81 points. Measured |C|(ε) at δ_0 = 0 for |α| ∈ {0, 3}.

### 4.1 |α| = 0: effectively lock-insensitive

|C|(ε) varies only from 0.917 (at ε = 0) to 0.967 (at ε = ±2.5%) — a
5% variation across the full sweep. Contrast *rises* as ε is moved
away from the strobe point. Mechanism: at |α| = 0 the motional state
is |0⟩; inter-pulse free evolution has no effect (|0⟩ has no excited
Fock structure to accumulate phase). The weak ε-dependence that does
exist comes from the fact that each pulse creates a small motional
excursion ~η, and inter-pulse rotation of that excursion depends on ε
— but the effect is second-order in η and small.

There is no "lock tolerance" at |α| = 0 in the usual sense; the protocol
is robust to modest ε at ground state.

### 4.2 |α| = 3: sharp resonance, matches the published scaling

|C|(ε) has a resonant peak: rises to 0.958 near ε ≈ +0.8%, falls to
0.15 at ε = ±2.5%, with FWHM ≈ 3.3% in ε. Sample values:

| ε (%) | \|C\|(α = 3) |
|------:|-------------:|
|  −2.50| 0.146        |
|  −1.88| 0.291        |
|  −1.25| 0.764        |
|  −0.63| 0.909        |
|  +0.00| 0.917        |
|  +0.63| 0.946        |
|  +1.25| 0.837        |
|  +1.88| 0.299        |
|  +2.50| 0.149        |

The published tolerance Δω_m/ω_m ≲ 1/(2πN) = 1/(2π·22) = 0.72% sits
inside the plateau region: |C|(ε = ±0.72%) ≈ 0.92, only marginally
below the ε = 0 value. Noticeable degradation begins at ±1.25% and is
catastrophic by ±2%.

This confirms the Hasse2024 order-of-magnitude scaling and quantifies
the decoherence window. For a practical phase-lock spec, "Δω_m/ω_m ≲ 1%
over the 17 μs pulse-train duration" is the appropriate operational
criterion for |α| ≈ 3 operation.

### 4.3 Small asymmetry in |α| = 3 peak

The |α| = 3 peak appears at ε ≈ +0.008, not ε = 0. This is consistent
with the carrier-bias offset of −0.20 MHz/(2π) seen in S1 (peak of
|C|(δ_0) off resonance), which corresponds to a finite-δt carrier-shift
effect. These two biases should be quantitatively the same phenomenon
and will be tested directly when R2 lands. *Recorded as a prediction for
the R2 logbook entry.*

## 5. Scope implications

- The **stroboscopic-lock diagnostic** half-motivation (v0.3 §3.1
  motivation 2) is now fully delivered by H1. The measurable quantity is
  the |α|-dependent FWHM of |C|(ε); at |α| = 3 this is 3.3%, setting the
  operational phase-stability target at ~1% fractional.
- The **arg C position-channel** motivation is now fully closed for
  coherent states at δ_0 = 0: arg C = 90° + 2η|α|cos φ_α exactly. No
  further slice is needed to validate this claim.
- The **Doppler-broadening motivation** remains falsified (logbook
  `2026-04-13-S2-falsification.md` §4).
- **Net:** WP-E is nearly done for coherent states. Remaining work:
  R2 (to explain the carrier-bias and finite-δt effects); v0.4 README
  rewrite; Architect consultation on whether to rename the WP (Guardian
  closing note).

## 6. Outstanding actions

- [ ] R2 implementation — driver-level instantaneous-pulse reference.
      Prediction to test: R2 should put the |C|(δ_0) peak at δ_0 = 0
      exactly (no −0.20 MHz/(2π) bias), and the H1 α=3 peak at ε = 0
      exactly. If both predictions hold, the finite-δt carrier bias is
      cleanly isolated as Δt (R1 − R12 = R1 − R2 at η → 0).
- [ ] Architect consultation re: WP-E renaming ("The Position-Phase
      Channel of Stroboscopic Analysis"?). Guardian's closing note.
- [ ] v0.4 README rewrite.

## 7. Files added in this entry

- [../numerics/S2_delta_phi_alpha1.h5](../numerics/S2_delta_phi_alpha1.h5)
- [../numerics/S2_delta_phi_alpha5.h5](../numerics/S2_delta_phi_alpha5.h5)
- [../numerics/H1_lock_tolerance.h5](../numerics/H1_lock_tolerance.h5)
- [../numerics/plot_S2_combined.py](../numerics/plot_S2_combined.py)
- [../numerics/plot_H1.py](../numerics/plot_H1.py)
- [../plots/S2_alpha1_summary.png](../plots/S2_alpha1_summary.png)
- [../plots/S2_alpha1_residuals.png](../plots/S2_alpha1_residuals.png)
- [../plots/S2_alpha5_summary.png](../plots/S2_alpha5_summary.png)
- [../plots/S2_alpha5_residuals.png](../plots/S2_alpha5_residuals.png)
- [../plots/S2_combined.png](../plots/S2_combined.png)
- [../plots/H1_lock_tolerance.png](../plots/H1_lock_tolerance.png)
- This entry.

[../numerics/run_slices.py](../numerics/run_slices.py) extended with
`execute_H1`. Engine
[../../scripts/stroboscopic_sweep.py](../../scripts/stroboscopic_sweep.py)
unchanged. No README.md edit (Guardian cadence).

*Next entry: R2 driver + carrier-bias interpretation.*
