# Logbook — 2026-04-13 — S1 slice + R1 reference + R1 convergence check

**Context.** Follow-up to `2026-04-13-preflight-results.md`. Guardian
cleared preflight; this entry reports the first WP-E data: S1 slice
((δ₀, |α|) at φ_α = 0), the R1 reference (η = 0.04) on the same grid,
and a one-off R1 convergence cross-check (η = 0.04 vs η = 0.02) per
Guardian flag 1.

**Outcome.** Driver works; all four α values converged at the planned
nmax. Wall time well under the preflight estimate. R1 is well-linearised
(η = 0.04 → η = 0.02 differs in |C| by < 10⁻³, two orders of magnitude
below the η = 0.397 → η = 0.04 deviation of ~0.1). Three physics
findings worth flagging immediately for the v0.4 README; one analysis
caveat. No blockers.

-----

## 1. Driver and execution

- Driver: [../numerics/run_slices.py](../numerics/run_slices.py).
  Imports `stroboscopic_sweep` as a library, no engine modification.
- Output files (HDF5):
  - [../numerics/S1_delta_alpha.h5](../numerics/S1_delta_alpha.h5) —
    full + R1, 4 α × 121 δ.
  - [../numerics/R1_convergence.h5](../numerics/R1_convergence.h5) —
    η = 0.04 vs η = 0.02, 2 α × 41 δ.
- Grid: det_rel ∈ [−4.615, +4.615] (= ±6 MHz/(2π)), 121 points, step
  0.077 ≈ 0.10 MHz/(2π) — within v0.3 §8 Q4 spec.
- α ∈ {0, 1, 3, 5}; nmax ∈ {30, 30, 40, 80} per preflight §6.

**Wall time.** S1 full = 2.7 s; S1 R1 = 2.5 s; R1conv = 0.6 s. Total
≈ 6 s — far below the preflight estimate of "a few minutes". The α = 5
nmax = 80 cost (1.55 s for 121 points) was the dominant single run and
remains modest.

**Convergence.** `max_fock_leakage` at every (α, η) ≤ 6.6 × 10⁻¹², with
|α| = 5 the worst case. nmax = 80 is comfortably sufficient at |α| = 5;
the §6 plan for nmax-scaling at higher |α| is sound but conservative.

## 2. Physics observations from S1

### 2.1 Contrast at the carrier (δ = 0) is α-independent

|α| | |C|_full | |C|_R1 | σ_z      |
|----|----------|--------|----------|
| 0  | 0.9166   | 0.9992 | +0.1284  |
| 1  | 0.9166   | 0.9992 | +0.1284  |
| 3  | 0.9166   | 0.9992 | +0.1284  |
| 5  | 0.9166   | 0.9992 | +0.1284  |

The full-engine carrier contrast is **identical to seven decimals across
α ∈ {0, 1, 3, 5}**. The contrast deficit |C|_full − |C|_R1 ≈ 0.083 is
purely an η-driven spin–motion entanglement effect at the carrier
(⟨α|C|α⟩ structure), *not* Doppler broadening. Doppler broadening
appears only off-resonance.

This is a direct test of dossier §1.4 motivation 3: at the carrier
itself, the JSON-uniform value |C| ≈ 0.917 is reproduced exactly and is
α-independent. The provenance question "why does HDF5 report
0.61/0.71/0.84/0.75 vs. JSON's flat 0.56?" is now decisively answered
on the candidate-engine side: the candidate engine has no α-dependence
at δ = 0. The HDF5 series, having been classified as synthetic in
preflight, requires no further reconciliation here.

### 2.2 The position-phase channel is real and α-dependent

arg C at δ = 0:

|α| | arg C (full)  | arg C (R1, η = 0.04) | full − R1   |
|----|---------------|----------------------|-------------|
| 0  | +90.00°       | +90.00°              | 0°          |
| 1  | +135.49°      | +94.58°              | +40.91°     |
| 3  | −133.52°      | +103.75°             | −237.27° (mod 360 = +122.73°) |
| 5  | −42.54°       | +112.92°             | −155.46° (mod 360 = +204.54°) |

R1 phase shift is linear in α, ≈ +4.6° per unit α — consistent with a
linear k_eff · ⟨x⟩ position phase, scaled by η_R1 / η_full ≈ 0.10 vs the
full engine. Full engine shows much larger and **non-monotonic** phase
(wraps multiple times by α = 5), as expected from the exp(iηx̂) operator
once η · ⟨x⟩ is no longer small.

This is the first direct observation of dossier §1.3's `arg C` channel
in this WP. The R1 confirms the linear-LD prediction; the full engine
shows the η-driven nonlinear dressing. The channel exists, is
measurable, and behaves qualitatively as the principle predicts.

### 2.3 |C| peaks at a small negative detuning, α-independent

For all α, max|C| = 0.9242 occurs at det_rel = −0.154 (≈ −0.20 MHz/(2π)),
not at δ = 0. The peak value 0.9242 = exp(−η²/2) — the bare Debye–Waller
factor. The small negative bias is a finite-δt artefact of the carrier
rotation (the script computes dt to give π/2 at Ω_eff but the spin–motion
coupling produces a phase shift that biases the resonance). Cross-checked:
peak location is α-independent, confirming finite-time origin (not Doppler).

This is a clean signature of **Δt** (R1 − R12 in the §3.1 decomposition,
not Δη) and gives a quantitative target: the −0.20 MHz/(2π) bias should
vanish in R2 (instantaneous-pulse limit) once R2 is implemented.

## 3. R1 convergence cross-check (Guardian flag 1)

|α| | ⟨|Δ|C||⟩ (η = 0.04 − η = 0.02) | max|Δ|C|| |
|----|--------------------------------|-----------|
| 0  | 6.2 × 10⁻⁴                     | 9.4 × 10⁻⁴ |
| 3  | 6.2 × 10⁻⁴                     | 9.4 × 10⁻⁴ |

The η = 0.04 reference deviates from η = 0.02 by < 10⁻³ everywhere. The
expected scaling, since R1 should be linear and the residual is
quadratic, is:

```
|C|(η = 0.04) − |C|(η = 0.02) ≈ (η = 0.04)² / 2 − (η = 0.02)² / 2
                                = (0.0016 − 0.0004) / 2 = 6 × 10⁻⁴
```

— exactly what we measure. R1 is therefore well-linearised at η = 0.04,
and the residual scale is **two orders of magnitude below** the
η = 0.397 → η = 0.04 deviation (Δη ≈ 0.066 mean |C| difference). Per
Guardian's recommendation, this stays a one-off check; we do not run
η = 0.02 routinely.

## 4. Analysis caveat — phase residuals where |C| is small

The naïve mean |Δ arg| over the full det grid is dominated by points
in the Doppler tails where |C| is small (< 0.05) and `arg C` is
ill-defined numerically. Reported numbers in the analysis output (≈ 50°
to 120° mean residuals) reflect this artefact, not physics.

**For v0.4 plots:** mask phase residuals at |C| < 0.1 (or weight by
|C|) before reporting any aggregate Δ arg statistic. The point-by-point
residuals on the heatmap are correct; only the aggregates are misleading.
Recorded as a plotting convention, not a bug.

## 5. Guardian-flag amendments staged for v0.4 README

Per Guardian's "do not revise README yet" cadence, these are staged here
for the v0.4 edit:

- **§3.1 motivation 3 (provenance mismatch).** Update from "characterises
  a known mismatch" → "the motivation has been resolved at the data-
  artefact level (HDF5 = synthetic placeholder; see preflight); WP-E now
  has 2.5 motivations rather than 3, the half being the externalised
  dossier reconciliation". Wording per Guardian's forward-looking note.
- **§4a protocol amendment (lessons-learned).** Add: "engines must be
  independently implementable and produce physical Bloch vectors at the
  anchor point (|Bloch| ≤ 1); files failing either test are reclassified
  as non-engine artefacts and documented separately, not subjected to
  the four-candidate disambiguation." Per Guardian flag 4.
- **§4a per-pulse capture amendment.** Add: "if final-Bloch comparison
  resolves the gate, per-pulse capture is retained as a diagnostic tool
  for the main sweep but not required for clearance." Per Guardian flag 2.
- **§3.1 / §4 R2 convention reminder.** When R2 is implemented, the kick
  operator must use the displacement-generator sign convention of §2.2
  (code line 138). Per Guardian flag 1 of the closure review.

These are amendments to be folded in at v0.4 along with the S1+R1 data
narrative.

## 6. Outstanding actions

- [ ] Plot S1 |C|, arg C, σ_z heatmaps and Δη = (full − R1) residuals.
      Mask phase residuals at |C| < 0.1.
- [ ] Decide on S2 ((δ₀, φ_α) at |α| ∈ {1, 3, 5}) execution: the φ_α
      axis at 64 points is the next data drop.
- [ ] Implement R2 (instantaneous-pulse reference) at driver level,
      with §2.2 sign-convention cross-check.
- [ ] R12 (η → 0, δt → 0) follows trivially from R1 once R2 is in place.
- [ ] Folded-in v0.4 README per §5 amendments above and S1+R1 findings
      — *only after* S2 produces data.

## 7. Files added in this entry

- [../numerics/run_slices.py](../numerics/run_slices.py) — driver script.
- [../numerics/S1_delta_alpha.h5](../numerics/S1_delta_alpha.h5) — S1
  full + R1 dataset, 4 α × 121 δ.
- [../numerics/R1_convergence.h5](../numerics/R1_convergence.h5) —
  η = 0.04 vs η = 0.02 cross-check, 2 α × 41 δ.

No edits to README.md (Guardian cadence). No engine modifications. No
edits to dossier (out of scope).

*Next entry: S1 plots + S2 driver + S2 execution, in roughly that order.*
