Theorem: cfcₙ_comp
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: have := hg.comp hf <| (σₙ R a).mapsTo_image f
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcₙ (g ∘ f) a = cfcₙ g (cfcₙ f 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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ cfcₙ (g ∘ f) a = cfcₙ g (cfcₙ f a)

tactic: have sp_eq :
    σₙ R (cfcₙHom (show p a from ha) ⟨ContinuousMap.mk _ hf.restrict, hf0⟩) = f '' (σₙ R a) := by
  rw [cfcₙHom_map_quasispectrum (by exact ha) _]
  ext
  simp
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ cfcₙ (g ∘ f) a = cfcₙ g (cfcₙ f 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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ cfcₙ (g ∘ f) a = cfcₙ g (cfcₙ f a)

tactic: rw [cfcₙ_apply .., cfcₙ_apply f a,
  cfcₙ_apply _ (by convert hg) (ha := cfcₙHom_predicate (show p a from ha) _) ,
  ← cfcₙHom_comp _ _]
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ cfcₙ (g ∘ f) a = cfcₙ g (cfcₙ f 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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ (cfcₙHom ha) { toFun := (σₙ R a).restrict (g ∘ f), continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ⋯)
      ({
            toFun :=
              (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })).restrict g,
            continuous_toFun := ⋯, map_zero' := ⋯ }.comp
        ?f')

case f'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ C(↑(σₙ R a), ↑(σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })))₀

case hff'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ ∀ (x : ↑(σₙ R a)), { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } x = ↑(?f' x)

tactic: swap
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ (cfcₙHom ha) { toFun := (σₙ R a).restrict (g ∘ f), continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ⋯)
      ({
            toFun :=
              (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })).restrict g,
            continuous_toFun := ⋯, map_zero' := ⋯ }.comp
        ?f')

case f'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ C(↑(σₙ R a), ↑(σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })))₀

case hff'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ ∀ (x : ↑(σₙ R a)), { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } x = ↑(?f' x)
state_after: case f'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ C(↑(σₙ R a), ↑(σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })))₀

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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ (cfcₙHom ha) { toFun := (σₙ R a).restrict (g ∘ f), continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ⋯)
      ({
            toFun :=
              (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })).restrict g,
            continuous_toFun := ⋯, map_zero' := ⋯ }.comp
        ?f')

case hff'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ ∀ (x : ↑(σₙ R a)), { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } x = ↑(?f' x)

tactic: rw [cfcₙHom_map_quasispectrum (by exact ha) _]
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ 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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ Set.range ⇑{ toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 } = f '' σₙ R a

tactic: ext
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ Set.range ⇑{ toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 } = f '' σₙ R a
state_after: case h
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
x✝ : R
⊢ x✝ ∈ Set.range ⇑{ toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 } ↔ x✝ ∈ f '' σₙ R a

tactic: simp
state_before: case h
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
x✝ : R
⊢ x✝ ∈ Set.range ⇑{ toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 } ↔ x✝ ∈ f '' σₙ R a
state_after: no goals

tactic: exact ha
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
⊢ p a
state_after: no goals

tactic: convert hg
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ ContinuousOn g (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ }))
state_after: no goals

tactic: exact ⟨.mk _ <| hf.restrict.codRestrict fun x ↦ by rw [sp_eq]; use x.1; simp, Subtype.ext hf0⟩
state_before: case f'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ C(↑(σₙ R a), ↑(σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })))₀
state_after: no goals

tactic: rw [sp_eq]
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
x : ↑(σₙ R a)
⊢ (σₙ R a).restrict f x ∈ σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
x : ↑(σₙ R a)
⊢ (σₙ R a).restrict f x ∈ f '' σₙ R a

tactic: use x.1
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
x : ↑(σₙ R a)
⊢ (σₙ R a).restrict f x ∈ f '' σₙ R a
state_after: case h
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
x : ↑(σₙ R a)
⊢ ↑x ∈ σₙ R a ∧ f ↑x = (σₙ R a).restrict f x

tactic: simp
state_before: case h
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
x : ↑(σₙ R a)
⊢ ↑x ∈ σₙ R a ∧ f ↑x = (σₙ R a).restrict f x
state_after: no goals

tactic: congr
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ (cfcₙHom ha) { toFun := (σₙ R a).restrict (g ∘ f), continuous_toFun := ⋯, map_zero' := ⋯ } =
    (cfcₙHom ⋯)
      ({
            toFun :=
              (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })).restrict g,
            continuous_toFun := ⋯, map_zero' := ⋯ }.comp
        {
          toFun :=
            Set.codRestrict ((σₙ R a).restrict f)
              (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })) ⋯,
          continuous_toFun := ⋯, map_zero' := ⋯ })
state_after: no goals

tactic: exact fun _ ↦ rfl
state_before: case hff'
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✝
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
g f : R → R
a : A
hg : autoParam (ContinuousOn g (f '' σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
this : ContinuousOn (g ∘ f) (σₙ R a)
sp_eq : σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := hf0 }) = f '' σₙ R a
⊢ ∀ (x : ↑(σₙ R a)),
    { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ } x =
      ↑({
            toFun :=
              Set.codRestrict ((σₙ R a).restrict f)
                (σₙ R ((cfcₙHom ⋯) { toFun := (σₙ R a).restrict f, continuous_toFun := ⋯, map_zero' := ⋯ })) ⋯,
            continuous_toFun := ⋯, map_zero' := ⋯ }
          x)
state_after: no goals