File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Restrict.lean

full_name: SpectrumRestricts.homeomorph
code: /-- The homeomorphism `spectrum S a ≃ₜ spectrum R a` induced by `SpectrumRestricts a f`. -/
def homeomorph {R S A : Type*} [Semifield R] [Semifield S] [Ring A]
    [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [TopologicalSpace R]
    [TopologicalSpace S] [ContinuousSMul R S] {a : A} {f : C(S, R)} (h : SpectrumRestricts a f) :
    spectrum S a ≃ₜ spectrum R a 
goal: ↑(spectrum S a) ≃ₜ ↑(spectrum R a)

full_name: SpectrumRestricts.compactSpace
code: lemma compactSpace {R S A : Type*} [Semifield R] [Semifield S] [Ring A]
    [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [TopologicalSpace R]
    [TopologicalSpace S] {a : A} (f : C(S, R)) (h : SpectrumRestricts a f)
    [h_cpct : CompactSpace (spectrum S a)] : CompactSpace (spectrum R a) 
goal: CompactSpace ↑(spectrum R a)

full_name: SpectrumRestricts.starAlgHom_apply
code: /-- If the spectrum of an element restricts to a smaller scalar ring, then a continuous functional
calculus over the larger scalar ring descends to the smaller one. -/
@[simps!]
def starAlgHom {R : Type u} {S : Type v} {A : Type w} [Semifield R]
    [StarRing R] [TopologicalSpace R] [TopologicalSemiring R] [ContinuousStar R] [Semifield S]
    [StarRing S] [TopologicalSpace S] [TopologicalSemiring S] [ContinuousStar S] [Ring A]
    [StarRing A] [Algebra R S] [Algebra R A] [Algebra S A]
    [IsScalarTower R S A] [StarModule R S] [ContinuousSMul R S] {a : A}
    (φ : C(spectrum S a, S) →⋆ₐ[S] A) {f : C(S, R)} (h : SpectrumRestricts a f) :
    C(spectrum R a, R) →⋆ₐ[R] A 
goal: ∀ (a_1 : C(↑(spectrum R a), R)),
  (SpectrumRestricts.starAlgHom φ h) a_1 =
    φ
      ({ toFun := ⇑(StarAlgHom.ofId R S), continuous_toFun := ⋯ }.comp
        (a_1.comp { toFun := Subtype.map ⇑f ⋯, continuous_toFun := ⋯ }))

full_name: SpectrumRestricts.starAlgHom
code: /-- If the spectrum of an element restricts to a smaller scalar ring, then a continuous functional
calculus over the larger scalar ring descends to the smaller one. -/
@[simps!]
def starAlgHom {R : Type u} {S : Type v} {A : Type w} [Semifield R]
    [StarRing R] [TopologicalSpace R] [TopologicalSemiring R] [ContinuousStar R] [Semifield S]
    [StarRing S] [TopologicalSpace S] [TopologicalSemiring S] [ContinuousStar S] [Ring A]
    [StarRing A] [Algebra R S] [Algebra R A] [Algebra S A]
    [IsScalarTower R S A] [StarModule R S] [ContinuousSMul R S] {a : A}
    (φ : C(spectrum S a, S) →⋆ₐ[S] A) {f : C(S, R)} (h : SpectrumRestricts a f) :
    C(spectrum R a, R) →⋆ₐ[R] A 
goal: C(↑(spectrum R a), R) →⋆ₐ[R] A

full_name: SpectrumRestricts.closedEmbedding_starAlgHom
code: lemma closedEmbedding_starAlgHom {a : A} {φ : C(spectrum S a, S) →⋆ₐ[S] A}
    (hφ : ClosedEmbedding φ) {f : C(S, R)} (h : SpectrumRestricts a f)
    (halg : UniformEmbedding (algebraMap R S)) [CompactSpace (spectrum S a)] :
    ClosedEmbedding (h.starAlgHom φ) 
goal: ClosedEmbedding ⇑(SpectrumRestricts.starAlgHom φ h)

full_name: SpectrumRestricts.starAlgHom_id
code: lemma starAlgHom_id {a : A} {φ : C(spectrum S a, S) →⋆ₐ[S] A} {f : C(S, R)}
    (h : SpectrumRestricts a f) (h_id : φ (.restrict (spectrum S a) <| .id S) = a) :
    h.starAlgHom φ (.restrict (spectrum R a) <| .id R) = a 
goal: (SpectrumRestricts.starAlgHom φ h) (ContinuousMap.restrict (spectrum R a) (ContinuousMap.id R)) = a

full_name: SpectrumRestricts.cfc
code: /-- Given a `ContinuousFunctionalCalculus S q`. If we form the predicate `p` for `a : A`
characterized by: `q a` and the spectrum of `a` restricts to the scalar subring `R` via
`f : C(S, R)`, then we can get a restricted functional calculus
`ContinuousFunctionalCalculus R p`. -/
protected theorem cfc (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) (h0 : p 0)
    (h : ∀ a, p a ↔ q a ∧ SpectrumRestricts a f) (h_cpct : ∀ a, q a → CompactSpace (spectrum S a)) :
    ContinuousFunctionalCalculus R p 
goal: ContinuousFunctionalCalculus R p

full_name: SpectrumRestricts.cfcHom_eq_restrict
code: lemma cfcHom_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S))
    {a : A} (hpa : p a) (hqa : q a) (h : SpectrumRestricts a f) [CompactSpace (spectrum S a)] :
    cfcHom hpa = h.starAlgHom (cfcHom hqa) 
goal: cfcHom hpa = SpectrumRestricts.starAlgHom (cfcHom hqa) h

full_name: SpectrumRestricts.cfc_eq_restrict
code: lemma cfc_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) {a : A} (hpa : p a)
    (hqa : q a) (h : SpectrumRestricts a f) [CompactSpace (spectrum S a)] (g : R → R) :
    cfc g a = cfc (fun x ↦ algebraMap R S (g (f x))) a 
goal: cfc g a = cfc (fun x => (algebraMap R S) (g (f x))) a

full_name: QuasispectrumRestricts._aux_Mathlib_Analysis_CstarAlgebra_ContinuousFunctionalCalculus_Restrict___macroRules_QuasispectrumRestricts_termσₙ_1
code: local notation "σₙ" => quasispectrum
goal: Lean.Macro

full_name: QuasispectrumRestricts._aux_Mathlib_Analysis_CstarAlgebra_ContinuousFunctionalCalculus_Restrict___unexpand_quasispectrum_1
code: local notation "σₙ" => quasispectrum
goal: Lean.PrettyPrinter.Unexpander

full_name: QuasispectrumRestricts.homeomorph
code: /-- The homeomorphism `quasispectrum S a ≃ₜ quasispectrum R a` induced by
`QuasispectrumRestricts a f`. -/
def homeomorph {R S A : Type*} [Semifield R] [Field S] [NonUnitalRing A]
    [Algebra R S] [Module R A] [Module S A] [IsScalarTower R S A] [TopologicalSpace R]
    [TopologicalSpace S] [ContinuousSMul R S] [IsScalarTower S A A] [SMulCommClass S A A]
    {a : A} {f : C(S, R)} (h : QuasispectrumRestricts a f) :
    σₙ S a ≃ₜ σₙ R a 
goal: ↑(quasispectrum S a) ≃ₜ ↑(quasispectrum R a)

full_name: QuasispectrumRestricts.nonUnitalStarAlgHom_apply
code: /-- If the quasispectrum of an element restricts to a smaller scalar ring, then a non-unital
continuous functional calculus over the larger scalar ring descends to the smaller one. -/
@[simps!]
def nonUnitalStarAlgHom {R : Type u} {S : Type v} {A : Type w} [Semifield R]
    [StarRing R] [TopologicalSpace R] [TopologicalSemiring R] [ContinuousStar R] [Field S]
    [StarRing S] [TopologicalSpace S] [TopologicalRing S] [ContinuousStar S] [NonUnitalRing A]
    [StarRing A] [Algebra R S] [Module R A] [Module S A] [IsScalarTower S A A] [SMulCommClass S A A]
    [IsScalarTower R S A] [StarModule R S] [ContinuousSMul R S] {a : A}
    (φ : C(σₙ S a, S)₀ →⋆ₙₐ[S] A) {f : C(S, R)} (h : QuasispectrumRestricts a f) :
    C(σₙ R a, R)₀ →⋆ₙₐ[R] A 
goal: ∀ (a_1 : ContinuousMapZero (↑(quasispectrum R a)) R),
  (QuasispectrumRestricts.nonUnitalStarAlgHom φ h) a_1 =
    φ
      ({ toFun := ⇑(StarAlgHom.ofId R S), continuous_toFun := ⋯, map_zero' := ⋯ }.comp
        (a_1.comp { toFun := Subtype.map ⇑f ⋯, continuous_toFun := ⋯, map_zero' := ⋯ }))

full_name: QuasispectrumRestricts.nonUnitalStarAlgHom
code: /-- If the quasispectrum of an element restricts to a smaller scalar ring, then a non-unital
continuous functional calculus over the larger scalar ring descends to the smaller one. -/
@[simps!]
def nonUnitalStarAlgHom {R : Type u} {S : Type v} {A : Type w} [Semifield R]
    [StarRing R] [TopologicalSpace R] [TopologicalSemiring R] [ContinuousStar R] [Field S]
    [StarRing S] [TopologicalSpace S] [TopologicalRing S] [ContinuousStar S] [NonUnitalRing A]
    [StarRing A] [Algebra R S] [Module R A] [Module S A] [IsScalarTower S A A] [SMulCommClass S A A]
    [IsScalarTower R S A] [StarModule R S] [ContinuousSMul R S] {a : A}
    (φ : C(σₙ S a, S)₀ →⋆ₙₐ[S] A) {f : C(S, R)} (h : QuasispectrumRestricts a f) :
    C(σₙ R a, R)₀ →⋆ₙₐ[R] A 
goal: ContinuousMapZero (↑(quasispectrum R a)) R →⋆ₙₐ[R] A

full_name: QuasispectrumRestricts.closedEmbedding_nonUnitalStarAlgHom
code: lemma closedEmbedding_nonUnitalStarAlgHom {a : A} {φ : C(σₙ S a, S)₀ →⋆ₙₐ[S] A}
    (hφ : ClosedEmbedding φ) {f : C(S, R)} (h : QuasispectrumRestricts a f)
    (halg : UniformEmbedding (algebraMap R S)) [h_cpct : CompactSpace (σₙ S a)] :
    ClosedEmbedding (h.nonUnitalStarAlgHom φ) 
goal: ClosedEmbedding ⇑(QuasispectrumRestricts.nonUnitalStarAlgHom φ h)

full_name: QuasispectrumRestricts.nonUnitalStarAlgHom_id
code: lemma nonUnitalStarAlgHom_id {a : A} {φ : C(σₙ S a, S)₀ →⋆ₙₐ[S] A} {f : C(S, R)}
    (h : QuasispectrumRestricts a f) (h_id : φ (.id rfl) = a) :
    h.nonUnitalStarAlgHom φ (.id rfl) = a 
goal: (QuasispectrumRestricts.nonUnitalStarAlgHom φ h) (ContinuousMapZero.id ⋯) = a

full_name: QuasispectrumRestricts.cfc
code: /-- Given a `NonUnitalContinuousFunctionalCalculus S q`. If we form the predicate `p` for `a : A`
characterized by: `q a` and the quasispectrum of `a` restricts to the scalar subring `R` via
`f : C(S, R)`, then we can get a restricted functional calculus
`NonUnitalContinuousFunctionalCalculus R p`. -/
protected theorem cfc (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) (h0 : p 0)
    (h : ∀ a, p a ↔ q a ∧ QuasispectrumRestricts a f) (h_cpct : ∀ a, q a → CompactSpace (σₙ S a)) :
    NonUnitalContinuousFunctionalCalculus R p 
goal: NonUnitalContinuousFunctionalCalculus R p

full_name: QuasispectrumRestricts.cfcₙHom_eq_restrict
code: lemma cfcₙHom_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) {a : A}
    (hpa : p a) (hqa : q a) (h : QuasispectrumRestricts a f) [CompactSpace (σₙ S a)] :
    cfcₙHom hpa = h.nonUnitalStarAlgHom (cfcₙHom hqa) 
goal: cfcₙHom hpa = QuasispectrumRestricts.nonUnitalStarAlgHom (cfcₙHom hqa) h

full_name: QuasispectrumRestricts.cfcₙ_eq_restrict
code: lemma cfcₙ_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) {a : A} (hpa : p a)
    (hqa : q a) (h : QuasispectrumRestricts a f) [CompactSpace (σₙ S a)] (g : R → R) :
    cfcₙ g a = cfcₙ (fun x ↦ algebraMap R S (g (f x))) a 
goal: cfcₙ g a = cfcₙ (fun x => (algebraMap R S) (g (f x))) a