l3lab/ntp-mathlib huggingface dataset:
/-- Continuous `StarAlgHom`s from the topological closure of a `StarSubalgebra` whose
compositions with the `StarSubalgebra.inclusion` map agree are, in fact, equal. -/
theorem _root_.StarAlgHom.ext_topologicalClosure [T2Space B] {S : StarSubalgebra R A}
    {φ ψ : S.topologicalClosure →⋆ₐ[R] B} (hφ : Continuous φ) (hψ : Continuous ψ)
    (h :
      φ.comp (inclusion (le_topologicalClosure S)) = ψ.comp (inclusion (le_topologicalClosure S))) :
    φ = ψ := by
  rw [FunLike.ext'_iff]
  have : Dense (Set.range <| inclusion (le_topologicalClosure S)) := by
    refine' embedding_subtype_val.toInducing.dense_iff.2 fun x => _
    convert show ↑x ∈ closure (S : Set A) from x.prop
    rw [← Set.range_comp]
    exact
      Set.ext fun y =>
        ⟨by
          rintro ⟨y, rfl⟩
          

Proof state:
case intro
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✝⁹ : Algebra R A
inst✝⁸ : StarRing A
inst✝⁷ : StarModule R A
inst✝⁶ : TopologicalSemiring A
inst✝⁵ : ContinuousStar A
inst✝⁴ : TopologicalSpace B
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : T2Space B
S : StarSubalgebra R A
φ ψ : ↥(topologicalClosure S) →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  StarAlgHom.comp φ (inclusion (_ : S ≤ topologicalClosure S)) =
    StarAlgHom.comp ψ (inclusion (_ : S ≤ topologicalClosure S))
x : ↥(topologicalClosure S)
y : ↥S
⊢ (Subtype.val ∘ ⇑(inclusion (_ : S ≤ topologicalClosure S))) y ∈ ↑S

Next tactic:
exact y.prop
/-- Continuous `StarAlgHom`s from the topological closure of a `StarSubalgebra` whose
compositions with the `StarSubalgebra.inclusion` map agree are, in fact, equal. -/
theorem _root_.StarAlgHom.ext_topologicalClosure [T2Space B] {S : StarSubalgebra R A}
    {φ ψ : S.topologicalClosure →⋆ₐ[R] B} (hφ : Continuous φ) (hψ : Continuous ψ)
    (h :
      φ.comp (inclusion (le_topologicalClosure S)) = ψ.comp (inclusion (le_topologicalClosure S))) :
    φ = ψ := by
  rw [FunLike.ext'_iff]
  have : Dense (Set.range <| inclusion (le_topologicalClosure S)) := by
    refine' embedding_subtype_val.toInducing.dense_iff.2 fun x => _
    convert show ↑x ∈ closure (S : Set A) from x.prop
    rw [← Set.range_comp]
    exact
      Set.ext fun y =>
        ⟨by
          rintro ⟨y, rfl⟩
          exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
  

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✝⁹ : Algebra R A
inst✝⁸ : StarRing A
inst✝⁷ : StarModule R A
inst✝⁶ : TopologicalSemiring A
inst✝⁵ : ContinuousStar A
inst✝⁴ : TopologicalSpace B
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : T2Space B
S : StarSubalgebra R A
φ ψ : ↥(topologicalClosure S) →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  StarAlgHom.comp φ (inclusion (_ : S ≤ topologicalClosure S)) =
    StarAlgHom.comp ψ (inclusion (_ : S ≤ topologicalClosure S))
this : Dense (range ⇑(inclusion (_ : S ≤ topologicalClosure S)))
⊢ ⇑φ = ⇑ψ

Next tactic:
refine' Continuous.ext_on this hφ hψ _
/-- Continuous `StarAlgHom`s from the topological closure of a `StarSubalgebra` whose
compositions with the `StarSubalgebra.inclusion` map agree are, in fact, equal. -/
theorem _root_.StarAlgHom.ext_topologicalClosure [T2Space B] {S : StarSubalgebra R A}
    {φ ψ : S.topologicalClosure →⋆ₐ[R] B} (hφ : Continuous φ) (hψ : Continuous ψ)
    (h :
      φ.comp (inclusion (le_topologicalClosure S)) = ψ.comp (inclusion (le_topologicalClosure S))) :
    φ = ψ := by
  rw [FunLike.ext'_iff]
  have : Dense (Set.range <| inclusion (le_topologicalClosure S)) := by
    refine' embedding_subtype_val.toInducing.dense_iff.2 fun x => _
    convert show ↑x ∈ closure (S : Set A) from x.prop
    rw [← Set.range_comp]
    exact
      Set.ext fun y =>
        ⟨by
          rintro ⟨y, rfl⟩
          exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
  refine' Continuous.ext_on this hφ hψ _
  

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✝⁹ : Algebra R A
inst✝⁸ : StarRing A
inst✝⁷ : StarModule R A
inst✝⁶ : TopologicalSemiring A
inst✝⁵ : ContinuousStar A
inst✝⁴ : TopologicalSpace B
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : T2Space B
S : StarSubalgebra R A
φ ψ : ↥(topologicalClosure S) →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  StarAlgHom.comp φ (inclusion (_ : S ≤ topologicalClosure S)) =
    StarAlgHom.comp ψ (inclusion (_ : S ≤ topologicalClosure S))
this : Dense (range ⇑(inclusion (_ : S ≤ topologicalClosure S)))
⊢ EqOn (⇑φ) (⇑ψ) (range ⇑(inclusion (_ : S ≤ topologicalClosure S)))

Next tactic:
rintro _ ⟨x, rfl⟩
/-- Continuous `StarAlgHom`s from the topological closure of a `StarSubalgebra` whose
compositions with the `StarSubalgebra.inclusion` map agree are, in fact, equal. -/
theorem _root_.StarAlgHom.ext_topologicalClosure [T2Space B] {S : StarSubalgebra R A}
    {φ ψ : S.topologicalClosure →⋆ₐ[R] B} (hφ : Continuous φ) (hψ : Continuous ψ)
    (h :
      φ.comp (inclusion (le_topologicalClosure S)) = ψ.comp (inclusion (le_topologicalClosure S))) :
    φ = ψ := by
  rw [FunLike.ext'_iff]
  have : Dense (Set.range <| inclusion (le_topologicalClosure S)) := by
    refine' embedding_subtype_val.toInducing.dense_iff.2 fun x => _
    convert show ↑x ∈ closure (S : Set A) from x.prop
    rw [← Set.range_comp]
    exact
      Set.ext fun y =>
        ⟨by
          rintro ⟨y, rfl⟩
          exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
  refine' Continuous.ext_on this hφ hψ _
  rintro _ ⟨x, rfl⟩
  

Proof state:
case intro
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✝⁹ : Algebra R A
inst✝⁸ : StarRing A
inst✝⁷ : StarModule R A
inst✝⁶ : TopologicalSemiring A
inst✝⁵ : ContinuousStar A
inst✝⁴ : TopologicalSpace B
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : T2Space B
S : StarSubalgebra R A
φ ψ : ↥(topologicalClosure S) →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  StarAlgHom.comp φ (inclusion (_ : S ≤ topologicalClosure S)) =
    StarAlgHom.comp ψ (inclusion (_ : S ≤ topologicalClosure S))
this : Dense (range ⇑(inclusion (_ : S ≤ topologicalClosure S)))
x : ↥S
⊢ φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)

Next tactic:
simpa only using FunLike.congr_fun h x
theorem _root_.StarAlgHomClass.ext_topologicalClosure [T2Space B] {F : Type*}
    {S : StarSubalgebra R A} [StarAlgHomClass F R S.topologicalClosure B] {φ ψ : F}
    (hφ : Continuous φ) (hψ : Continuous ψ) (h : ∀ x : S,
        φ (inclusion (le_topologicalClosure S) x) = ψ ((inclusion (le_topologicalClosure S)) x)) :
    φ = ψ := by
  -- Porting note: an intervening coercion seems to have appeared since ML3
  

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✝¹⁰ : Algebra R A
inst✝⁹ : StarRing A
inst✝⁸ : StarModule R A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
inst✝² : StarRing B
inst✝¹ : T2Space B
F : Type u_4
S : StarSubalgebra R A
inst✝ : StarAlgHomClass F R (↥(topologicalClosure S)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : ∀ (x : ↥S), φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)
⊢ φ = ψ

Next tactic:
have : (φ : S.topologicalClosure →⋆ₐ[R] B) = (ψ : S.topologicalClosure →⋆ₐ[R] B) := by
    refine StarAlgHom.ext_topologicalClosure (R := R) (A := A) (B := B) hφ hψ (StarAlgHom.ext ?_)
    simpa only [StarAlgHom.coe_comp, StarAlgHom.coe_coe] using h
theorem _root_.StarAlgHomClass.ext_topologicalClosure [T2Space B] {F : Type*}
    {S : StarSubalgebra R A} [StarAlgHomClass F R S.topologicalClosure B] {φ ψ : F}
    (hφ : Continuous φ) (hψ : Continuous ψ) (h : ∀ x : S,
        φ (inclusion (le_topologicalClosure S) x) = ψ ((inclusion (le_topologicalClosure S)) x)) :
    φ = ψ := by
  -- Porting note: an intervening coercion seems to have appeared since ML3
  have : (φ : S.topologicalClosure →⋆ₐ[R] B) = (ψ : S.topologicalClosure →⋆ₐ[R] B) := by
    

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✝¹⁰ : Algebra R A
inst✝⁹ : StarRing A
inst✝⁸ : StarModule R A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
inst✝² : StarRing B
inst✝¹ : T2Space B
F : Type u_4
S : StarSubalgebra R A
inst✝ : StarAlgHomClass F R (↥(topologicalClosure S)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : ∀ (x : ↥S), φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)
⊢ ↑φ = ↑ψ

Next tactic:
refine StarAlgHom.ext_topologicalClosure (R := R) (A := A) (B := B) hφ hψ (StarAlgHom.ext ?_)
theorem _root_.StarAlgHomClass.ext_topologicalClosure [T2Space B] {F : Type*}
    {S : StarSubalgebra R A} [StarAlgHomClass F R S.topologicalClosure B] {φ ψ : F}
    (hφ : Continuous φ) (hψ : Continuous ψ) (h : ∀ x : S,
        φ (inclusion (le_topologicalClosure S) x) = ψ ((inclusion (le_topologicalClosure S)) x)) :
    φ = ψ := by
  -- Porting note: an intervening coercion seems to have appeared since ML3
  have : (φ : S.topologicalClosure →⋆ₐ[R] B) = (ψ : S.topologicalClosure →⋆ₐ[R] B) := by
    refine StarAlgHom.ext_topologicalClosure (R := R) (A := A) (B := B) hφ hψ (StarAlgHom.ext ?_)
    

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✝¹⁰ : Algebra R A
inst✝⁹ : StarRing A
inst✝⁸ : StarModule R A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
inst✝² : StarRing B
inst✝¹ : T2Space B
F : Type u_4
S : StarSubalgebra R A
inst✝ : StarAlgHomClass F R (↥(topologicalClosure S)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : ∀ (x : ↥S), φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)
⊢ ∀ (x : ↥S),
    (StarAlgHom.comp (↑φ) (inclusion (_ : S ≤ topologicalClosure S))) x =
      (StarAlgHom.comp (↑ψ) (inclusion (_ : S ≤ topologicalClosure S))) x

Next tactic:
simpa only [StarAlgHom.coe_comp, StarAlgHom.coe_coe] using h
theorem _root_.StarAlgHomClass.ext_topologicalClosure [T2Space B] {F : Type*}
    {S : StarSubalgebra R A} [StarAlgHomClass F R S.topologicalClosure B] {φ ψ : F}
    (hφ : Continuous φ) (hψ : Continuous ψ) (h : ∀ x : S,
        φ (inclusion (le_topologicalClosure S) x) = ψ ((inclusion (le_topologicalClosure S)) x)) :
    φ = ψ := by
  -- Porting note: an intervening coercion seems to have appeared since ML3
  have : (φ : S.topologicalClosure →⋆ₐ[R] B) = (ψ : S.topologicalClosure →⋆ₐ[R] B) := by
    refine StarAlgHom.ext_topologicalClosure (R := R) (A := A) (B := B) hφ hψ (StarAlgHom.ext ?_)
    simpa only [StarAlgHom.coe_comp, StarAlgHom.coe_coe] using h
  

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✝¹⁰ : Algebra R A
inst✝⁹ : StarRing A
inst✝⁸ : StarModule R A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
inst✝² : StarRing B
inst✝¹ : T2Space B
F : Type u_4
S : StarSubalgebra R A
inst✝ : StarAlgHomClass F R (↥(topologicalClosure S)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : ∀ (x : ↥S), φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)
this : ↑φ = ↑ψ
⊢ φ = ψ

Next tactic:
rw [FunLike.ext'_iff, ← StarAlgHom.coe_coe]
theorem _root_.StarAlgHomClass.ext_topologicalClosure [T2Space B] {F : Type*}
    {S : StarSubalgebra R A} [StarAlgHomClass F R S.topologicalClosure B] {φ ψ : F}
    (hφ : Continuous φ) (hψ : Continuous ψ) (h : ∀ x : S,
        φ (inclusion (le_topologicalClosure S) x) = ψ ((inclusion (le_topologicalClosure S)) x)) :
    φ = ψ := by
  -- Porting note: an intervening coercion seems to have appeared since ML3
  have : (φ : S.topologicalClosure →⋆ₐ[R] B) = (ψ : S.topologicalClosure →⋆ₐ[R] B) := by
    refine StarAlgHom.ext_topologicalClosure (R := R) (A := A) (B := B) hφ hψ (StarAlgHom.ext ?_)
    simpa only [StarAlgHom.coe_comp, StarAlgHom.coe_coe] using h
  rw [FunLike.ext'_iff, ← StarAlgHom.coe_coe]
  

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✝¹⁰ : Algebra R A
inst✝⁹ : StarRing A
inst✝⁸ : StarModule R A
inst✝⁷ : TopologicalSemiring A
inst✝⁶ : ContinuousStar A
inst✝⁵ : TopologicalSpace B
inst✝⁴ : Semiring B
inst✝³ : Algebra R B
inst✝² : StarRing B
inst✝¹ : T2Space B
F : Type u_4
S : StarSubalgebra R A
inst✝ : StarAlgHomClass F R (↥(topologicalClosure S)) B
φ ψ : F
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : ∀ (x : ↥S), φ ((inclusion (_ : S ≤ topologicalClosure S)) x) = ψ ((inclusion (_ : S ≤ topologicalClosure S)) x)
this : ↑φ = ↑ψ
⊢ ⇑↑φ = ⇑ψ

Next tactic:
apply congrArg _ this
/-- The coercion from an elemental algebra to the full algebra as a `ClosedEmbedding`. -/
theorem closedEmbedding_coe (x : A) : ClosedEmbedding ((↑) : elementalStarAlgebra R x → A) :=
  { induced := rfl
    inj := Subtype.coe_injective
    closed_range := by
      

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
x : A
⊢ IsClosed (range Subtype.val)

Next tactic:
convert elementalStarAlgebra.isClosed R x
/-- The coercion from an elemental algebra to the full algebra as a `ClosedEmbedding`. -/
theorem closedEmbedding_coe (x : A) : ClosedEmbedding ((↑) : elementalStarAlgebra R x → A) :=
  { induced := rfl
    inj := Subtype.coe_injective
    closed_range := by
      convert elementalStarAlgebra.isClosed R x
      

Proof state:
case h.e'_3
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
x : A
⊢ range Subtype.val = ↑(elementalStarAlgebra R x)

Next tactic:
exact
        Set.ext fun y =>
          ⟨by
            rintro ⟨y, rfl⟩
            exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
/-- The coercion from an elemental algebra to the full algebra as a `ClosedEmbedding`. -/
theorem closedEmbedding_coe (x : A) : ClosedEmbedding ((↑) : elementalStarAlgebra R x → A) :=
  { induced := rfl
    inj := Subtype.coe_injective
    closed_range := by
      convert elementalStarAlgebra.isClosed R x
      exact
        Set.ext fun y =>
          ⟨by
            

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
x y : A
⊢ y ∈ range Subtype.val → y ∈ ↑(elementalStarAlgebra R x)

Next tactic:
rintro ⟨y, rfl⟩
/-- The coercion from an elemental algebra to the full algebra as a `ClosedEmbedding`. -/
theorem closedEmbedding_coe (x : A) : ClosedEmbedding ((↑) : elementalStarAlgebra R x → A) :=
  { induced := rfl
    inj := Subtype.coe_injective
    closed_range := by
      convert elementalStarAlgebra.isClosed R x
      exact
        Set.ext fun y =>
          ⟨by
            rintro ⟨y, rfl⟩
            

Proof state:
case intro
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
x : A
y : { x_1 // x_1 ∈ ↑(elementalStarAlgebra R x) }
⊢ ↑y ∈ ↑(elementalStarAlgebra R x)

Next tactic:
exact y.prop
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
  

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) }
⊢ φ = ψ

Next tactic:
refine StarAlgHomClass.ext_topologicalClosure hφ hψ fun x => ?_
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 => ?_
  

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})
⊢ φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
    ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x)

Next tactic:
apply adjoin_induction' x ?_ ?_ ?_ ?_ ?_
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 ?_ ?_ ?_ ?_ ?_
  exacts [fun y hy => by 

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})
y : A
hy : y ∈ {a}
⊢ φ
      ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
        { val := y, property := (_ : y ∈ ↑(adjoin R {a})) }) =
    ψ
      ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
        { val := y, property := (_ : y ∈ ↑(adjoin R {a})) })

Next tactic:
simpa only [Set.mem_singleton_iff.mp hy] using h
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 ?_ ?_ ?_ ?_ ?_
  exacts [fun y hy => by simpa only [Set.mem_singleton_iff.mp hy] using h, fun r => by
    

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})
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))

Next tactic:
simp only [AlgHomClass.commutes]
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 ?_ ?_ ?_ ?_ ?_
  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 

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✝ x y : ↥(adjoin R {a})
hx :
  φ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
    ψ ((StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x)
hy :
  φ ((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))

Next tactic:
simp only [map_add, hx, hy]