Documentation

TauCeti.Geometry.Manifold.Morse.Cell.Comparison

The handle-to-cell comparison across a critical level #

Let f be a continuous function on M and let φ i be finitely many charts with values in ℝⁿ, with pairwise disjoint sources, in which f has the normal form

f = c - Σ_{j < k i} yⱼ² + Σ_{j ≥ k i} yⱼ²,

and whose targets contain the closed ball of radius √ε. Each chart carries the characteristic map χᵢ : (D^{k i}, ∂D^{k i}) → (M_{c+ε}, M_{c-ε}), w ↦ φ i⁻¹(√ε • (w, 0)), of its cell, and its attaching map αᵢ : ∂D^{k i} → M_{c-ε} (OpenPartialHomeomorph.morseCharacteristicMap and OpenPartialHomeomorph.morseAttachingMap), where M_a = {f ≤ a}.

This file forms the space M_{c-ε} ∪_α ⨆ᵢ D^{k i} obtained by attaching one disc along each αᵢ, as a pushout in TopCat (TauCeti.morseCellAttachment), and the comparison map

Φ : M_{c-ε} ∪_α ⨆ᵢ D^{k i} → M_{c+ε}

induced on the pushout by the inclusion of the lower sublevel and the characteristic maps (TauCeti.morseCellComparison). When M is Hausdorff, f is continuous, ε > 0 and the charts have pairwise disjoint sources, Φ is a closed embedding: it is injective because the open discs are carried into the disjoint chart sources and off the lower sublevel, and closed because the lower sublevel is closed and the discs are compact. Its image is the lower sublevel together with the cells {‖φ i x‖² ≤ ε, (φ i x)ⱼ = 0 for j ≥ k i}.

Milnor's cell attachment theorem (TauCeti.exists_sublevel_union_cells_deformation) strong deformation retracts M_{c+ε} onto exactly this image when f is smooth, the charts are smooth and their targets contain the closed ball of radius √(2ε), and the band f⁻¹[c - ε, c + ε] is compact with its critical points in the charts. Transported along Φ, this gives a map g : M_{c+ε} → M_{c-ε} ∪_α ⨆ᵢ D^{k i} with g ∘ Φ = id and a homotopy from Φ ∘ g to the identity fixing the image of Φ, in particular the whole lower sublevel. So Φ is a homotopy equivalence relative to M_{c-ε}; this is the form of the attachment in which a sublevel of a Morse function is built from the previous one by attaching cells. The charts may have any indices, including 0 (a disc attached along the empty sphere) and n, and several critical points on one level are handled simultaneously.

Main definitions #

Main results #

References #

noncomputable def TauCeti.morseCellAttachment {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) :

The space M_{c-ε} ∪_α ⨆ᵢ D^{k i} obtained from the lower sublevel M_{c-ε} = {f ≤ c - ε} by attaching one k i-disc along the attaching map OpenPartialHomeomorph.morseAttachingMap (φ i) of each chart φ i, in which f = c - Σ_{j < k i} yⱼ² + Σ_{j ≥ k i} yⱼ² and whose target contains the closed ball of radius √ε. It is the pushout in TopCat of the coproduct of the attaching maps and of the boundary inclusions ∂D^{k i} → D^{k i} (TauCeti.isPushout_morseCellAttachment).

Instances For
    noncomputable def TauCeti.morseCellAttachmentIncl {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) :
    ↧↑{x : M | f x ≤ c - ε} ⟶ morseCellAttachment φ k hk hε hball hf

    The inclusion of the lower sublevel M_{c-ε} into TauCeti.morseCellAttachment.

    Instances For
      noncomputable def TauCeti.morseCellAttachmentCell {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (i : ι) :
      TopCat.disk (k i) ⟶ morseCellAttachment φ k hk hε hball hf

      The characteristic map D^{k i} → TauCeti.morseCellAttachment of the cell attached along the attaching map of the chart φ i.

      Instances For
        theorem TauCeti.isPushout_morseCellAttachment {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) :

        TauCeti.morseCellAttachment is the pushout of the coproduct of the attaching maps along the coproduct of the boundary inclusions ∂D^{k i} → D^{k i}, with the inclusion of the lower sublevel and the characteristic maps of the cells as its legs.

        theorem TauCeti.morseAttachingMap_comp_morseCellAttachmentIncl {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (i : ι) :

        In TauCeti.morseCellAttachment, the characteristic map of a cell restricts on the boundary sphere to the attaching map followed by the inclusion of the lower sublevel.

        theorem TauCeti.morseAttachingMap_comp_morseCellAttachmentIncl_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (i : ι) {Z : TopCat} (h : morseCellAttachment φ k hk hε hball hf ⟶ Z) :

        In TauCeti.morseCellAttachment, the characteristic map of a cell restricts on the boundary sphere to the attaching map followed by the inclusion of the lower sublevel.

        noncomputable def TauCeti.morseCellAttachmentDesc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) {Z : TopCat} (g : ↧↑{x : M | f x ≤ c - ε} ⟶ Z) (G : (i : ι) → TopCat.disk (k i) ⟶ Z) (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯) g = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (G i)) :
        morseCellAttachment φ k hk hε hball hf ⟶ Z

        A map on the lower sublevel and maps on the discs which agree on the boundary spheres induce a map out of TauCeti.morseCellAttachment.

        Instances For
          @[simp]
          theorem TauCeti.morseCellAttachmentIncl_desc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Z : TopCat} (g : ↧↑{x : M | f x ≤ c - ε} ⟶ Z) (G : (i : ι) → TopCat.disk (k i) ⟶ Z) (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯) g = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (G i)) :
          CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ k hk hε hball hf) (morseCellAttachmentDesc φ k hk hε hball hf g G h) = g

          The map out of TauCeti.morseCellAttachment restricts to the prescribed map on the lower sublevel.

          @[simp]
          theorem TauCeti.morseCellAttachmentIncl_desc_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Z : TopCat} (g : ↧↑{x : M | f x ≤ c - ε} ⟶ Z) (G : (i : ι) → TopCat.disk (k i) ⟶ Z) (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯) g = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (G i)) {Z✝ : TopCat} (h✝ : Z ⟶ Z✝) :

          The map out of TauCeti.morseCellAttachment restricts to the prescribed map on the lower sublevel.

          @[simp]
          theorem TauCeti.morseCellAttachmentCell_desc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Z : TopCat} (g : ↧↑{x : M | f x ≤ c - ε} ⟶ Z) (G : (i : ι) → TopCat.disk (k i) ⟶ Z) (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯) g = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (G i)) (i : ι) :
          CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ k hk hε hball hf i) (morseCellAttachmentDesc φ k hk hε hball hf g G h) = G i

          The map out of TauCeti.morseCellAttachment restricts to the prescribed map on each disc.

          @[simp]
          theorem TauCeti.morseCellAttachmentCell_desc_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Z : TopCat} (g : ↧↑{x : M | f x ≤ c - ε} ⟶ Z) (G : (i : ι) → TopCat.disk (k i) ⟶ Z) (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯) g = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (G i)) (i : ι) {Z✝ : TopCat} (h✝ : Z ⟶ Z✝) :

          The map out of TauCeti.morseCellAttachment restricts to the prescribed map on each disc.

          theorem TauCeti.morseCellAttachment_hom_ext {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) {Z : TopCat} (hε : 0 ≤ ε) {g g' : morseCellAttachment φ k hk hε hball hf ⟶ Z} (h₀ : CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ k hk hε hball hf) g = CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ k hk hε hball hf) g') (h : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ k hk hε hball hf i) g = CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ k hk hε hball hf i) g') :
          g = g'

          Maps out of TauCeti.morseCellAttachment are determined by their restrictions to the lower sublevel and to the cells.

          theorem TauCeti.range_morseCellAttachmentIncl_union_iUnion_range_morseCellAttachmentCell {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) :

          Every point of TauCeti.morseCellAttachment lies in the lower sublevel or in a cell.

          noncomputable def TauCeti.morseCellAttachmentProdDesc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Y : Type u} [TopologicalSpace Y] (L : C(↑unitInterval × ↑{x : M | f x ≤ c - ε}, Y)) (C : (i : ι) → C(↑unitInterval × ↑(TopCat.disk (k i)), Y)) (hC : ∀ (i : ι) (t : ↑unitInterval) (s : ↑(TopCat.diskBoundary (k i))), (C i) (t, (CategoryTheory.ConcreteCategory.hom (TopCat.diskBoundaryInclusion (k i))) s) = L (t, (CategoryTheory.ConcreteCategory.hom ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯)) s)) :
          C(↑unitInterval × ↑(morseCellAttachment φ k hk hε hball hf), Y)

          The map I × (M_{c-ε} ∪_α ⨆ᵢ D^{k i}) → Y glued from a map L : I × M_{c-ε} → Y and maps C i : I × D^{k i} → Y that agree with L along the attaching maps: the form of TauCeti.morseCellAttachmentDesc for homotopies out of TauCeti.morseCellAttachment, given by CategoryTheory.IsPushout.cylinderDesc.

          Instances For
            @[simp]
            theorem TauCeti.morseCellAttachmentProdDesc_morseCellAttachmentIncl {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Y : Type u} [TopologicalSpace Y] (L : C(↑unitInterval × ↑{x : M | f x ≤ c - ε}, Y)) (C : (i : ι) → C(↑unitInterval × ↑(TopCat.disk (k i)), Y)) (hC : ∀ (i : ι) (t : ↑unitInterval) (s : ↑(TopCat.diskBoundary (k i))), (C i) (t, (CategoryTheory.ConcreteCategory.hom (TopCat.diskBoundaryInclusion (k i))) s) = L (t, (CategoryTheory.ConcreteCategory.hom ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯)) s)) (t : ↑unitInterval) (x : ↑{x : M | f x ≤ c - ε}) :
            (morseCellAttachmentProdDesc φ k hk hball hf hε L C hC) (t, (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentIncl φ k hk hε hball hf)) x) = L (t, x)

            On the lower sublevel, the map glued by TauCeti.morseCellAttachmentProdDesc is L.

            @[simp]
            theorem TauCeti.morseCellAttachmentProdDesc_morseCellAttachmentCell {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Y : Type u} [TopologicalSpace Y] (L : C(↑unitInterval × ↑{x : M | f x ≤ c - ε}, Y)) (C : (i : ι) → C(↑unitInterval × ↑(TopCat.disk (k i)), Y)) (hC : ∀ (i : ι) (t : ↑unitInterval) (s : ↑(TopCat.diskBoundary (k i))), (C i) (t, (CategoryTheory.ConcreteCategory.hom (TopCat.diskBoundaryInclusion (k i))) s) = L (t, (CategoryTheory.ConcreteCategory.hom ((φ i).morseAttachingMap ⋯ hε ⋯ ⋯)) s)) (t : ↑unitInterval) (i : ι) (w : ↑(TopCat.disk (k i))) :
            (morseCellAttachmentProdDesc φ k hk hball hf hε L C hC) (t, (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentCell φ k hk hε hball hf i)) w) = (C i) (t, w)

            On the cell of the chart φ i, the map glued by TauCeti.morseCellAttachmentProdDesc is C i.

            noncomputable def TauCeti.morseCellAttachmentIso {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) :
            morseCellAttachment φ₁ k hk hε hball₁ hf₁ ≅ morseCellAttachment φ₀ k hk hε hball₀ hf₀

            Strict reattachment. Let φ₀ and φ₁ be two families of normal-form charts at the same level, and let h i be homeomorphisms of the discs D^{k i} restricting to homeomorphisms g i of their boundary spheres. If the attaching maps agree up to these reparametrizations, α₁ i = α₀ i ∘ g i, then the map which is the identity on the lower sublevel M_{c-ε} and h i on the i-th disc is a homeomorphism M_{c-ε} ∪_{α₁} ⨆ᵢ D^{k i} ≅ M_{c-ε} ∪_{α₀} ⨆ᵢ D^{k i} relative to M_{c-ε} (TauCeti.morseCellAttachmentIncl_comp_morseCellAttachmentIso_hom). For an orthogonal h i, take LinearIsometryEquiv.diskIso and LinearIsometryEquiv.diskBoundaryIso.

            Instances For
              @[simp]
              theorem TauCeti.morseCellAttachmentIncl_comp_morseCellAttachmentIso_hom {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₁ k hk hε hball₁ hf₁) (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom = morseCellAttachmentIncl φ₀ k hk hε hball₀ hf₀

              The strict reattachment homeomorphism is the identity on the lower sublevel.

              @[simp]
              theorem TauCeti.morseCellAttachmentIncl_comp_morseCellAttachmentIso_hom_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) {Z : TopCat} (h✝ : morseCellAttachment φ₀ k hk hε hball₀ hf₀ ⟶ Z) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₁ k hk hε hball₁ hf₁) (CategoryTheory.CategoryStruct.comp (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom h✝) = CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₀ k hk hε hball₀ hf₀) h✝

              The strict reattachment homeomorphism is the identity on the lower sublevel.

              @[simp]
              theorem TauCeti.morseCellAttachmentCell_comp_morseCellAttachmentIso_hom {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (i : ι) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₁ k hk hε hball₁ hf₁ i) (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom = CategoryTheory.CategoryStruct.comp (h i).hom (morseCellAttachmentCell φ₀ k hk hε hball₀ hf₀ i)

              The strict reattachment homeomorphism is h i on the i-th cell.

              @[simp]
              theorem TauCeti.morseCellAttachmentCell_comp_morseCellAttachmentIso_hom_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (i : ι) {Z : TopCat} (h✝ : morseCellAttachment φ₀ k hk hε hball₀ hf₀ ⟶ Z) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₁ k hk hε hball₁ hf₁ i) (CategoryTheory.CategoryStruct.comp (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom h✝) = CategoryTheory.CategoryStruct.comp (h i).hom (CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₀ k hk hε hball₀ hf₀ i) h✝)

              The strict reattachment homeomorphism is h i on the i-th cell.

              @[simp]
              theorem TauCeti.morseCellAttachmentIncl_comp_morseCellAttachmentIso_inv {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₀ k hk hε hball₀ hf₀) (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).inv = morseCellAttachmentIncl φ₁ k hk hε hball₁ hf₁

              The inverse of the strict reattachment homeomorphism is the identity on the lower sublevel.

              @[simp]
              theorem TauCeti.morseCellAttachmentIncl_comp_morseCellAttachmentIso_inv_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) {Z : TopCat} (h✝ : morseCellAttachment φ₁ k hk hε hball₁ hf₁ ⟶ Z) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₀ k hk hε hball₀ hf₀) (CategoryTheory.CategoryStruct.comp (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).inv h✝) = CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ₁ k hk hε hball₁ hf₁) h✝

              The inverse of the strict reattachment homeomorphism is the identity on the lower sublevel.

              @[simp]
              theorem TauCeti.morseCellAttachmentCell_comp_morseCellAttachmentIso_inv {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (i : ι) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₀ k hk hε hball₀ hf₀ i) (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).inv = CategoryTheory.CategoryStruct.comp (h i).inv (morseCellAttachmentCell φ₁ k hk hε hball₁ hf₁ i)

              The inverse of the strict reattachment homeomorphism is (h i)⁻¹ on the i-th cell.

              @[simp]
              theorem TauCeti.morseCellAttachmentCell_comp_morseCellAttachmentIso_inv_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (i : ι) {Z : TopCat} (h✝ : morseCellAttachment φ₁ k hk hε hball₁ hf₁ ⟶ Z) :
              CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₀ k hk hε hball₀ hf₀ i) (CategoryTheory.CategoryStruct.comp (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).inv h✝) = CategoryTheory.CategoryStruct.comp (h i).inv (CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ₁ k hk hε hball₁ hf₁ i) h✝)

              The inverse of the strict reattachment homeomorphism is (h i)⁻¹ on the i-th cell.

              @[simp]
              theorem TauCeti.morseCellAttachmentIso_hom_morseCellAttachmentIncl {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (x : ↑{x : M | f x ≤ c - ε}) :
              (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom) ((CategoryTheory.ConcreteCategory.hom (morseCellAttachmentIncl φ₁ k hk hε hball₁ hf₁)) x) = (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentIncl φ₀ k hk hε hball₀ hf₀)) x

              The strict reattachment homeomorphism sends a point of the lower sublevel to itself.

              @[simp]
              theorem TauCeti.morseCellAttachmentIso_hom_morseCellAttachmentCell {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (i : ι) (w : ↑(TopCat.disk (k i))) :
              (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom) ((CategoryTheory.ConcreteCategory.hom (morseCellAttachmentCell φ₁ k hk hε hball₁ hf₁ i)) w) = (CategoryTheory.ConcreteCategory.hom (morseCellAttachmentCell φ₀ k hk hε hball₀ hf₀ i)) ((CategoryTheory.ConcreteCategory.hom (h i).hom) w)

              The strict reattachment homeomorphism sends the point w of the disc of i to the point h i w of the disc of i.

              noncomputable def TauCeti.morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 ≤ ε) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) :
              morseCellAttachment φ k hk hε hball hf ⟶ ↧↑{x : M | f x ≤ c + ε}

              The comparison map M_{c-ε} ∪_α ⨆ᵢ D^{k i} → M_{c+ε} from TauCeti.morseCellAttachment to the sublevel M_{c+ε} = {f ≤ c + ε}, induced on the pushout by the inclusion of the lower sublevel M_{c-ε} and by the characteristic maps OpenPartialHomeomorph.morseCharacteristicMap of the cells.

              Instances For
                @[simp]
                theorem TauCeti.morseCellAttachmentIncl_comp_morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) :
                CategoryTheory.CategoryStruct.comp (morseCellAttachmentIncl φ k hk hε hball hf) (morseCellComparison φ k hk hε hball hf) = TopCat.ofHom (sublevelInclusion f (c - ε) (c + ε) ⋯)

                On the lower sublevel, the comparison map is the inclusion M_{c-ε} → M_{c+ε}.

                @[simp]
                theorem TauCeti.morseCellAttachmentIncl_comp_morseCellComparison_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) {Z : TopCat} (h : ↧↑{x : M | f x ≤ c + ε} ⟶ Z) :

                On the lower sublevel, the comparison map is the inclusion M_{c-ε} → M_{c+ε}.

                @[simp]
                theorem TauCeti.morseCellAttachmentCell_comp_morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (i : ι) :
                CategoryTheory.CategoryStruct.comp (morseCellAttachmentCell φ k hk hε hball hf i) (morseCellComparison φ k hk hε hball hf) = (φ i).morseCharacteristicMap ⋯ hε ⋯ ⋯

                On the cell of the chart φ i, the comparison map is the characteristic map of the cell.

                @[simp]
                theorem TauCeti.morseCellAttachmentCell_comp_morseCellComparison_assoc {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (i : ι) {Z : TopCat} (h : ↧↑{x : M | f x ≤ c + ε} ⟶ Z) :

                On the cell of the chart φ i, the comparison map is the characteristic map of the cell.

                @[simp]
                theorem TauCeti.coe_morseCellComparison_morseCellAttachmentIncl {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (x : ↑{x : M | f x ≤ c - ε}) :

                The comparison map sends a point of the lower sublevel to itself.

                @[simp]
                theorem TauCeti.coe_morseCellComparison_morseCellAttachmentCell {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 ≤ ε) (i : ι) (w : ↑(TopCat.disk (k i))) :
                ↑((CategoryTheory.ConcreteCategory.hom (morseCellComparison φ k hk hε hball hf)) ((CategoryTheory.ConcreteCategory.hom (morseCellAttachmentCell φ k hk hε hball hf i)) w)) = (φ i).morseCellMap ⋯ ε ↑w.down

                The comparison map sends the point w of the cell of the chart φ i to φ i⁻¹(√ε • (w, 0)).

                theorem TauCeti.morseCellAttachmentIso_hom_comp_morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (φ₀ φ₁ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (hball₀ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₀ i).target) (hball₁ : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ₁ i).target) (hf₀ : ∀ (i : ι), ∀ y ∈ (φ₀ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₀ i) y).ofLp j ^ 2) (hf₁ : ∀ (i : ι), ∀ y ∈ (φ₁ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ₁ i) y).ofLp j ^ 2) (h : (i : ι) → TopCat.disk (k i) ≅ TopCat.disk (k i)) (g : (i : ι) → TopCat.diskBoundary (k i) ≅ TopCat.diskBoundary (k i)) (hg : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (g i).hom (TopCat.diskBoundaryInclusion (k i)) = CategoryTheory.CategoryStruct.comp (TopCat.diskBoundaryInclusion (k i)) (h i).hom) (hε : 0 ≤ ε) (hα : ∀ (i : ι), (φ₁ i).morseAttachingMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (g i).hom ((φ₀ i).morseAttachingMap ⋯ hε ⋯ ⋯)) (hχ : ∀ (i : ι), (φ₁ i).morseCharacteristicMap ⋯ hε ⋯ ⋯ = CategoryTheory.CategoryStruct.comp (h i).hom ((φ₀ i).morseCharacteristicMap ⋯ hε ⋯ ⋯)) :
                CategoryTheory.CategoryStruct.comp (morseCellAttachmentIso φ₀ φ₁ k hk hε hball₀ hball₁ hf₀ hf₁ h g hg hα).hom (morseCellComparison φ₀ k hk hε hball₀ hf₀) = morseCellComparison φ₁ k hk hε hball₁ hf₁

                If the characteristic maps are strictly related, χ₁ i = χ₀ i ∘ h i, then the strict reattachment homeomorphism intertwines the handle-to-cell comparisons: Φ₀ ∘ (id ⊔ h) = Φ₁.

                theorem TauCeti.range_morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hε : 0 < ε) :
                Set.range ⇑(CategoryTheory.ConcreteCategory.hom (morseCellComparison φ k hk ⋯ hball hf)) = {x : ↑{x : M | f x ≤ c + ε} | ↑x ∈ {x : M | f x ≤ c - ε} ∪ ⋃ (i : ι), (φ i).source ∩ ↑(φ i) ⁻¹' {y : EuclideanSpace ℝ (Fin n) | ‖y‖ ^ 2 ≤ ε ∧ ∀ (j : Fin n), k i ≤ ↑j → y.ofLp j = 0}}

                The image of the comparison map is the lower sublevel M_{c-ε} together with the cells {‖φ i x‖² ≤ ε, (φ i x)ⱼ = 0 for j ≥ k i} of the charts.

                theorem TauCeti.morseCellComparison_injective {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) (hφ : Pairwise (Function.onFun Disjoint fun (i : ι) => (φ i).source)) (hε : 0 < ε) :

                The comparison map is injective: the open discs are carried off the lower sublevel and into the pairwise disjoint chart sources.

                theorem TauCeti.isClosedEmbedding_morseCellComparison {M : Type u} [TopologicalSpace M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} (φ : ι → OpenPartialHomeomorph M (EuclideanSpace ℝ (Fin n))) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hball : ∀ (i : ι), Metric.closedBall 0 √ε ⊆ (φ i).target) (hf : ∀ (i : ι), ∀ y ∈ (φ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(φ i) y).ofLp j ^ 2) [T2Space M] [Finite ι] (hfc : Continuous f) (hφ : Pairwise (Function.onFun Disjoint fun (i : ι) => (φ i).source)) (hε : 0 < ε) :

                The handle-to-cell comparison is a closed embedding. For a continuous f on a Hausdorff space, the comparison map M_{c-ε} ∪_α ⨆ᵢ D^{k i} → M_{c+ε} of finitely many normal-form charts with disjoint sources is a closed embedding.

                theorem TauCeti.exists_morseCellAttachment_deformation {E : Type u_1} {H : Type u_2} {M : Type u} [NormedAddCommGroup E] [NormedSpace ℝ E] [TopologicalSpace H] {I : ModelWithCorners ℝ E H} [TopologicalSpace M] [ChartedSpace H M] [FiniteDimensional ℝ E] [I.Boundaryless] [IsManifold I (↑⊤) M] [T2Space M] {n : ℕ} {ι : Type u} {f : M → ℝ} {c ε : ℝ} [Finite ι] (hfs : ContMDiff I (modelWithCornersSelf ℝ ℝ) (↑⊤) f) (ψ : ι → PartialDiffeomorph I (modelWithCornersSelf ℝ (EuclideanSpace ℝ (Fin n))) M (EuclideanSpace ℝ (Fin n)) ↑⊤) (hψ : Pairwise (Function.onFun Disjoint fun (i : ι) => (ψ i).source)) (k : ι → ℕ) (hk : ∀ (i : ι), k i ≤ n) (hε : 0 < ε) (hball : ∀ (i : ι), Metric.closedBall 0 √(2 * ε) ⊆ (ψ i).target) (hf : ∀ (i : ι), ∀ y ∈ (ψ i).source, f y = c + ∑ j : Fin n, (if ↑j < k i then -1 else 1) * (↑(ψ i).toPartialEquiv y).ofLp j ^ 2) (hcompact : IsCompact (f ⁻¹' Set.Icc (c - ε) (c + ε))) (hcrit : criticalPoints I f ∩ f ⁻¹' Set.Icc (c - ε) (c + ε) ⊆ ⋃ (i : ι), (ψ i).source) :
                ∃ (g : C(↑{x : M | f x ≤ c + ε}, ↑(morseCellAttachment (fun (i : ι) => (ψ i).toOpenPartialHomeomorph) k hk ⋯ ⋯ hf))), Function.LeftInverse ⇑g ⇑(CategoryTheory.ConcreteCategory.hom (morseCellComparison (fun (i : ι) => (ψ i).toOpenPartialHomeomorph) k hk ⋯ ⋯ hf)) ∧ (ContinuousMap.id ↑↧↑{x : M | f x ≤ c + ε}).HomotopicRel ((TopCat.Hom.hom (morseCellComparison (fun (i : ι) => (ψ i).toOpenPartialHomeomorph) k hk ⋯ ⋯ hf)).comp g) (Set.range ⇑(CategoryTheory.ConcreteCategory.hom (morseCellComparison (fun (i : ι) => (ψ i).toOpenPartialHomeomorph) k hk ⋯ ⋯ hf)))

                The handle-to-cell comparison is a homotopy equivalence relative to the lower sublevel. Let f be smooth and let ψ i be finitely many charts with pairwise disjoint sources, whose targets contain the closed ball of radius √(2ε) about 0, in which f = c - Σ_{j < k i} yⱼ² + Σ_{j ≥ k i} yⱼ². If the band f⁻¹[c - ε, c + ε] is compact and its critical points lie in the charts, then the comparison map Φ : M_{c-ε} ∪_α ⨆ᵢ D^{k i} → M_{c+ε} has a left inverse g such that Φ ∘ g is homotopic to the identity of M_{c+ε} relative to the image of Φ, which contains the lower sublevel M_{c-ε}.

                theorem TauCeti.IsMorse.exists_morseCellAttachment_deformation {E : Type u_1} {H : Type u_2} {M : Type u} [NormedAddCommGroup E] [NormedSpace ℝ E] [TopologicalSpace H] {I : ModelWithCorners ℝ E H} [TopologicalSpace M] [ChartedSpace H M] [FiniteDimensional ℝ E] [I.Boundaryless] [IsManifold I (↑⊤) M] [T2Space M] {f : M → ℝ} {c : ℝ} (hf : IsMorse I f) {δ : ℝ} (hδ : 0 < δ) (hcompact : IsCompact (f ⁻¹' Set.Icc (c - δ) (c + δ))) :
                ∃ (ε : ℝ) (hε : 0 < ε), ε ≤ δ ∧ ∃ (ψ : ↑(criticalPoints I f ∩ f ⁻¹' {c}) → PartialDiffeomorph I (modelWithCornersSelf ℝ (EuclideanSpace ℝ (Fin (Module.finrank ℝ E)))) M (EuclideanSpace ℝ (Fin (Module.finrank ℝ E))) ↑⊤), Pairwise (Function.onFun Disjoint fun (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => (ψ p).source) ∧ (∀ (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})), ↑p ∈ (ψ p).source ∧ ↑(ψ p).toPartialEquiv ↑p = 0) ∧ ∃ (hball : ∀ (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})), Metric.closedBall 0 √ε ⊆ (ψ p).target) (hψ : ∀ (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})), ∀ y ∈ (ψ p).source, f y = c + ∑ i : Fin (Module.finrank ℝ E), (if ↑i < manifoldMorseIndex I f ↑p then -1 else 1) * (↑(ψ p).toPartialEquiv y).ofLp i ^ 2) (g : C(↑{x : M | f x ≤ c + ε}, ↑(morseCellAttachment (fun (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => (ψ p).toOpenPartialHomeomorph) (fun (x : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => manifoldMorseIndex I f ↑x) ⋯ ⋯ hball hψ))), Function.LeftInverse ⇑g ⇑(CategoryTheory.ConcreteCategory.hom (morseCellComparison (fun (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => (ψ p).toOpenPartialHomeomorph) (fun (x : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => manifoldMorseIndex I f ↑x) ⋯ ⋯ hball hψ)) ∧ (ContinuousMap.id ↑↧↑{x : M | f x ≤ c + ε}).HomotopicRel ((TopCat.Hom.hom (morseCellComparison (fun (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => (ψ p).toOpenPartialHomeomorph) (fun (x : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => manifoldMorseIndex I f ↑x) ⋯ ⋯ hball hψ)).comp g) (Set.range ⇑(CategoryTheory.ConcreteCategory.hom (morseCellComparison (fun (p : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => (ψ p).toOpenPartialHomeomorph) (fun (x : ↑(criticalPoints I f ∩ f ⁻¹' {c})) => manifoldMorseIndex I f ↑x) ⋯ ⋯ hball hψ)))

                Milnor's cell attachment theorem, in pushout form. Let f be a Morse function and c a value with a compact band f⁻¹[c - δ, c + δ]. Then for some 0 < ε ≤ δ there are normalized Morse charts ψ p at the critical points p on the level c, with pairwise disjoint sources, such that the comparison map Φ : M_{c-ε} ∪_α ⨆ₚ D^{λ p} → M_{c+ε} from the lower sublevel with one cell of dimension the Morse index λ p attached at each p has a left inverse g, and Φ ∘ g is homotopic to the identity of M_{c+ε} relative to the image of Φ, which contains the lower sublevel M_{c-ε}.