Theorem: cfcHom_eq_cfc_extend
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
⊢ (cfcHom ha) f = cfc (Function.extend Subtype.val (⇑f) g) a
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
⊢ (cfcHom ha) f = cfc (Function.extend Subtype.val (⇑f) g) a
tactic: have h : f = (spectrum R a).restrict (Function.extend Subtype.val f g) := by
    ext; simp [Subtype.val_injective.extend_apply]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
⊢ (cfcHom ha) f = cfc (Function.extend Subtype.val (⇑f) g) a
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
hg : ContinuousOn (Function.extend Subtype.val (⇑f) g) (spectrum R a)
⊢ (cfcHom ha) f = cfc (Function.extend Subtype.val (⇑f) g) a
tactic: have hg : ContinuousOn (Function.extend Subtype.val f g) (spectrum R a) :=
    continuousOn_iff_continuous_restrict.mpr <| h ▸ map_continuous f
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
hg : ContinuousOn (Function.extend Subtype.val (⇑f) g) (spectrum R a)
⊢ (cfcHom ha) f = cfc (Function.extend Subtype.val (⇑f) g) a
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
hg : ContinuousOn (Function.extend Subtype.val (⇑f) g) (spectrum R a)
⊢ (cfcHom ha) f =
    (cfcHom ha) { toFun := (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g), continuous_toFun := ⋯ }
tactic: rw [cfc_apply ..]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (spectrum R a✝)) _auto✝
a : A
g : R → R
ha : p a
f : C(↑(spectrum R a), R)
h : ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
hg : ContinuousOn (Function.extend Subtype.val (⇑f) g) (spectrum R a)
⊢ (cfcHom ha) f =
    (cfcHom ha) { toFun := (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g), continuous_toFun := ⋯ }
state_after: no goals
tactic: congr!