Theorem: eqOn_of_cfcₙ_eq_cfcₙ
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
h : cfcₙ f a = cfcₙ g a
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
⊢ Set.EqOn f g (σₙ R a)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
⊢ Set.EqOn f g (σₙ R a)
tactic: rw [cfcₙ_apply f a, cfcₙ_apply g a] at h
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
⊢ Set.EqOn f g (σₙ R a)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
this :
  { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
⊢ Set.EqOn f g (σₙ R a)
tactic: have := (cfcₙHom_closedEmbedding (show p a from ha) (R := R)).inj h
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
this :
  { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
⊢ Set.EqOn f g (σₙ R a)
state_after: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
this :
  { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
x : R
hx : x ∈ σₙ R a
⊢ f x = g x
tactic: intro x hx
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f✝ g✝ : R → R
a✝ : A
hf✝ : autoParam (ContinuousOn f✝ (σₙ R a✝)) _auto✝
hf0✝ : autoParam (f✝ 0 = 0) _auto✝
hg✝ : autoParam (ContinuousOn g✝ (σₙ R a✝)) _auto✝
hg0✝ : autoParam (g✝ 0 = 0) _auto✝
ha✝ : autoParam (p a✝) _auto✝
f g : R → R
a : A
ha : autoParam (p a) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
h :
  (cfcₙHom ha) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ha) { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
this :
  { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } =
    { toFun := (σₙ R a).restrict g, continuous_toFun := ⋯, map_zero' := ⋯ }
x : R
hx : x ∈ σₙ R a
⊢ f x = g x
state_after: no goals
tactic: congrm($(this) ⟨x, hx⟩)