The Aharonov–Bohm effect on the circle #
Category: 1-Mathlib (CSD-free; staged for upstream). BACKLOG #90, the continuum residue of #55.
QuantumInfo/AharonovBohmRing.lean is the lattice version: N sites, levels 2 cos((2πm + Φ)/N),
and the flux visible modulo a quantum and up to sign. This is the textbook continuum version on the
circle ℝ/2πℤ, where the twisted Hamiltonian (−i∂ − Φ)² = −(∂ − iΦ)² has the Fourier modes
ψ_n(x) = e^{inx} as its eigenfunctions with levels (n − Φ)², the flux quantum is 1, and the
same two operations are invisible.
circleMode n— the Fourier mode, with ★circleMode_eq_fourieridentifying it with Mathlib'sfourier nonAddCircle (2π)andcircleMode_periodicits periodicity;- ★★
twisted_deriv_circleMode—(∂ − iΦ)ψ_n = i(n − Φ)ψ_n, and ★★★twisted_eigen—−(∂ − iΦ)²ψ_n = (n − Φ)²ψ_n, the eigenvalue equation written out; circleEigval Φ n = (n − Φ)²; ★★isLeast_range_circleEigval— the ground level is the squared distance from the flux to the nearest quantum, attained at the moderound Φ;- ★★
range_circleEigval_add_oneand ★★range_circleEigval_neg— one whole quantum, and reversing the flux, permute the levels; - ★★★
exists_eq_of_range_circleEigval_eq— and those are the only two: two fluxes with the same level set differ by a whole quantum or are reflections of one another; - ★★
gauge_periodic_iff— the gauge that removes the flux lives on the circle only when the flux is a whole quantum, which is the continuum form of "the vector potential is not observable but the flux is".
Honest scope #
⚠️ No unbounded-operator theory. −(∂ − iΦ)² is written out as iterated derivatives of a
specific smooth function, not as a self-adjoint operator on L²(S¹) with a domain. The pin has the
skeleton — LinearPMap, its adjoint, IsSelfAdjoint — and nothing built on it: Mathlib has no
diagonal multiplication operator on a Hilbert basis and no spectrum of one
(MATHLIB-ABSENT(LinearPMap.diagonal, LinearPMap.spectrum)), and no unbounded spectral theory to put
them in (MATHLIB-ABSENT(file:Mathlib/Analysis/InnerProductSpace/UnboundedSpectrum)). So "spectrum"
here means the set of eigenvalues of the Fourier modes, Set.range (circleEigval Φ), and every
theorem below is about that set.
⚠️ The missing layer is built, elsewhere. As of 2026-09-30 the operator statements this module
does not make are made in CircleSobolev.lean
(BACKLOG.md #93, closed): twistedOp Φ is −(∂ − iΦ)² on L²(ℝ/2πℤ) as the diagonal operator
of these levels, ★★★ isSelfAdjoint_twistedOp and ★★★ spectrum_twistedOp give self-adjointness and
the honest spectrum, ★★★ twistedOp_toL2 shows it acts on every C² periodic function exactly as
the differential operator does, and ★★★ exists_eq_of_spectrum_twistedOp_eq is the determination
theorem below with spectrum in place of level set. What stays true of this module is what it
says: the eigenvalue equation here is pointwise on the modes, and Set.range (circleEigval Φ) is a
level set, not a spectrum.
circleMode_eq_fourier is the bridge that makes the family Mathlib's own: fourierBasis is a
Hilbert basis of L²(AddCircle 2π), so the modes are complete and the twist does not change them —
only their levels — but the step from that to "these are all the spectral values of a self-adjoint
operator" is not taken here.
⚠️ The flux quantum is 1 in this parametrisation, where the ring module's is 2π; the levels are
(n − Φ)² rather than 2 cos((2πm + Φ)/N), and the ground level rather than the top level is what
reads the flux. The two statements are analogues, not instances of one another.
⚠️ No solenoid and no double slit here either: the flux enters as the twist in the derivative, which is the minimal-coupling substitution taken as the definition of the model.
References: Y. Aharonov, D. Bohm, Phys. Rev. 115 (1959) 485; the lattice twin in
QuantumInfo/AharonovBohmRing.lean and its empirical reading in Empirical/QM/AharonovBohm.lean;
specs/berry-phase-scoping.md BP-4; specs/BACKLOG.md #90.
The Fourier modes of the circle #
The Fourier mode ψ_n(x) = e^{inx}, a function on ℝ of period 2π.
Equations
- QuantumInfo.AharonovBohmCircle.circleMode n x = Complex.exp (↑n * ↑x * Complex.I)
Instances For
★ The modes are Mathlib's Fourier family on AddCircle (2π), so fourierBasis applies to
them: they are a Hilbert basis of L² and the twist below does not change them.
The modes have period 2π.
The derivative of a mode: ψ_n' = i n ψ_n.
The twisted derivative and the levels #
The level of the mode n at flux Φ.
Equations
- QuantumInfo.AharonovBohmCircle.circleEigval Φ n = (↑n - Φ) ^ 2
Instances For
★★ The twisted derivative of a mode: (∂ − iΦ)ψ_n = i(n − Φ)ψ_n. The twist shifts the
label by the flux, which is the whole of the Aharonov–Bohm effect in one line.
The twisted derivative of a mode is a constant multiple of it, so it can be differentiated again.
★★★ The eigenvalue equation: −(∂ − iΦ)²ψ_n = (n − Φ)²ψ_n. The flux shifts every level by
shifting the label it is measured from, and no level is left where it was unless the shift is a
whole quantum.
The flux is determined by the levels #
★ No mode sits lower: the ground level is the squared distance from the flux to the nearest whole quantum.
The ground level is attained, at the mode nearest the flux.
★★ The ground level reads the flux: it is the squared distance from the flux to the nearest whole quantum, attained at the mode nearest it.
★★ One whole quantum changes nothing: adding 1 to the flux permutes the levels.
★★ The levels cannot see the sign of the flux, so the ambiguity below is real.
★★★ The flux is determined by the levels, exactly as far as it can be: two fluxes with the
same level set differ by a whole quantum, or are reflections of one another in one. With
range_circleEigval_add_one and range_circleEigval_neg the converse holds too, so this is the
continuum twin of the ring's exists_eq_of_range_ringEigval_eq.
The gauge that removes the flux #
The gauge factor e^{iΦx} that turns the twisted derivative into the plain one.
Equations
- QuantumInfo.AharonovBohmCircle.gaugeMode Φ x = Complex.exp (↑Φ * ↑x * Complex.I)
Instances For
★★ The vector potential is removable, the flux is not. The gauge factor that undoes the twist is a function on the circle exactly when the flux is a whole quantum; for any other flux it is multivalued, which is why the levels move.