Documentation

TauCeti.Topology.PunctureFilling

Filling punctured-disc ends of a space #

Let E be a topological space and let φ i : 𝔻* → E, for i : ι, be a family of maps from the punctured unit disc 𝔻* = ball 0 1 \ {0} of ℂ. The puncture filling PunctureFilling φ adds to E one new point center φ i for each i, and glues the unit disc 𝔻 = ball 0 1 onto E ⊕ {center φ i} along φ i: the map disc φ i : 𝔻 → PunctureFilling φ sends 0 to center φ i and every other point w to φ i w. The underlying type is the sum E ⊕ ι, and the topology is the final topology of the inclusion of E and of the discs disc φ i, so that a map out of the filling is continuous exactly when its restrictions to E and to every filled disc are (PunctureFilling.continuous_iff). Concretely, the map PunctureFilling.extend g c which is g : E → Y on E and c i at the added point center φ i is continuous exactly when g is continuous, each g ∘ φ i is continuous, and converges to c i along the end of the corresponding punctured disc, that is, at the points φ i w as w → 0 (PunctureFilling.continuous_extend_iff). This is how a map out of E is extended over the filled punctures. In particular a continuous map f : E → E' with each f ∘ φ i continuous and carrying the end of each punctured disc φ i into the end of φ' (σ i) induces a continuous map of fillings (PunctureFilling.continuous_map), and when all the charts φ i and φ' j are continuous, a homeomorphism of spaces matching up the ends of the punctured discs extends to a homeomorphism of their fillings (PunctureFilling.congr).

This is how a finite cover of a punctured surface is compactified: each component of the preimage of a punctured disc about a puncture is itself a punctured disc, and the filling adds its missing centre. The general statements here need only the charts φ i. When they are open embeddings, E and the filled discs are open subspaces of the filling, and the neighbourhoods of center φ i are the images of the discs of radius r (PunctureFilling.hasBasis_nhds_center). Under the hypotheses describing the ends of E the filling is Hausdorff, compact, connected and second countable.

Main declarations #

References #

structure TauCeti.PunctureFilling {E : Type u_1} {ι : Type u_2} (φ : ι → ↑(Metric.ball 0 1 \ {0}) → E) :
Type (max u_1 u_2)

The puncture filling of E along the punctured discs φ i : 𝔻* → E: the space E with one point PunctureFilling.center φ i added for every i, which fills the puncture of φ i. Its topology is the final topology of the inclusion PunctureFilling.incl of E and of the filled discs PunctureFilling.disc φ i : 𝔻 → PunctureFilling φ.

Its points are those of the sum E ⊕ ι; the constructor is private, and points are built with PunctureFilling.incl and PunctureFilling.center and taken apart with PunctureFilling.induction.

  • toSum : E ⊕ ι

    A point of the puncture filling as a point of E ⊕ ι: a point of E, or the index of the puncture it fills.

Instances For
    def TauCeti.PunctureFilling.incl {E : Type u_1} {ι : Type u_2} (φ : ι → ↑(Metric.ball 0 1 \ {0}) → E) (x : E) :

    The inclusion of E into its puncture filling.

    Instances For
      def TauCeti.PunctureFilling.center {E : Type u_1} {ι : Type u_2} (φ : ι → ↑(Metric.ball 0 1 \ {0}) → E) (i : ι) :

      The point of the puncture filling which fills the puncture of the i-th disc.

      Instances For
        noncomputable def TauCeti.PunctureFilling.disc {E : Type u_1} {ι : Type u_2} (φ : ι → ↑(Metric.ball 0 1 \ {0}) → E) (i : ι) (z : ↑(Metric.ball 0 1)) :

        The i-th filled disc: the unit disc mapped into the puncture filling, sending 0 to the added point center φ i and every other point w to φ i w.

        Instances For
          theorem TauCeti.PunctureFilling.incl_injective {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :

          The inclusion of E into its puncture filling is injective.

          theorem TauCeti.PunctureFilling.center_injective {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :

          Distinct punctures are filled by distinct points.

          @[simp]
          theorem TauCeti.PunctureFilling.incl_inj {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {x y : E} :
          incl φ x = incl φ y ↔ x = y
          @[simp]
          theorem TauCeti.PunctureFilling.center_inj {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {i j : ι} :
          center φ i = center φ j ↔ i = j
          @[simp]
          theorem TauCeti.PunctureFilling.incl_ne_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (x : E) (i : ι) :
          incl φ x ≠ center φ i
          @[simp]
          theorem TauCeti.PunctureFilling.center_ne_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) (x : E) :
          center φ i ≠ incl φ x
          theorem TauCeti.PunctureFilling.induction {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {P : PunctureFilling φ → Prop} (incl : ∀ (x : E), P (incl φ x)) (center : ∀ (i : ι), P (center φ i)) (y : PunctureFilling φ) :
          P y

          Induction on the points of the puncture filling: each is a point of E or an added point.

          theorem TauCeti.PunctureFilling.isCompl_range_incl_range_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :

          The added points are exactly the points of the filling outside E.

          @[simp]
          theorem TauCeti.PunctureFilling.compl_range_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :
          @[simp]
          theorem TauCeti.PunctureFilling.compl_range_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :
          @[simp]
          theorem TauCeti.PunctureFilling.disc_zero {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) :
          disc φ i 0 = center φ i

          The centre of the i-th filled disc is the added point center φ i.

          @[simp]
          theorem TauCeti.PunctureFilling.disc_inclusion {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) (w : ↑(Metric.ball 0 1 \ {0})) :
          disc φ i (Set.inclusion ⋯ w) = incl φ (φ i w)

          Off its centre, the i-th filled disc is the punctured disc φ i.

          theorem TauCeti.PunctureFilling.disc_eq_incl_iff {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {i : ι} {z : ↑(Metric.ball 0 1)} {x : E} :
          disc φ i z = incl φ x ↔ ∃ (w : ↑(Metric.ball 0 1 \ {0})), Set.inclusion ⋯ w = z ∧ φ i w = x

          A point of the i-th filled disc lies in E exactly when it is a point φ i w of the punctured disc.

          @[simp]
          theorem TauCeti.PunctureFilling.disc_eq_center_iff {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {i j : ι} {z : ↑(Metric.ball 0 1)} :
          disc φ i z = center φ j ↔ z = 0 ∧ i = j

          The only added point on the i-th filled disc is its centre center φ i.

          theorem TauCeti.PunctureFilling.disc_injective {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {i : ι} (hi : Function.Injective (φ i)) :

          The i-th filled disc is injective when the punctured disc φ i is.

          @[simp]
          theorem TauCeti.PunctureFilling.disc_preimage_range_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) :

          A point of the i-th filled disc lies in E exactly when it is not the centre 0.

          theorem TauCeti.PunctureFilling.disc_preimage_image_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) (V : Set E) :
          disc φ i ⁻¹' incl φ '' V = Set.inclusion ⋯ '' φ i ⁻¹' V

          The points of the i-th filled disc which land in incl φ '' V are the points w of the punctured disc with φ i w ∈ V.

          theorem TauCeti.PunctureFilling.incl_preimage_image_disc {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) (W : Set ↑(Metric.ball 0 1)) :
          incl φ ⁻¹' disc φ i '' W = φ i '' Set.inclusion ⋯ ⁻¹' W

          The points of E on the image of W under the i-th filled disc are the images under φ i of the points of W other than the centre.

          Maps out of the puncture filling #

          def TauCeti.PunctureFilling.extend {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) (y : PunctureFilling φ) :
          Y

          The map out of the puncture filling which is g on E and sends the added point center φ i to c i. Every map out of the filling is of this form (PunctureFilling.extend_comp_incl_center), and it is continuous exactly when g and each g ∘ φ i are continuous and g converges to c i along the end of each punctured disc φ i (PunctureFilling.continuous_extend_iff).

          Instances For
            @[simp]
            theorem TauCeti.PunctureFilling.extend_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) (x : E) :
            extend g c (incl φ x) = g x
            @[simp]
            theorem TauCeti.PunctureFilling.extend_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) (i : ι) :
            extend g c (center φ i) = c i
            @[simp]
            theorem TauCeti.PunctureFilling.extend_comp_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) :
            extend g c ∘ incl φ = g
            @[simp]
            theorem TauCeti.PunctureFilling.extend_comp_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) :
            extend g c ∘ center φ = c
            @[simp]
            theorem TauCeti.PunctureFilling.extend_comp_incl_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (F : PunctureFilling φ → Y) :
            extend (F ∘ incl φ) (F ∘ center φ) = F

            Every map out of the puncture filling is the extension of its restriction to E by its values at the added points.

            @[simp]
            theorem TauCeti.PunctureFilling.range_extend {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {Y : Type u_3} (g : E → Y) (c : ι → Y) :

            The values of a map out of the puncture filling are those it takes on E and at the added points.

            def TauCeti.PunctureFilling.map {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {E' : Type u_3} {ι' : Type u_4} {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (f : E → E') (σ : ι → ι') :

            The map of puncture fillings which is f : E → E' on E and sends the added point center φ i to center φ' (σ i). It is continuous when f and every f ∘ φ i are continuous and f carries the end of each punctured disc φ i into the end of φ' (σ i) (PunctureFilling.continuous_map).

            Instances For
              @[simp]
              theorem TauCeti.PunctureFilling.map_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {E' : Type u_3} {ι' : Type u_4} {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (f : E → E') (σ : ι → ι') (x : E) :
              PunctureFilling.map f σ (incl φ x) = incl φ' (f x)
              @[simp]
              theorem TauCeti.PunctureFilling.map_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {E' : Type u_3} {ι' : Type u_4} {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (f : E → E') (σ : ι → ι') (i : ι) :
              PunctureFilling.map f σ (center φ i) = center φ' (σ i)
              @[simp]
              theorem TauCeti.PunctureFilling.map_id {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} :

              The map of puncture fillings induced by identity maps is the identity.

              @[simp]
              theorem TauCeti.PunctureFilling.map_map {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} {E' : Type u_3} {ι' : Type u_4} {ι'' : Type u_5} {E'' : Type u_6} {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} {φ'' : ι'' → ↑(Metric.ball 0 1 \ {0}) → E''} (f : E → E') (σ : ι → ι') (f' : E' → E'') (σ' : ι' → ι'') (y : PunctureFilling φ) :

              The map of puncture fillings induced by composites is the composite of the induced maps.

              The topology #

              @[instance_reducible]
              noncomputable instance TauCeti.PunctureFilling.instTopologicalSpace {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :
              theorem TauCeti.PunctureFilling.isOpen_iff {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {s : Set (PunctureFilling φ)} :
              IsOpen s ↔ IsOpen (incl φ ⁻¹' s) ∧ ∀ (i : ι), IsOpen (disc φ i ⁻¹' s)

              A subset of the puncture filling is open exactly when its preimages in E and in every filled disc are open.

              theorem TauCeti.PunctureFilling.continuous_iff {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {Y : Type u_3} [TopologicalSpace Y] {g : PunctureFilling φ → Y} :
              Continuous g ↔ Continuous (g ∘ incl φ) ∧ ∀ (i : ι), Continuous (g ∘ disc φ i)

              The universal property of the puncture filling. A map out of the filling is continuous exactly when its restrictions to E and to every filled disc are.

              theorem TauCeti.PunctureFilling.continuous_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :

              The inclusion of E into its puncture filling is continuous.

              theorem TauCeti.PunctureFilling.continuous_disc {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (i : ι) :

              Every filled disc is continuous.

              theorem TauCeti.PunctureFilling.isOpen_range_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :

              E is an open subset of its puncture filling.

              theorem TauCeti.PunctureFilling.isClosed_range_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :

              The added points form a closed subset of the puncture filling.

              theorem TauCeti.PunctureFilling.isOpenEmbedding_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (hφ : ∀ (i : ι), Continuous (φ i)) :

              If the punctured discs φ i are continuous, E is an open subspace of its puncture filling.

              theorem TauCeti.PunctureFilling.isOpenEmbedding_disc {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (hφ : ∀ (j : ι), Continuous (φ j)) {i : ι} (hi : Topology.IsOpenEmbedding (φ i)) :

              If the punctured discs φ j are continuous and φ i is an open embedding, the i-th filled disc is an open subspace of the puncture filling.

              theorem TauCeti.PunctureFilling.denseRange_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :

              E is dense in its puncture filling: every added point is a limit of points of E.

              Neighbourhoods #

              theorem TauCeti.PunctureFilling.map_disc_nhdsNE {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} (i : ι) :

              The punctured neighbourhoods of the centre of the i-th filled disc are carried onto the end of the punctured disc φ i, the filter of points φ i w with w near 0.

              theorem TauCeti.PunctureFilling.tendsto_incl_comp_nhds_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (i : ι) :

              The end of the i-th punctured disc converges to the added point center φ i.

              theorem TauCeti.PunctureFilling.nhds_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (hφ : ∀ (i : ι), Continuous (φ i)) (x : E) :
              nhds (incl φ x) = Filter.map (incl φ) (nhds x)

              If the punctured discs are continuous, the neighbourhoods of a point of E in the puncture filling are its neighbourhoods in E.

              theorem TauCeti.PunctureFilling.nhds_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (hφ : ∀ (j : ι), Continuous (φ j)) {i : ι} (hi : Topology.IsOpenEmbedding (φ i)) :
              nhds (center φ i) = pure (center φ i) ⊔ Filter.map (incl φ ∘ φ i) (Filter.comap Subtype.val (nhds 0))

              The neighbourhoods of the added point center φ i are those of the point itself together with the image of the end of φ i, the filter of points φ i w with w near 0.

              theorem TauCeti.PunctureFilling.hasBasis_nhds_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] (hφ : ∀ (j : ι), Continuous (φ j)) {i : ι} (hi : Topology.IsOpenEmbedding (φ i)) :
              (nhds (center φ i)).HasBasis (fun (r : ℝ) => 0 < r) fun (r : ℝ) => disc φ i '' {z : ↑(Metric.ball 0 1) | ‖↑z‖ < r}

              The neighbourhoods of an added point. The images under disc φ i of the discs of radius r > 0 form a basis of the neighbourhoods of center φ i.

              theorem TauCeti.PunctureFilling.isDiscrete_range_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] :

              The added points are isolated from one another: every set of added points is closed, as each filled disc meets it at most in its centre.

              Continuity of maps out of the puncture filling #

              theorem TauCeti.PunctureFilling.continuous_extend_iff {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {Y : Type u_3} [TopologicalSpace Y] {g : E → Y} {c : ι → Y} :
              Continuous (extend g c) ↔ Continuous g ∧ ∀ (i : ι), Continuous (g ∘ φ i) ∧ Filter.Tendsto (g ∘ φ i) (Filter.comap Subtype.val (nhds 0)) (nhds (c i))

              Continuity of a map out of the puncture filling. The extension of g : E → Y by the values c i at the added points is continuous exactly when g and each composite g ∘ φ i are continuous, and g converges to c i along the end of each punctured disc φ i.

              theorem TauCeti.PunctureFilling.continuous_map {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} {f : E → E'} (hf : Continuous f) (hcomp : ∀ (i : ι), Continuous (f ∘ φ i)) {σ : ι → ι'} (hend : ∀ (i : ι), Filter.Tendsto (f ∘ φ i) (Filter.comap Subtype.val (nhds 0)) (Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0)))) :

              Functoriality of the puncture filling. The map of puncture fillings induced by a continuous f : E → E' and a reindexing σ : ι → ι' is continuous if each f ∘ φ i is continuous and f carries the end of each punctured disc φ i into the end of φ' (σ i).

              def TauCeti.PunctureFilling.congr {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (hφ : ∀ (i : ι), Continuous (φ i)) (hφ' : ∀ (i : ι'), Continuous (φ' i)) (e : E ≃ₜ E') (σ : ι ≃ ι') (hend : ∀ (i : ι), Filter.map (⇑e ∘ φ i) (Filter.comap Subtype.val (nhds 0)) = Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0))) :

              Functoriality of the puncture filling in homeomorphisms. Suppose that all the charts φ i and φ' j are continuous (hφ, hφ'). A homeomorphism e : E ≃ₜ E' and a bijection σ : ι ≃ ι' such that e carries the end of each punctured disc φ i onto the end of φ' (σ i) induce a homeomorphism of the puncture fillings, which is e on E and sends the added point center φ i to center φ' (σ i).

              Instances For
                @[simp]
                theorem TauCeti.PunctureFilling.congr_apply_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (hφ : ∀ (i : ι), Continuous (φ i)) (hφ' : ∀ (i : ι'), Continuous (φ' i)) (e : E ≃ₜ E') (σ : ι ≃ ι') (hend : ∀ (i : ι), Filter.map (⇑e ∘ φ i) (Filter.comap Subtype.val (nhds 0)) = Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0))) (x : E) :
                (PunctureFilling.congr hφ hφ' e σ hend) (incl φ x) = incl φ' (e x)
                @[simp]
                theorem TauCeti.PunctureFilling.congr_apply_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (hφ : ∀ (i : ι), Continuous (φ i)) (hφ' : ∀ (i : ι'), Continuous (φ' i)) (e : E ≃ₜ E') (σ : ι ≃ ι') (hend : ∀ (i : ι), Filter.map (⇑e ∘ φ i) (Filter.comap Subtype.val (nhds 0)) = Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0))) (i : ι) :
                (PunctureFilling.congr hφ hφ' e σ hend) (center φ i) = center φ' (σ i)
                @[simp]
                theorem TauCeti.PunctureFilling.congr_symm_apply_incl {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (hφ : ∀ (i : ι), Continuous (φ i)) (hφ' : ∀ (i : ι'), Continuous (φ' i)) (e : E ≃ₜ E') (σ : ι ≃ ι') (hend : ∀ (i : ι), Filter.map (⇑e ∘ φ i) (Filter.comap Subtype.val (nhds 0)) = Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0))) (x : E') :
                (PunctureFilling.congr hφ hφ' e σ hend).symm (incl φ' x) = incl φ (e.symm x)
                @[simp]
                theorem TauCeti.PunctureFilling.congr_symm_apply_center {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] {E' : Type u_3} {ι' : Type u_4} [TopologicalSpace E'] {φ' : ι' → ↑(Metric.ball 0 1 \ {0}) → E'} (hφ : ∀ (i : ι), Continuous (φ i)) (hφ' : ∀ (i : ι'), Continuous (φ' i)) (e : E ≃ₜ E') (σ : ι ≃ ι') (hend : ∀ (i : ι), Filter.map (⇑e ∘ φ i) (Filter.comap Subtype.val (nhds 0)) = Filter.map (φ' (σ i)) (Filter.comap Subtype.val (nhds 0))) (i : ι') :
                (PunctureFilling.congr hφ hφ' e σ hend).symm (center φ' i) = center φ (σ.symm i)

                Separation, compactness, connectedness and countability #

                theorem TauCeti.PunctureFilling.t2Space {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] [T2Space E] (hφ : ∀ (i : ι), Topology.IsOpenEmbedding (φ i)) (hend : ∀ (i : ι) (x : E), Disjoint (nhds x) (Filter.map (φ i) (Filter.comap Subtype.val (nhds 0)))) (hdisj : Pairwise fun (i j : ι) => Disjoint (Filter.map (φ i) (Filter.comap Subtype.val (nhds 0))) (Filter.map (φ j) (Filter.comap Subtype.val (nhds 0)))) :

                The puncture filling is Hausdorff when E is, the punctured discs are open embeddings, no point of E is a limit of the end of a punctured disc, and the ends of two different punctured discs are disjoint.

                theorem TauCeti.PunctureFilling.compactSpace {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] [Finite ι] {r : ℝ} (hr : r < 1) (hK : IsCompact (⋃ (i : ι), φ i '' {w : ↑(Metric.ball 0 1 \ {0}) | ‖↑w‖ < r})ᶜ) :

                The puncture filling of finitely many punctures is compact as soon as E minus the images of the punctured discs of some radius r < 1 is compact.

                theorem TauCeti.PunctureFilling.connectedSpace {E : Type u_1} {ι : Type u_2} {φ : ι → ↑(Metric.ball 0 1 \ {0}) → E} [TopologicalSpace E] [ConnectedSpace E] :

                The puncture filling of a connected space is connected, since E is dense in it.

                The puncture filling of a second-countable space along countably many punctured discs is second countable.