Relatively compact exhaustion of a manifold #
A Hausdorff, second countable manifold modelled on a locally compact space is locally compact and
σ-compact, and Mathlib's CompactExhaustion gives compact sets K_0 ⊆ int K_1 ⊆ K_1 ⊆ … with
⋃ K_n = M. This module defines the relatively compact open subsets M_n := int K_{n+1}
(relCompactOpen) and records their properties: each M_n is open with compact closure,
closure M_n ⊆ M_{n+1}, the M_n increase, and ⋃ M_n = M.
These are the open subsets over which the analytic resolution is built compactwise and then glued: Kollár's resolution of "any analytic space that is an increasing union of its compact subsets" [Kol07, 44], Bierstone–Milman's relatively quasi-compact open subsets, over each of which the sequence of blowings-up is finite [BM97, Theorem 1.6 and the remarks after it], and Hironaka's analytic spaces, "countable at infinity" [Hir64, p. 120] and "a countable increasing union of relatively compact open subspaces" [Hir64, p. 121].
The relatively compact open subset M_n := int K_{n+1} cut out of the compact exhaustion
K, as an open of M, so that Mathlib's charted-space and manifold instances on opens apply to
it.
Instances For
The manifold is locally compact and σ-compact #
A charted space modelled on a locally compact space is locally compact (Mathlib's
ChartedSpace.locallyCompactSpace).
A second countable charted space modelled on a locally compact space is σ-compact: Hironaka's
"countable at infinity" [Hir64, p. 120] (Mathlib's
sigmaCompactSpace_of_locallyCompact_secondCountable).
A second countable charted space modelled on a locally compact space admits a compact
exhaustion K_0 ⊆ int K_1 ⊆ K_1 ⊆ …, ⋃ K_n = M (Mathlib's CompactExhaustion.choice).
A charted space modelled on a finite-dimensional normed space over 𝕜 ∈ {ℝ, ℂ} is locally
compact (Mathlib's FiniteDimensional.proper_rclike with ChartedSpace.locallyCompactSpace).
The relatively compact opens M_n := int K_{n+1} #
M_n := int K_{n+1} as a set.
closure (int K_{n+1}) ⊆ K_{n+1}: compact sets are closed in a Hausdorff space.
Each M_n is relatively compact: its closure is a closed subset of the compact K_{n+1}.
closure M_n ⊆ M_{n+1}, i.e. closure (int K_{n+1}) ⊆ K_{n+1} ⊆ int K_{n+2}.
M_n ⊆ M_{n+1} (int K_{n+1} ⊆ K_{n+1} ⊆ int K_{n+2}).
The M_n increase.
⋃ M_n = M: every point lies in some K_n ⊆ int K_{n+1} = M_n.