theorem starAlgHomClass_ext [T2Space B] {F : Type*} {a : A}
    [StarAlgHomClass F R (elementalStarAlgebra R a) B] {φ ψ : F} (hφ : Continuous φ)
    (hψ : Continuous ψ) (h : φ ⟨a, self_mem R a⟩ = ψ ⟨a, self_mem R a⟩) : φ = ψ := by
  refine StarAlgHomClass.ext_topologicalClosure hφ hψ fun x => ?_
  apply adjoin_induction' x ?_ ?_ ?_ ?_ ?_
  

Proof state:
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹⁴ : CommSemiring R
inst✝¹³ : StarRing R
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Semiring A
inst✝¹⁰ : StarRing A
inst✝⁹ : TopologicalSemiring A
inst✝⁸ : ContinuousStar A
inst✝⁷ : Algebra R A
inst✝⁶ : StarModule R A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : StarRing B
inst✝² : Algebra R B
inst✝¹ : T2Space B
F : Type u_4
a : A
inst✝ : StarAlgHomClass F R (↥(elementalStarAlgebra R a)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
x : ↥(adjoin R {a})
⊢ ∀ (x : A) (h : x ∈ {a}),
    φ
        ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          { val := x, property := (_ : x ∈ ↑(adjoin R {a})) }) =
      ψ
        ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          { val := x, property := (_ : x ∈ ↑(adjoin R {a})) })
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹⁴ : CommSemiring R
inst✝¹³ : StarRing R
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Semiring A
inst✝¹⁰ : StarRing A
inst✝⁹ : TopologicalSemiring A
inst✝⁸ : ContinuousStar A
inst✝⁷ : Algebra R A
inst✝⁶ : StarModule R A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : StarRing B
inst✝² : Algebra R B
inst✝¹ : T2Space B
F : Type u_4
a : A
inst✝ : StarAlgHomClass F R (↥(elementalStarAlgebra R a)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
x : ↥(adjoin R {a})
⊢ ∀ (r : R),
    φ
        ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          ((algebraMap R ↥(adjoin R {a})) r)) =
      ψ
        ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          ((algebraMap R ↥(adjoin R {a})) r))
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹⁴ : CommSemiring R
inst✝¹³ : StarRing R
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Semiring A
inst✝¹⁰ : StarRing A
inst✝⁹ : TopologicalSemiring A
inst✝⁸ : ContinuousStar A
inst✝⁷ : Algebra R A
inst✝⁶ : StarModule R A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : StarRing B
inst✝² : Algebra R B
inst✝¹ : T2Space B
F : Type u_4
a : A
inst✝ : StarAlgHomClass F R (↥(elementalStarAlgebra R a)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
x : ↥(adjoin R {a})
⊢ ∀ (x y : ↥(adjoin R {a})),
    φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
        ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) →
      φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) y) =
          ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) y) →
        φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (x + y)) =
          ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (x + y))
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹⁴ : CommSemiring R
inst✝¹³ : StarRing R
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Semiring A
inst✝¹⁰ : StarRing A
inst✝⁹ : TopologicalSemiring A
inst✝⁸ : ContinuousStar A
inst✝⁷ : Algebra R A
inst✝⁶ : StarModule R A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : StarRing B
inst✝² : Algebra R B
inst✝¹ : T2Space B
F : Type u_4
a : A
inst✝ : StarAlgHomClass F R (↥(elementalStarAlgebra R a)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
x : ↥(adjoin R {a})
⊢ ∀ (x y : ↥(adjoin R {a})),
    φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
        ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) →
      φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) y) =
          ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) y) →
        φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (x * y)) =
          ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (x * y))
R : Type u_1
A : Type u_2
B : Type u_3
inst✝¹⁴ : CommSemiring R
inst✝¹³ : StarRing R
inst✝¹² : TopologicalSpace A
inst✝¹¹ : Semiring A
inst✝¹⁰ : StarRing A
inst✝⁹ : TopologicalSemiring A
inst✝⁸ : ContinuousStar A
inst✝⁷ : Algebra R A
inst✝⁶ : StarModule R A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : StarRing B
inst✝² : Algebra R B
inst✝¹ : T2Space B
F : Type u_4
a : A
inst✝ : StarAlgHomClass F R (↥(elementalStarAlgebra R a)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
x : ↥(adjoin R {a})
⊢ ∀ (x : ↥(adjoin R {a})),
    φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
        ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) →
      φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (star x)) =
        ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) (star x))

Next tactic:
exacts [fun y hy => by simpa only [Set.mem_singleton_iff.mp hy] using h, fun r => by
    simp only [AlgHomClass.commutes], fun x y hx hy => by simp only [map_add, hx, hy],
    fun x y hx hy => by simp only [map_mul, hx, hy], fun x hx => by simp only [map_star, hx]]