Documentation

LeanPool.SNumbers.AddOns.Compact

Compactness measured by s-numbers #

Which s-number sequences detect compactness? The answer separates the sequences sharply, and this file collects the whole picture.

The general Banach case: cₙ and dₙ #

For the Gelfand and Kolmogorov numbers, decay to zero is equivalent to compactness over any Banach space:

S is a compact operator ↔ cₙ(S) → 0 ↔ dₙ(S) → 0.

Both proofs run through total boundedness of S(B_X), exactly as the entropy criterion SNumbers.isCompactOperator_iff_tendsto_entropyNumber does.

The second half of the Gelfand argument deserves a comment, because the obvious alternative fails. One would like to split x along X = M ⊕ F with F finite-dimensional, but a projection with kernel M only satisfies ‖x - P x‖ ≤ (1 + √n)‖x‖ (Garling–Gordon), and (1 + √n)·cₙ(S) need not tend to 0. Working in the quotient avoids any projection: a lifted difference x - uⱼ is corrected by some m ∈ M with ‖m‖ ≤ 2 + δ, a bound independent of the codimension n.

The approximation numbers are different #

aₙ(S) → 0 — that is, SVD.IsApproximable S — always implies compactness, but the converse fails on a Banach space without the approximation property (Enflo, 1973): there are compact operators that are not norm limits of finite-rank operators. On Hilbert spaces the Schmidt representation repairs this, and then every s-number sequence detects compactness, since all of them agree with aₙ there (SNumbers.allSNumbers_eq_on_HilbertSpace).

Main results #

References #

Compactness and total boundedness #

A compact operator maps the closed unit ball to a totally bounded set.

Conversely, if S(B_X) is totally bounded and Y is complete, then S is a compact operator: the closure of a totally bounded set is then compact.

For a complete target space, compactness of S is total boundedness of S(B_X).

The Kolmogorov numbers #

If S(B_X) is totally bounded then dₙ(S) → 0: a finite ε/2-net with k points bounds d_k(S) by ε/2, and dₙ is antitone.

If dₙ(S) → 0 then S(B_X) is totally bounded.

Given η > 0, choose V of dimension ≤ n with ‖π_V ∘ S‖ < η/3. Every S x with ‖x‖ ≤ 1 is then within η/3 of a point of V of norm at most ‖S‖ + η/3; that bounded piece of the finite-dimensional space V is compact, so a finite η/3-net of it turns into a finite η-net of S(B_X).

dₙ(S) → 0 characterises total boundedness of S(B_X). No completeness assumption is needed.

A compact operator has Kolmogorov numbers tending to zero.

Kolmogorov numbers tending to zero force compactness, provided the target space is complete.

Compactness is measured by the Kolmogorov numbers: for a complete target space, S is a compact operator if and only if dₙ(S) → 0.

The Gelfand numbers #

If S(B_X) is totally bounded then cₙ(S) → 0: a finite ε/3-net with k points bounds c_k(S) by 2ε/3, and cₙ is antitone.

If cₙ(S) → 0 then S(B_X) is totally bounded.

Given η > 0, choose a closed M of finite codimension with ‖S|_M‖ < η/6. The image of B_X in the finite-dimensional quotient X ⧸ M is bounded, hence totally bounded; pick a finite δ-net of it inside the image and lift the centres to u₁, …, u_N ∈ B_X. For ‖x‖ ≤ 1 with ‖[x] - [uⱼ]‖ < δ there is m ∈ M with ‖(x - uⱼ) - m‖ < δ, and — this is the crux — ‖m‖ ≤ 2 + δ ≤ 3 independently of the codimension. Hence ‖S x - S uⱼ‖ ≤ ‖S m‖ + ‖S‖·δ < 3·(η/6) + η/2 = η.

cₙ(S) → 0 characterises total boundedness of S(B_X). No completeness assumption is needed.

A compact operator has Gelfand numbers tending to zero.

Gelfand numbers tending to zero force compactness, provided the target space is complete.

Compactness is measured by the Gelfand numbers: for a complete target space, S is a compact operator if and only if cₙ(S) → 0.

Hilbert spaces: every s-number sequence #

theorem SVD.IsCompactOperator.isApproximable {𝕜 : Type u} [RCLike 𝕜] {H₁ H₂ : Type u} [NormedAddCommGroup H₁] [InnerProductSpace 𝕜 H₁] [CompleteSpace H₁] [NormedAddCommGroup H₂] [InnerProductSpace 𝕜 H₂] [CompleteSpace H₂] {S : H₁ →L[𝕜] H₂} (hS : IsCompactOperator ⇑S) :

On Hilbert spaces, every compact operator is approximable. The singular value decomposition IsCompactOperator.schmidtRepresentation produces singular values σₙ → 0 which, by Eckart–Young (svd_sigma_eq_approx), equal the approximation numbers aₙ(S); hence aₙ(S) → 0.

theorem SVD.isApproximable_iff_isCompactOperator {𝕜 : Type u} [RCLike 𝕜] {H₁ H₂ : Type u} [NormedAddCommGroup H₁] [InnerProductSpace 𝕜 H₁] [CompleteSpace H₁] [NormedAddCommGroup H₂] [InnerProductSpace 𝕜 H₂] [CompleteSpace H₂] (S : H₁ →L[𝕜] H₂) :

On Hilbert spaces, approximable and compact operators coincide.

theorem SVD.isCompactOperator_iff_tendsto_sn {𝕜 : Type u} [RCLike 𝕜] {H₁ H₂ : Type u} [NormedAddCommGroup H₁] [InnerProductSpace 𝕜 H₁] [CompleteSpace H₁] [NormedAddCommGroup H₂] [InnerProductSpace 𝕜 H₂] [CompleteSpace H₂] {s : SNumbers.Family 𝕜} (hs : SNumbers.IsSNumberSequence fun {X Y : Type u} [NormedAddCommGroup X] [NormedSpace 𝕜 X] [NormedAddCommGroup Y] [NormedSpace 𝕜 Y] => s) (S : H₁ →L[𝕜] H₂) :

On Hilbert spaces every s-number sequence detects compactness. All s-number sequences agree with the approximation numbers there (SNumbers.allSNumbers_eq_on_HilbertSpace), and aₙ(S) → 0 is equivalent to compactness by isApproximable_iff_isCompactOperator.

This fails on general Banach spaces for s = aₙ (Enflo), which is why the Gelfand and Kolmogorov criteria in SNumbers are the ones stated there.

Hilbert-space case: compactness is equivalent to bₙ(S) → 0. On a general Banach space only the forward implication holds.

Hilbert-space case: compactness is equivalent to hₙ(S) → 0, even though the Hilbert numbers are the smallest s-number sequence.