Theorem: cfcHom_eq_cfc_extend
File: Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean

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)
⊢ (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 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)
⊢ (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: 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 = 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: congr!
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: ext
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)
⊢ ⇑f = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g)
state_after: case h
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)
x✝ : ↑(spectrum R a)
⊢ f x✝ = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g) x✝

tactic: simp [Subtype.val_injective.extend_apply]
state_before: case h
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)
x✝ : ↑(spectrum R a)
⊢ f x✝ = (spectrum R a).restrict (Function.extend Subtype.val (⇑f) g) x✝
state_after: no goals