Theorem: closedEmbedding_cfcₙHom_of_cfcHom
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
⊢ ClosedEmbedding ⇑(cfcₙHom_of_cfcHom R ha)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
⊢ ClosedEmbedding ⇑(cfcₙHom_of_cfcHom R ha)
tactic: let f : C(spectrum R a, σₙ R a) :=
    ⟨_, continuous_inclusion <| spectrum_subset_quasispectrum R a⟩
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
⊢ ClosedEmbedding ⇑(cfcₙHom_of_cfcHom R ha)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
⊢ ClosedEmbedding ⇑(cfcₙHom_of_cfcHom R ha)
tactic: have h_cpct' : CompactSpace (σₙ R a) := by
    specialize h_cpct a
    simp_rw [← isCompact_iff_compactSpace, quasispectrum_eq_spectrum_union_zero] at h_cpct ⊢
    exact h_cpct.union isCompact_singleton
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
⊢ ClosedEmbedding ⇑(cfcₙHom_of_cfcHom R ha)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    𝓤 C(↑(σₙ R a), R)₀
tactic: refine (cfcHom_closedEmbedding ha).comp <|
    (UniformInducing.uniformEmbedding ⟨?_⟩).toClosedEmbedding
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    𝓤 C(↑(σₙ R a), R)₀
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    𝓤 C(↑(σₙ R a), R)₀
tactic: have := uniformSpace_eq_inf_precomp_of_cover (β := R) f (0 : C(Unit, σₙ R a))
    (map_continuous f).isProperMap (map_continuous 0).isProperMap <| by
      simp only [← Subtype.val_injective.image_injective.eq_iff, f, ContinuousMap.coe_mk,
        ContinuousMap.coe_zero, range_zero, image_union, image_singleton,
        quasispectrum.coe_zero, ← range_comp, val_comp_inclusion, image_univ, Subtype.range_coe,
        quasispectrum_eq_spectrum_union_zero]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    𝓤 C(↑(σₙ R a), R)₀
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    Filter.comap
        ((Prod.map (fun x => x.comp f) fun x => x.comp f) ∘
          Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
        (𝓤 C(↑(spectrum R a), R)) ⊓
      Filter.comap
        ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
          Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
        (𝓤 C(Unit, R))
tactic: simp_rw [ContinuousMapZero.instUniformSpace, this, uniformity_comap,
    @inf_uniformity _ (.comap _ _) (.comap _ _), uniformity_comap, Filter.comap_inf,
    Filter.comap_comap]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      (fun x =>
        (↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.1,
          ↑((↑(compStarAlgHom' R R { toFun := inclusion ⋯, continuous_toFun := ⋯ })).comp
                  toContinuousMapHom).toNonUnitalAlgHom
            x.2))
      (𝓤 C(↑(spectrum R a), R)) =
    Filter.comap
        ((Prod.map (fun x => x.comp f) fun x => x.comp f) ∘
          Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
        (𝓤 C(↑(spectrum R a), R)) ⊓
      Filter.comap
        ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
          Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
        (𝓤 C(Unit, R))
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
        Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
      (𝓤 C(Unit, R)) =
    ⊤
tactic: refine .symm <| inf_eq_left.mpr <| le_top.trans <| eq_top_iff.mp ?_
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
⊢ Filter.comap
      ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
        Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
      (𝓤 C(Unit, R)) =
    ⊤
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this✝ :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
this : ∀ U ∈ 𝓤 C(Unit, R), (0, 0) ∈ U
⊢ Filter.comap
      ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
        Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
      (𝓤 C(Unit, R)) =
    ⊤
tactic: have : ∀ U ∈ 𝓤 (C(Unit, R)), (0, 0) ∈ U := fun U hU ↦ refl_mem_uniformity hU
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Field R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : CompleteSpace R
inst✝⁶ : TopologicalRing R
inst✝⁵ : ContinuousStar R
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : TopologicalSpace A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
h_cpct : ∀ (a : A), CompactSpace ↑(spectrum R a)
a : A
ha : p a
f : C(↑(spectrum R a), ↑(σₙ R a)) := { toFun := inclusion ⋯, continuous_toFun := ⋯ }
h_cpct' : CompactSpace ↑(σₙ R a)
this✝ :
  inferInstanceAs (UniformSpace C(↑(σₙ R a), R)) =
    UniformSpace.comap (fun x => x.comp f) inferInstance ⊓ UniformSpace.comap (fun x => x.comp 0) inferInstance
this : ∀ U ∈ 𝓤 C(Unit, R), (0, 0) ∈ U
⊢ Filter.comap
      ((Prod.map (fun x => x.comp 0) fun x => x.comp 0) ∘
        Prod.map ContinuousMapZero.toContinuousMap ContinuousMapZero.toContinuousMap)
      (𝓤 C(Unit, R)) =
    ⊤
state_after: no goals
tactic: convert Filter.comap_const_of_mem this with ⟨u, v⟩ <;>
  ext ⟨x, rfl⟩ <;> [exact map_zero u; exact map_zero v]