RecordLayer/HamiltonianShift: the shift the stroke Hamiltonian generates #
Category: 7-SigmaLayer (dynamical measurement) — specs/BACKLOG.md §A; brick 3 of
specs/frozen-base-obstruction-scoping.md, third step (chart-level generation of each
component of the joint lift).
What this is #
JointLift.lean took the torus shift Δ as a parameter and proved that every
conserved-data shift is harmless to records, Born and Liouville measure. This module builds
the shift the interaction Hamiltonian actually produces, and proves — at the chart level, on
regular data — that it is what the stroke Hamiltonian generates in the conjugate directions.
The setting. Conserved data d = (m, θ₁, q) (ConservedData): context rates, register,
pointer. The chart positions are x = (m, rep θ₁) ∈ ℝ^{N+1} (chartPos) and the momenta
are their conjugates — the N moment-fibre phases and θ₂. The weights the stroke reads are
W(x) = arcWeights ε x, and arcWeights_chartPos says they are exactly the arena's
pointerWeights. The stroke Hamiltonian, for a fixed pointer q, is
𝓗_t(x, y) = ṫ(t) · (π/2) · E(W(x), q), E(w, q) = ⟨q, H(w) q⟩ / ‖q‖²
(strokeH, pointerEnergy): the ramped coupling energy whose Schrödinger flow drives the
pointer (rampedU_schrodinger, coupling_hamiltonian_duality), now read as a function on the
base chart through the weights. Hamilton's equations in the chart are
ẋ = ∂ᵧ𝓗 = 0, ẏᵢ = −∂ₓᵢ𝓗_t = −ṫ(t) (π/2) Σₖ Eₖ(q) ∂ᵢWₖ(x)
(dMom_strokeH, dPos_strokeH, hamiltonianField_strokeH): the positions — rates and
register, everything the record reads — are frozen, and the back-reaction goes entirely
into the momenta. This is the frozen-base obstruction dissolved rather than denied: the base
moves, but along the moment fibre, where the record cannot see it.
Evaluating along the actual pointer trajectory q(s) = strokeTraj ε d s and integrating over
the stroke gives the momentum shift
shiftReal ε d i = −Σₖ (∫₀¹ ṫ (π/2) Eₖ(q(s)) ds) · ∂ᵢWₖ(x₀)
and hamiltonianShift ε d is that shift read on the arena torus — the Δ fed to
jointLift.
Results #
pointerEnergy,pointerEnergy_eq_sum,hasFDerivAt_pointerEnergy,continuous_pointerEnergy— the projective coupling energy: well defined onℙ, linear in the weights with gradientenergyGradient, continuous in the pointer.arcWeights,arcWeights_chartPos,contDiffAt_arcWeights— the chart weights agree with the arena weights and areC^∞at every regular position (RegularPos: every rate in(2ε, 1), so both non-smooth points of the circle distance — the cell midpoint and its antipode — fall inside a plateau of the profile).OffCorridor,fderiv_arcWeights_eq_zero_of_offCorridor— where the register sits strictly inside a plateau of every cell, the weights are locally constant.strokeTraj,strokeTraj_one_eq_pointerEvolve,strokeEnergy,avgEnergy,shiftReal,hamiltonianShift,measurable_hamiltonianShift— the trajectory, the stroke energies along it, and the integrated shift; measurable in the conserved data.strokeCurve,strokeCurve_zero,strokeCurve_one_snd,hamiltonianShift_eq_strokeCurve_one— the chart curve with frozen positions and accumulating momenta; its endpoint is the shift.- ★★
strokeCurve_hasDerivAt_hamiltonianField— on regular data the curve is an integral curve of the time-dependent stroke Hamiltonian evaluated on the pointer trajectory:γ̇(t) = X_{𝓗_t(q(t))}(γ(t))for everyt. - ★★
isJointLift_hamiltonianShift,jointLift_hamiltonianShift_measurePreserving— the joint lift with the generated shift is a joint lift (so landing, theε-Born sandwich, the outcome-sector identity and the moment-marginal law all hold for it) and preserves the arena Liouville measure. jointLift_eq_pointerEvolve_off_corridor— off the corridor the generated shift vanishes and the joint lift is the fibrewise witness, asSigmaLayer/UntriggeredFlow.leanpredicts for the untriggered region.
What this does and does not settle #
Chart level, regular data. Generation is proved in the Darboux chart of
SigmaLayer/ChartBracket.lean, for a time-dependent Hamiltonian (so stated directly as
HasDerivAt … (hamiltonianField (strokeH ε t …) …) rather than through the autonomous
IsHamiltonianCurve), and only on regular data. The construction itself is total: at a
non-regular position the weights need not be differentiable and fderiv is 0 there by
Mathlib's convention, so hamiltonianShift is defined everywhere and measurable everywhere;
the generation statement is claimed only where the weights are smooth.
Nonvanishing. That hamiltonianShift is actually non-zero — that the integrated energies
against the weight derivatives produce phases differing on two coordinates supporting the
state, which is what jointLift_base_moves_of_ne needs — is not claimed here. The
computation is one about the coupling generators along the trajectory: in a collar where only
one weight Wₖ varies the stroke Hamiltonian is ṫ(π/2) Wₖ hₖ, so Eₖ is conserved along
the trajectory and vanishes on the ready pointer (hₖ is off-diagonal against e₀), while at
a shared cell edge two weights vary at once and the energies are not conserved. This
heuristic is paper-side and not formalised.
Arena level. Nothing here identifies jointLift c ε (hamiltonianShift ε) with the time-1
map of a Hamiltonian flow on the arena Kähler manifold — the chart→arena transport of the
generation statement is what is missing (⚠️ RESIDUE(R-016)), now with the chart-level
generation of the shift components in hand.
References #
specs/frozen-base-obstruction-scoping.md (brick 3); specs/future-work.md;
RecordLayer/JointLift.lean (jointLift, isJointLift_jointLift,
jointLift_measurePreserving, jointLift_base_moves_of_ne);
RecordLayer/JointFlowTransfer.lean (IsJointLift); RecordLayer/PointerGeneration.lean
(rampedU_schrodinger, couplingUAt); RecordLayer/PointerHamiltonianField.lean
(coupling_hamiltonian_duality, couplingEnergy); RecordLayer/SmoothProfile.lean
(contDiff_smoothArcWeight_lift, of which contDiffAt_smoothArcWeight_lift₃ is the joint
three-variable version); SigmaLayer/ChartBracket.lean (hamiltonianField, dPos, dMom);
SigmaLayer/ChartIntegralCurve.lean (IsHamiltonianCurve,
translationCurve_isHamiltonianCurve); SigmaLayer/UntriggeredFlow.lean.
The projective coupling energy #
The coupling energy scales quadratically under complex rescaling of the state.
The projective coupling energy E_w([v]) = couplingEnergy w v / ‖v‖²: the A4 energy
observable of the fixed-weight coupling, read on the pointer's projective space (the
normalised expectation ½⟨ψ, H(w)ψ⟩/‖ψ‖²). Well defined on the projective point by
couplingEnergy_smul; see pointerEnergy_mk.
Equations
Instances For
The projective energy at a representative.
The coupling operator is linear in the weights: H(w) = Σₖ wₖ H(eₖ) on every vector.
The coupling energy is linear in the weights.
The outcome energy Eₖ(q): the projective energy of the pure plane swap hₖ, the
k-th coefficient of the projective coupling energy in the weights.
Equations
Instances For
The projective coupling energy is linear in the weights: E_w(q) = Σₖ wₖ Eₖ(q).
The weight-gradient of the projective coupling energy at a fixed pointer state.
Equations
- CSD.RecordLayer.energyGradient q = ∑ k : Fin K, CSD.RecordLayer.outcomeEnergy k q • ContinuousLinearMap.proj k
Instances For
The projective coupling energy is differentiable in the weights, with derivative
energyGradient q.
The projective coupling energy is continuous on the pointer (descent through mk').
The weights on the joint chart #
The real lift of the cell midpoint loSum r k + r k / 2 (so cellMid r k = ↑(cellMidLift r k)).
Equations
- CSD.RecordLayer.cellMidLift r k = CSD.RecordLayer.loSum r k + r k / 2
Instances For
The weight field on the joint chart. Positions x : Fin (N+1) → ℝ carry the N
context rates x (castSucc k) = mₖ and the register lift x (last N) = θ₁; the weights are
the smooth arc profiles read in these coordinates. On the arena this is pointerWeights
(arcWeights_chartPos).
Equations
- CSD.RecordLayer.arcWeights ε x k = CSD.RecordLayer.smoothArcWeight ε (x k.castSucc) (CSD.RecordLayer.cellMid (Fin.init x) k) ↑(x (Fin.last N))
Instances For
The chart position of conserved data (m, θ₁, q): the rates, then the canonical lift
of the register.
Equations
- CSD.RecordLayer.chartPos d = Fin.snoc d.1 (CSD.RecordLayer.rep d.2.1)
Instances For
The arena weights of conserved data, in arena form (continuous in the data).
Equations
- CSD.RecordLayer.dataWeights ε d k = CSD.RecordLayer.smoothArcWeight ε (d.1 k) (CSD.RecordLayer.cellMid d.1 k) d.2.1
Instances For
The chart weights at the chart position of conserved data are the arena weights.
Joint smoothness of the arc weight in (rate, midpoint, register) #
★ The smooth arc weight is C^∞ jointly in the rate, the midpoint lift and the register
lift, at every point with 2ε < r < 1. The three-variable form of
contDiff_smoothArcWeight_lift: the circle distance is kinked only at the centre and the cut
locus, and both kinks fall inside plateaus of the profile (ε < r/2, r < 1); in the
transition zone the distance lift is locally the absolute value of an affine function that
does not vanish.
★ The chart weight field is C^∞ at every regular position — jointly in all the
rates and the register. This is what makes the base derivative ∂_m 𝓗 of the stroke
Hamiltonian meaningful on the joint chart, not only its register derivative.
Off-corridor data: the register sits strictly inside a plateau of every weight — in the
centre plateau (dist < m/2 − ε) or the outer plateau (m/2 < dist) of each cell.
Equations
- CSD.RecordLayer.OffCorridor ε d = ∀ (k : Fin N), dist d.2.1 (CSD.RecordLayer.cellMid d.1 k) < d.1 k / 2 - ε ∨ d.1 k / 2 < dist d.2.1 (CSD.RecordLayer.cellMid d.1 k)
Instances For
Off the corridor the chart weight field is locally constant around the chart position.
Off the corridor the weight field has zero derivative at the chart position.
The pointer trajectory and the energies along it #
The pointer trajectory of conserved data under the ramped stroke: q(s) = U(r(s), w) • q
with w the arena weights of the data.
Equations
Instances For
At the end of the stroke the trajectory is the pointer of the fibrewise witness — and
hence of every joint lift (IsJointLift.pointer_eq).
The stroke energy of outcome k along the trajectory, ṫ(s) · (π/2) · Eₖ(q(s)): the
k-th weight-coefficient of the time-dependent stroke Hamiltonian, evaluated on the moving
pointer.
Equations
- CSD.RecordLayer.strokeEnergy ε d k s = deriv Real.smoothTransition s * (Real.pi / 2 * CSD.RecordLayer.outcomeEnergy k (CSD.RecordLayer.strokeTraj ε d s))
Instances For
The stroke-averaged outcome energy ∫₀¹ ṫ(s) (π/2) Eₖ(q(s)) ds.
Equations
- CSD.RecordLayer.avgEnergy ε d k = ∫ (s : ℝ) in 0..1, CSD.RecordLayer.strokeEnergy ε d k s
Instances For
The Hamiltonian shift #
The real shift in chart direction i: −Σₖ (∫₀¹ ṫ (π/2) Eₖ(q(s)) ds) · ∂ᵢWₖ(x₀) — the
total impulse −∫₀¹ ∂ₓᵢ𝓗_s ds the stroke Hamiltonian delivers to the conjugate momentum
yᵢ, computed along the pointer trajectory at the frozen chart position x₀ = chartPos d.
Equations
- CSD.RecordLayer.shiftReal ε d i = -∑ k : Fin N, CSD.RecordLayer.avgEnergy ε d k * (fderiv ℝ (CSD.RecordLayer.arcWeights ε) (CSD.RecordLayer.chartPos d)) (Pi.single i 1) k
Instances For
The Hamiltonian shift: the real shifts of the N rate-conjugate angles and of the
register-conjugate θ₂, read on the arena torus. This is the Δ fed to jointLift.
Equations
- CSD.RecordLayer.hamiltonianShift ε d = (fun (j : Fin N) => ↑(CSD.RecordLayer.shiftReal ε d j.castSucc), ↑(CSD.RecordLayer.shiftReal ε d (Fin.last N)))
Instances For
The Hamiltonian shift is measurable — the hypothesis jointLift_measurePreserving
needs. The averaged energies are continuous in the data; the weight derivative is measurable
(measurable_fderiv_apply_const) though not continuous.
Off the corridor the shift vanishes: the weights are locally constant there.
The stroke Hamiltonian on the chart #
The time-dependent stroke Hamiltonian on the chart, for a fixed pointer q:
𝓗_t(x, y) = ṫ(t) · (π/2) · E(W(x), q) — the ramped coupling energy of the pointer, with the
weights read off the chart positions x (the N rates and the register; the momenta y are
their conjugates). It depends on the positions only, so the positions are frozen along its
flow and the momenta absorb −∫ ∂ₓ𝓗.
Equations
- CSD.RecordLayer.strokeH ε t q z = deriv Real.smoothTransition t * (Real.pi / 2 * CSD.RecordLayer.pointerEnergy (CSD.RecordLayer.arcWeights ε z.1) q)
Instances For
Chain rule: wherever the chart weights are differentiable, so is the stroke Hamiltonian,
with derivative the weight-gradient of the energy pulled back through W'.
∂ₓᵢ𝓗_t = ṫ (π/2) Σₖ Eₖ(q) ∂ᵢWₖ.
∂ᵧᵢ𝓗_t = 0: the stroke Hamiltonian is momentum-independent.
The Hamiltonian field of the stroke Hamiltonian: positions frozen, momenta driven by
−∂ₓ𝓗.
The generated chart curve #
The chart curve the stroke generates from the frozen data d: the positions stay at
the frozen chart position (the Hamiltonian is momentum-independent), and each conjugate
momentum accumulates −∫₀ᵗ ∂ₓᵢ𝓗_s ds, with 𝓗_s evaluated on the actual pointer
trajectory strokeTraj ε d s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
At the end of the stroke the momenta have moved by exactly the real shift.
The Hamiltonian shift is the endpoint of the generated curve, read on the torus.
★★ Chart-level generation of the Hamiltonian shift. On regular data — every context
rate strictly inside (2ε, 1), so the chart weights are smooth at the frozen position — the
stroke curve is an integral curve of the time-dependent stroke Hamiltonian, evaluated on the
actual pointer trajectory: γ̇(t) = X_{𝓗_t(q(t))}(γ(t)) for every t. The positions stay
frozen (∂ᵧ𝓗 = 0) and the momenta are driven by −∂ₓ𝓗_t — the fundamental theorem of
calculus applied to the continuous stroke energies. Together with
hamiltonianShift_eq_strokeCurve_one, this is the statement "the shift jointLift is fed
is what the stroke Hamiltonian generates in the conjugate directions".
Headline corollaries: the Hamiltonian shift fed to the joint lift #
Off the corridor, the Hamiltonian-shift joint lift is the fibrewise witness. Where the
register sits strictly inside a plateau of every cell the weights are locally constant, the
generated shift vanishes and the base does not move — exactly as SigmaLayer/UntriggeredFlow
predicts for the untriggered region.
★★ The Hamiltonian-shift joint lift is a joint lift. For every torus-invariant
context, landing, the ε-Born sandwich, the outcome-sector identity and the moment-marginal
law (JointFlowTransfer.lean) hold for the map whose base is shifted by what the stroke
Hamiltonian generates.
★★ Liouville's theorem for the Hamiltonian-shift joint lift. The generated shift is
measurable (measurable_hamiltonianShift), so jointLift_measurePreserving applies: the
back-reacting map preserves the arena Liouville measure.