The Jordan–von Neumann reconstruction of a Hermitian form from its quadratic form #
Category: 1-Mathlib (CSD-free; staged for upstream). The engine behind both Gleason-type
theorems of this repository: Busch's effect version (LF2/EffectGleason.lean, where it was first
written) and the projection version (Gleason/ProjectionPackage.lean, Gleason/Descent.lean).
A function q : ℂᴺ → ℝ that scales like q (c • v) = ‖c‖² q v, satisfies the parallelogram
law q (u + v) + q (u − v) = 2 q u + 2 q v, and is squeezed between 0 and ‖·‖² is the
quadratic form of a unique Hermitian matrix:
polar q u v = q (u + v) − q (u − v)is bi-additive (IsQuadraticLike.polar_add_left, the Jordan–von Neumann halving identity) andℝ-bihomogeneous (IsQuadraticLike.polar_smul_real), the upgrade fromℚtoℝcoming fromadditive_bounded_linear(Cauchy's equation with a local bound) instead of continuity, which is not assumed;sesq q u v = ¼ polar q u v − (i/4) polar q u (i • v)is sesquilinear (IsQuadraticLike.sesq_add_right,sesq_smul_right,sesq_conj_symm) withsesq q v v = q v(IsQuadraticLike.sesq_self);polarMatrix qis its matrix on the standard basis: Hermitian (IsQuadraticLike.polarMatrix_isHermitian) with ★IsQuadraticLike.eq_dotProduct : q v = star v ⬝ᵥ polarMatrix q *ᵥ v.
Also here, the two matrix facts every descent argument needs: a complex matrix is determined by
its quadratic form (matrix_eq_zero_of_quadForm_zero) and the trace of a product of Hermitian
matrices is real (trace_mul_isHermitian_real), with trace_mul_vecMulVec turning the trace
against a rank-one projector into the quadratic form.
Source #
Jordan–von Neumann 1935 (the parallelogram characterisation); Busch 2003,
quant-ph/9909073 (where the bounded-additive substitute for continuity is used).
Cauchy's functional equation with a local bound #
Cauchy's functional equation with a local bound. An additive g : ℝ → ℝ that is bounded
on [-1,1] is linear: g t = t · g 1.
No continuity is assumed. The proof is the classical squeeze on h y = g y − y · g 1: h is
additive, kills every integer (h m = m · h 1 = 0), and is bounded on [-1,1]; for any x and
any n ≥ 1, n · h x = h (n x − ⌊n x⌋) lands in that bounded window, so
|h x| ≤ (M + |g 1|)/n → 0.
Quadratic-like functions #
A quadratic-like function on ℂᴺ: degree-2 homogeneous under complex scaling, obeying
the parallelogram law, and squeezed between 0 and ‖·‖². The last two conditions replace
continuity in the Jordan–von Neumann argument (polar_smul_real).
q (c • v) = ‖c‖² q v.The parallelogram law.
0 ≤ q.q v ≤ ‖v‖².
Instances For
The polarised sesquilinear form sesq q u v = ¼ polar q u v − (i/4) polar q u (i • v),
the complex polarisation of q.
Equations
- Gleason.sesq q u v = ↑(Gleason.polar q u v) / 4 - Complex.I * ↑(Gleason.polar q u (Complex.I • v)) / 4
Instances For
The matrix of the polarised form on the standard basis, polarMatrix q j k = sesq q eⱼ eₖ.
Equations
- Gleason.polarMatrix q = Matrix.of fun (j k : Fin N) => Gleason.sesq q (EuclideanSpace.single j 1) (EuclideanSpace.single k 1)
Instances For
q 0 = 0.
q (−v) = q v.
polar is symmetric: q (v − u) = q (−(u − v)) = q (u − v).
polar q 0 v = q v − q (−v) = 0.
The halving identity (Jordan–von Neumann core). polar u v + polar w v = 2 polar ((u+w)/2) v: apply the parallelogram law at (a ± v, b) with a = (u+w)/2,
b = (u−w)/2 and subtract the two instances — the q b terms cancel.
Additivity of polar in the first slot. The halving identity at (u, w) and at
(u + w, 0) share a right-hand side.
Real homogeneity of polar in the first slot. Additivity alone gives ℚ-homogeneity;
the upgrade to ℝ is additive_bounded_linear, whose local bound is 0 ≤ q ≤ ‖·‖².
sesq q u 0 = 0.
Additivity of polar in the second slot (by symmetry).
Real homogeneity of polar in the second slot (by symmetry).
Additivity of sesq in the second slot.
Real homogeneity of sesq in the second slot.
Complex homogeneity in the second slot: sesq q u (c • v) = c · sesq q u v. Split
c = Re c + i · Im c.
Conjugate symmetry: sesq q v u = conj (sesq q u v). The real part is symmetric
(polar_symm); the imaginary part flips because q (v ± i·u) = q (u ∓ i·v) (multiply by the
unit phase ∓i and use smul). With sesq_smul_right this makes sesq conjugate-linear in
its first slot.
sesq restricts to q on the diagonal: sesq q v v = q v. The diagonal value is
polar q v v = 4 q v (degree-2 homogeneity at 2), and the imaginary term vanishes:
q (v − i·v) = q (v + i·v) (unit phase −i). Both steps are the same witness,
IsQuadraticLike.smul (q (c • v) = ‖c‖² q v): at c = 2 it gives the diagonal value, and at
c = −i it gives ‖−i‖² = 1, collapsing the imaginary term.
sesq is linear over finite sums in the second slot.
sesq is conjugate-linear over finite sums in the first slot.
polarMatrix q is Hermitian, directly from sesq_conj_symm.
Standard-basis expansion in EuclideanSpace: v = ∑ᵢ vᵢ • eᵢ.
sesq is the sesquilinear form of polarMatrix: sesq q u v = ⟨u, R v⟩. Expand both
slots in the standard basis.
★ q is the quadratic form of polarMatrix q: q v = ⟨v, R v⟩.
Matrix facts for the descent #
A complex matrix is determined by its quadratic form. If star x ⬝ᵥ (D *ᵥ x) = 0 for
every x, then D = 0: over ℂ the diagonal of a sesquilinear form recovers the whole form by
polarisation.
The trace of a product of two Hermitian matrices is real. conj Tr(A·B) = Tr(B·A) = Tr(A·B).