Theorem: elementalStarAlgebra.starAlgHomClass_ext
File: Mathlib/Topology/Algebra/StarSubalgebra.lean

tactic: refine StarAlgHomClass.ext_topologicalClosure hφ hψ fun x => ?_
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ elementalStarAlgebra R a } B
φ ψ : F
hφ : Continuous ↑φ
hψ : Continuous ↑ψ
h :
  ↑φ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) } =
    ↑ψ { val := a, property := (_ : a ∈ elementalStarAlgebra R a) }
⊢ φ = ψ

tactic: apply adjoin_induction' x ?_ ?_ ?_ ?_ ?_
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
⊢ ↑φ (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x) =
    ↑ψ (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a}))) x)

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]]
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // 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_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
⊢ ∀ (r : R),
    ↑φ
        (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          (↑(algebraMap R { x // x ∈ adjoin R {a} }) r)) =
      ↑ψ
        (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
          (↑(algebraMap R { x // x ∈ adjoin R {a} }) r))

R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
⊢ ∀ (x y : { x // 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}))) 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_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
⊢ ∀ (x y : { x // 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}))) 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_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
⊢ ∀ (x : { x // 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))

tactic: simpa only [Set.mem_singleton_iff.mp hy] using h
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // 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})) })

tactic: simp only [AlgHomClass.commutes]
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 // x ∈ adjoin R {a} }
r : R
⊢ ↑φ
      (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
        (↑(algebraMap R { x // x ∈ adjoin R {a} }) r)) =
    ↑ψ
      (↑(StarSubalgebra.inclusion (_ : adjoin R {a} ≤ topologicalClosure (adjoin R {a})))
        (↑(algebraMap R { x // x ∈ adjoin R {a} }) r))

tactic: simp only [map_add, hx, hy]
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 : { x // x ∈ 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))

tactic: simp only [map_mul, hx, hy]
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 : { x // x ∈ 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))

tactic: simp only [map_star, hx]
state_before: R : Type u_3
A : Type u_4
B : Type u_1
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_2
a : A
inst✝ : StarAlgHomClass F R { x // x ∈ 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 : { x // x ∈ adjoin R {a} }
hx :
  ↑φ (↑(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))