Identifies the geometric structure of a representation image with a component closure.
Statement
Let be a complex C*-algebra, possibly without an identity, and let be a nonzero -representation on a complete complex Hilbert space. Let be a geometric-structure point whose component satisfies
(1)
With the inherited C*-algebra structure on , there is a specified closure-space homeomorphism
(2)
The target carries the subspace closure from . The exact declaration requires nonzero action and the explicit equality (1); it does not require irreducibility of in addition to them.
Definition
For any algebra here, denotes kernels of extreme points of the closed unit ball in the Banach dual , using real convexity. The geometric identification is supplied by the extreme-functional kernel characterization. Its closure is , including the empty family.
Regard as a map from onto its image . The defining map and its inverse are
Here and . The target is the ambient closure of the whole specified component, equipped with subspace closure. It is not the component alone.
The surjective preimage construction supplies the homeomorphism onto the geometric points containing . The component-closure identification uses (1) to identify that target with , without changing the point map. The image's nontriviality and compatible order are supplied by the image construction, not additional hypotheses.
Assumptions
The displayed scope requires a nonzero complex C*-algebra with its compatible order and a complete complex Hilbert space . The representation is nonzero, and the component of the specified point satisfies (1). Neither faithfulness nor irreducibility is an additional hypothesis. The cited image construction equips with its C*-algebra structure and compatible order.
Conclusion
The output bundles the displayed preimage map and its image-map inverse, with full closure continuity in both directions. The target is exactly with the inherited closure; it is not a claim that is closed.
Main citations
Exact full definition: NonUnitalCStarRepresentation.imageGeometricStructureHomeomorph.
SurjectivePreimage.lean, geometricStructurePreimageHomeomorph: the first stage of the construction.
ImageSubspace.lean, closure_component_eq_hull_ker and the value and closure lemmas following the definition: the target identification and the concrete action.
Ryotaro Tanaka, arXiv:2504.05551v1, Theorem 5.17. This card uses the quotient of the original algebra and its representation image.
The full definition below is copied from the pinned source.
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
The continuous-map wrapper in the same source, lines 37–43, is copied separately; it retains the given action with the norm bound supplied by NonUnitalStarAlgHom.norm_apply_le:
private def imageSubspaceContinuousMap {B : Type*} [NonUnitalCStarAlgebra B]
(q : A →⋆ₙₐ[ℂ] B) : A →L[ℂ] B :=
LinearMap.mkContinuous
{ toFun := q, map_add' := map_add q, map_smul' := map_smul q }
1 (fun a => by
change ‖q a‖ ≤ 1 * ‖a‖
simpa only [one_mul] using NonUnitalStarAlgHom.norm_apply_le q a)
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))
def imageGeometricStructureHomeomorph (hpi : pi.IsNonzero)
(I : NormedSpace.GeometricStructureSpace ℂ A)
(hI : NormedSpace.geometricSpectrumKernel ℂ A (NormedSpace.toGeometricSpectrum ℂ A I) =
((imageSubspaceContinuousMap pi).ker : Set A)) :
ClosureSpace.Homeomorph (NormedSpace.geometricStructureClosure ℂ (NonUnitalStarAlgHom.range pi))
((NormedSpace.geometricStructureClosure ℂ A).subspace
((NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I))) := by
letI : Nontrivial (NonUnitalStarAlgHom.range pi) := nontrivial_image_of_isNonzero pi hpi
letI : PartialOrder (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrder (NonUnitalStarAlgHom.range pi)
letI : StarOrderedRing (NonUnitalStarAlgHom.range pi) := _root_.CStarAlgebra.spectralOrderedRing (NonUnitalStarAlgHom.range pi)
let q := (NonUnitalStarAlgHom.rangeRestrict pi)
have hq : Function.Surjective q := rangeRestrict_surjective pi
have hker : ((imageSubspaceContinuousMap q).ker : Set A) =
((imageSubspaceContinuousMap pi).ker : Set A) := by
ext a
change q a = 0 ↔ pi a = 0
constructor
· intro h
exact congrArg Subtype.val h
· intro h
apply Subtype.ext
change pi a = 0
exact h
have htarget : ClosureSpace.HullKernel.hull (NormedSpace.geometricStructureFamily ℂ A)
((imageSubspaceContinuousMap q).ker : Set A) =
(NormedSpace.geometricStructureClosure ℂ A).closure
((NormedSpace.geometricStructureClosure ℂ A).component I) := by
rw [hker, closure_component_eq_hull_ker pi I hI]
exact (geometricStructurePreimageHomeomorph q hq).trans
((ClosureSpace.Homeomorph.refl (NormedSpace.geometricStructureClosure ℂ A)).subspace
_ _ (fun J => Set.ext_iff.mp htarget J))