Operator polar decomposition A = U |A| (Sub-dev III) #
For an operator A on a finite-dimensional inner product space, A = U |A|, where
|A| = (A⋆A)^{1/2} is the modulus and U is a partial isometry with initial space (ker A)ᗮ
and ker U = ker A. When A is invertible, U is unitary and U = A |A|⁻¹.
- RCLike route (
E →ₗ[𝕜] E, ℝ and ℂ):|A|built from the spectral square root (TauCeti.IsPositive.sqrt). Serves Davis's real-symmetric application directly. - CFC route / headline (
E →L[ℂ] E):|A| = CFC.abs Aliterally, transported across the definitionalLinearMap ↔ ContinuousLinearMapadjoint bridge.
Sources: Horn & Johnson, Matrix Analysis 2nd ed., Thm 7.3.1 (statement; A = UQ,
Q = (A⋆A)^{1/2}, U unitary, unique iff nonsingular). Conway, A Course in Functional Analysis
2nd ed., VI.3.9 (the partial-isometry construction A = U|A|, ker U = ker A — the route
mathlib can follow, since HJ's SVD proof route is unavailable: mathlib has no SVD factorization).
The three polar factors, and how they relate #
Documented here because none of the three named the others, so a reviewer could not tell a designed hierarchy from three independent attempts. The separating hypotheses are the carrier and whether the modulus is invertible:
TauCeti.polarFactor, inPolar/Decomposition.lean— squareE →ₗ[𝕜] E,RCLike, finite dimension; a genuine unitary factor.TauCeti.polarPartial, inPolar/PartialIsometry.lean— rectangularE →L[𝕜] FoverRCLike, no invertibility assumed; a partial isometry.TauCeti.polarIsometryOfIsUnitModulus, inPolar/Isometry.lean— rectangularE →L[𝕜] FoverRCLikeand the modulus a unit; then the factor is an isometry.
Read down the list: dropping finite dimension costs the unitary and leaves a partial isometry; adding invertibility of the modulus buys it back as an isometry. That is the whole hierarchy.
The modulus |A| (RCLike, LinearMap) #
There are two canonical realizations of the same rectangular source modulus:
TauCeti.operatorAbs, below, isRCLike-generic and finite-dimensional, built from the spectral square root ofA⋆A;ContinuousLinearMap.modulusis dimension-free, built from the real continuous functional calculus on bounded operators.
Both accept a rectangular map E → F and return an endomorphism of the source E.
Polar.CFCBridge proves that converting the finite-dimensional construction to a bounded
operator gives ContinuousLinearMap.modulus.
The name is operatorAbs, not abs: a bare abs collides with the lattice absolute value
that |·| denotes in Lean, while modulus is the bounded-operator spelling.
The modulus |A| = (A⋆A)^{1/2} of an operator, via the spectral square root of the
positive operator A⋆A. HJ 7.3.1 (Q = (A⋆A)^{1/2}).
Equations
- TauCeti.operatorAbs A = ⋯.sqrt
Instances For
The modulus is a positive operator, being a positive square root.
|A|² = A⋆A.
The polar norm identity ‖|A| x‖ = ‖A x‖. Not in HJ (SVD route); this is the seed of the
isometry route (Conway VI.3.9).
ker |A| = ker A.
range |A| = (ker A)ᗮ — the initial space of the polar factor.
Elementwise form of range_operatorAbs: every value of the modulus lies in the initial
space.
The modulus does not see a sign. |-A| = |A|, because the two Gram operators
(-A)⋆(-A) and A⋆A are literally the same operator and the positive square root of a
positive operator is unique.
A normal operator and its adjoint have the same modulus. Normality says the two Gram
operators A⋆A and AA⋆ agree, and |A⋆| is by definition the positive square root of the
second.
The polar factor U and the decomposition #
The restriction of the modulus |A| to (ker A)ᗮ = range |A|, as a linear automorphism of
(ker A)ᗮ — the invertible core of |A|, which the polar factor inverts.
Equations
Instances For
The polar factor U of A: the partial isometry that is the isometry |A| x ↦ A x on
range |A| = (ker A)ᗮ, extended by 0 on ker A. Conway VI.3.9.
Equations
- TauCeti.polarFactor A = A ∘ₗ A.kerᗮ.subtype ∘ₗ ↑(TauCeti.operatorAbsRestrict A).symm ∘ₗ ↑A.kerᗮ.orthogonalProjectionOnto
Instances For
The defining property of the polar factor: U (|A| x) = A x.
Polar decomposition A = U |A|. Conway VI.3.9; HJ 7.3.1.
ker U = ker A.
range U = range A — the final space of the polar factor.
U restricted to range |A| = (ker A)ᗮ is isometric.
U is a partial isometry.
Invertible case: U is unitary #
When A is invertible, |A| is invertible and the polar factor is the unitary U = A |A|⁻¹,
packaged as a LinearIsometryEquiv. HJ 7.3.1(b) (U uniquely determined if A nonsingular).
Equations
- TauCeti.polarUnitaryEquiv hA = { toLinearEquiv := LinearEquiv.ofBijective (TauCeti.polarFactor A) ⋯, norm_map' := ⋯ }
Instances For
The bundled polar unitary acts as the chosen one.
Polar decomposition for an operator with invertible modulus: A = U |A| with U
unitary.
General square case: a kernel-completed unitary #
Even for a singular A, the partial isometry polarFactor A extends to a
genuine unitary E ≃ₗᵢ[𝕜] E — map the initial space (ker A)ᗮ by
polarFactor A (isometrically onto range A) and complete ker A
isometrically onto (range A)ᗮ (equal dimensions by rank–nullity). The
identity A = U |A| survives, and U is a true unitary; this is the factor the
orthogonal-Procrustes alignment argument needs (polarUnitaryEquiv above
requires invertibility).
The completion is a choice, not a canonical construction. When ker A ≠ ⊥
any unitary from ker A onto (range A)ᗮ completes polarFactor A, and
LinearIsometry.extend merely selects one; only the restriction to (ker A)ᗮ
is determined by A. Hence the name choosePolarUnitary rather than
polarUnitary: the invertible case, where the unitary factor really is unique,
is polarUnitaryEquiv above.
Users who need only some unitary factor should prefer
exists_polar_decomposition_unitary, which states the theorem without
committing to the selection.
The polar factor restricted to (ker A)ᗮ, its initial space, where it is a
genuine linear isometry.
Equations
- TauCeti.polarIsometryOnOrthogonal A = { toLinearMap := TauCeti.polarFactor A ∘ₗ A.kerᗮ.subtype, norm_map' := ⋯ }
Instances For
A selected polar unitary (general square case). A kernel-completed
unitary extending polarFactor A; unitary for every A, singular or not.
Not canonical when A is singular — see the section note above.
Equations
Instances For
The chosen polar unitary satisfies the defining identity U (|A| x) = A x. It is a choice --
see choosePolarUnitary -- but every choice satisfies this.
Polar decomposition with a unitary factor (general square case),
A = U |A| at the selected witness U = choosePolarUnitary A.
For the statement that does not name a witness, use
exists_polar_decomposition_unitary.
Polar decomposition with a unitary factor, existential form.
This is the honest general-case statement: every square operator on a
finite-dimensional space factors as a unitary times its modulus. It says
nothing about which unitary, which is the point — for singular A the factor
is not unique. choosePolarUnitary provides a witness when a concrete one is
needed.
The modulus of a normal finite-dimensional operator commutes with the
operator. This is the finite RCLike substitute for the corresponding CFC
commutation theorem.
Uniqueness of the unitary factor in an invertible polar decomposition.
If A = U H with U unitary and H positive, then the canonical polar factor
of A is U.
For an invertible operator the polar factor of the adjoint is the adjoint
of the polar factor: from A = U|A| one gets A⋆ = U⋆ ∘ (U|A|U⋆) with the
conjugated modulus positive, and polar uniqueness identifies the factors.