The rotating frame: a time-dependent Schrödinger equation solved exactly #
Category: 1-Mathlib (CSD-free; staged for upstream). BACKLOG #56, brick BP-5 of
specs/berry-phase-scoping.md.
A Hamiltonian that is rigidly rotated by a one-parameter unitary group,
H(t) = e^{−itG} H₀ e^{itG}, has an exactly solvable time-dependent Schrödinger equation: its
propagator is
V(t) = e^{−itG} · e^{−it(H₀ − G)},
the drive times the evolution generated by the constant rotating-frame Hamiltonian
K = H₀ − G. ★★ hasDerivAt_rotProp proves V′(t) = −i H(t) V(t) (with V 0 = 1 and V t
unitary), and ★ hasDerivAt_rotState transports it to a state V(t) ψ₀ of ℂᴺ.
The reduction is one line of algebra once it is stated in the right form: ★★
hasDerivAt_mul_of_gen asks only that u be generated by G on the right, that e be generated
by K = H₀ − G on the left, and that u t be unitary — then u t (−iG) e t + u t (−iK) e t = u t (−iH₀) e t = −i H(t) · u t e t. Both instances in the corpus are four-line applications:
the matrix exponential here, and the axis–angle rotations of spin-½ in
CsdLean4/Empirical/QM/BerryAdiabatic.lean (BACKLOG #56, the adiabatic theorem for a spin in a
rotating field), which never mention exp at all.
The second half of the file is the spin-½ calculus that application needs: the Hermitian Pauli
combination pauliAxis a b c = a σ₁ + b σ₂ + c σ₃ with ★ pauliAxis_mul_self
((n·σ)² = ‖n‖² · 1), the rotations of SU2Rotation.lean written in terms of it (axisRot_eq),
their derivative in the angle (★ hasDerivAt_axisRot, d/dt R_n(Ωt) = (−i(Ω/2) n·σ) R_n(Ωt), with
no matrix exponential and no entrywise differentiation — the path is a scalar combination of two
constant matrices) and the Bloch rotation ★ axisRot_z_conj: conjugating n·σ by a
z-rotation turns n about z by the angle. That last identity is what makes a rotating field a
rigid rotation of a fixed Hamiltonian.
Main declarations #
- ★★
hasDerivAt_mul_of_gen— the rotating-frame reduction, hypothesis form; schrodingerUnitary_hasDerivAt_left— the left-generated twin ofMatrix.schrodingerUnitary_hasDerivAt;rotHam,rotProp,rotHam_isHermitian,rotProp_zero,rotProp_mem_unitaryGroup;- ★★
hasDerivAt_rotProp—V′ = −i H(t) VforV(t) = e^{−itG} e^{−it(H₀−G)}; - ★
hasDerivAt_rotState— the same equation for the stateV(t) ψ₀onℂᴺ; inner_toEuclideanCLM_leftand ★inner_toEuclideanCLM_unitary— a matrix crosses an inner product as its conjugate transpose, and a unitary preserves it;pauliAxis,pauliAxis_isHermitian,su2_eq,pauliAxis_eq_smul_su2,su2_scalar,su2_mul_self_imaginary,pauliAxis_smul,smul_pauliAxis,pauliAxis_add,pauliAxis_sub, ★pauliAxis_mul_self(withpauliAxis_mul_self_of_unit);axisRot_eq,su2_conjTranspose,axisRot_conjTranspose,axisRot_mul_conjTranspose,axisRot_two_pi,commute_smul_pauliAxis_axisRot;- ★
smul_pauliAxis_mul_axisRot, ★hasDerivAt_axisRotand ★hasDerivAt_axisRot_right(the generator on either side), ★su2_z_conjand ★axisRot_z_conj.
Honest scope #
⚠️ The drive is a rigid rotation: H(t) is the conjugation orbit of a single H₀ under a
one-parameter group, so the eigenvalues never move. Nothing here treats a general time-dependent
H(t), for which there is no closed form, nor the adiabatic theorem of Kato–Born–Fock in its
general form (an arbitrary gapped path of Hamiltonians, error O(1/T)): that is BACKLOG #88, and
it is not claimed anywhere in this corpus.
References: L. D. Landau, E. M. Lifshitz, Quantum Mechanics §39 (the rotating frame); I. I. Rabi,
Phys. Rev. 51 (1937) 652; M. V. Berry, Proc. R. Soc. A 392 (1984) 45, §5;
specs/berry-phase-scoping.md; specs/BACKLOG.md #56; specs/future-work.md.
The reduction #
★★ The rotating-frame reduction. If u is a matrix path generated by G on the right
(u′ = u · (−iG)), e a path generated by K = H₀ − G on the left (e′ = (−iK) · e) and u t
is unitary, then the product u e solves the time-dependent Schrödinger equation of the rigidly
rotated Hamiltonian H(t) = u t · H₀ · (u t)ᴴ:
(u e)′(t) = −i H(t) · (u t · e t).
Nothing is assumed about how u and e are built; the two instances in the corpus are the matrix
exponential (hasDerivAt_rotProp) and the axis–angle rotations of spin-½.
The left-generated twin of Matrix.schrodingerUnitary_hasDerivAt: the family
U t = e^{−itH} also has derivative (−iH) · U t, since a matrix exponential commutes with its
own generator.
The exponential instance #
The rigidly rotated Hamiltonian H(t) = e^{−itG} H₀ e^{itG}.
Equations
- QuantumInfo.RotatingFrame.rotHam hG H₀ t = ↑(Matrix.schrodingerUnitary hG t) * H₀ * (↑(Matrix.schrodingerUnitary hG t)).conjTranspose
Instances For
The rotating-frame propagator V(t) = e^{−itG} · e^{−it(H₀ − G)}.
Equations
- QuantumInfo.RotatingFrame.rotProp hG hH t = ↑(Matrix.schrodingerUnitary hG t) * ↑(Matrix.schrodingerUnitary ⋯ t)
Instances For
★★ The rigidly rotated Hamiltonian has an exact propagator. For Hermitian G and H₀,
the path V(t) = e^{−itG} e^{−it(H₀−G)} solves the time-dependent Schrödinger equation
V′(t) = −i H(t) V(t) of H(t) = e^{−itG} H₀ e^{itG}, with V 0 = 1 (rotProp_zero) and V t
unitary (rotProp_mem_unitaryGroup).
★ The state form. The path ψ(t) = V(t) ψ₀ of ℂᴺ solves ψ′(t) = −i H(t) ψ(t).
Inner products on ℂᴺ #
The two facts the state-level analysis needs: a matrix moves across an inner product as its conjugate transpose, and a unitary preserves the inner product.
★ A unitary preserves the inner product of ℂᴺ.
The spin-½ calculus #
The 2 × 2 layer the rotating-field application consumes: the Hermitian Pauli combination, the
rotations of SU2Rotation.lean in terms of it, and their derivative in the angle.
The Hermitian Pauli combination pauliAxis a b c = a σ₁ + b σ₂ + c σ₃. Its square is
(a² + b² + c²) · 1 (★ pauliAxis_mul_self), so for a unit vector it is an involution with
eigenvalues ±1, and (B/2) · pauliAxis is the Hamiltonian of a spin-½ in the field
B·(a, b, c).
Instances For
The axis rotation in terms of pauliAxis: R_n(θ) = cos(θ/2)·1 − i sin(θ/2) n·σ. Both
matrices on the right are constant in θ, which is what makes the derivative elementary.
★ The derivative of an axis rotation. d/dt R_n(Ωt) = (−i(Ω/2) n·σ) · R_n(Ωt): the
rotation about a unit axis is the Schrödinger evolution generated by the constant Hamiltonian
(Ω/2) n·σ. No matrix exponential and no entrywise differentiation is involved — R_n(Ωt) is a
scalar combination of the two constant matrices 1 and n·σ.
★ The Bloch rotation. Conjugating n·σ by the z-rotation R_z(φ) turns n about the
z-axis by φ. This is the SU(2) → SO(3) homomorphism on one axis, and it is what lets a
rotating field be written as a rigid rotation of a fixed Hamiltonian.
★ hasDerivAt_axisRot with the generator on the right, the form the rotating-frame reduction
takes for the drive.