A continuous map from a compact space to the principal-unit inverse limit is surjective as soon as all of its finite-coordinate maps are surjective.
The finite quotients carry the discrete topology. Compatibility makes the fiber over coordinate n + 1 a subset of the fiber over coordinate n, so Cantor's intersection theorem supplies a simultaneous preimage of all coordinates.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
universe u v w
open LocalFieldTheory.DiscreteValuationField
namespace LocalFieldTheory.DiscreteValuationField
namespace CompleteDVF
namespace higherPrincipalUnitGroup
open Internal
variable {K : Type u} [Field K]theorem Internal.surjective_principalUnitInverseLimitCarrier_of_surjective_coordinates
(F : ValuationTheory.DiscreteValuationField.CompleteDVF.{u, v} K)
{A : Type w} [TopologicalSpace A] [CompactSpace A]
(g : A → Internal.principalUnitInverseLimitCarrier F) :
letI : (n : ℕ) → TopologicalSpace (Internal.principalUnitQuotientCarrier F n) :=
fun _ => ⊥
Continuous g →
(∀ n, Function.Surjective (fun a : A => (g a).1 n)) →
Function.Surjective g := by
let : (n : ℕ) → TopologicalSpace (Internal.principalUnitQuotientCarrier F n) :=
fun _ => ⊥
let : (n : ℕ) → DiscreteTopology (Internal.principalUnitQuotientCarrier F n) :=
fun _ => ⟨rfl⟩
intro hg hsur y
let C : ℕ → Set A := fun n => {a | (g a).1 n = y.1 n}
have hcoord : ∀ n, Continuous (fun a : A => (g a).1 n) := by
intro n
exact ((continuous_apply n).comp continuous_subtype_val).comp hg
have hclosed : ∀ n, IsClosed (C n) := by
intro n
exact isClosed_eq (hcoord n) continuous_const
have hnonempty : ∀ n, (C n).Nonempty := by
intro n
obtain ⟨a, ha⟩ := hsur n (y.1 n)
exact ⟨a, ha⟩
have hdecreasing : ∀ n, C (n + 1) ⊆ C n := by
intro n a ha
change (g a).1 n = y.1 n
calc
(g a).1 n =
principalUnitQuotientCarrierTransition F (Nat.le_succ n)
((g a).1 (n + 1)) := ((g a).2 (Nat.le_succ n)).symm
_ = principalUnitQuotientCarrierTransition F (Nat.le_succ n)
(y.1 (n + 1)) := congrArg
(principalUnitQuotientCarrierTransition F (Nat.le_succ n)) ha
_ = y.1 n := y.2 (Nat.le_succ n)
have hintersection : (⋂ n, C n).Nonempty :=
IsCompact.nonempty_iInter_of_sequence_nonempty_isCompact_isClosed
C hdecreasing hnonempty (hclosed 0).isCompact hclosed
obtain ⟨a, ha⟩ := hintersection
refine ⟨a, ?_⟩
apply Subtype.ext
funext n
exact Set.mem_iInter.mp ha n