Theorem: StarAlgHom.ext_topologicalClosure
File: Mathlib/Topology/Algebra/StarSubalgebra.lean

tactic: rw [DFunLike.ext'_iff]
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
⊢ φ = ψ
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
⊢ ⇑φ = ⇑ψ

tactic: 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⟩⟩
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
⊢ ⇑φ = ⇑ψ
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
⊢ ⇑φ = ⇑ψ

tactic: refine Continuous.ext_on this hφ hψ ?_
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
⊢ ⇑φ = ⇑ψ
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
⊢ EqOn (⇑φ) (⇑ψ) (range ⇑(inclusion ⋯))

tactic: rintro _ ⟨x, rfl⟩
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
⊢ EqOn (⇑φ) (⇑ψ) (range ⇑(inclusion ⋯))
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
x : ↥S
⊢ φ ((inclusion ⋯) x) = ψ ((inclusion ⋯) x)

tactic: simpa only using DFunLike.congr_fun h x
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
this : Dense (range ⇑(inclusion ⋯))
x : ↥S
⊢ φ ((inclusion ⋯) x) = ψ ((inclusion ⋯) x)
state_after: no goals

tactic: refine embedding_subtype_val.toInducing.dense_iff.2 fun x => ?_
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
⊢ Dense (range ⇑(inclusion ⋯))
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ ↑x ∈ closure (Subtype.val '' range ⇑(inclusion ⋯))

tactic: convert show ↑x ∈ closure (S : Set A) from x.prop
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ ↑x ∈ closure (Subtype.val '' range ⇑(inclusion ⋯))
state_after: case h.e'_5.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✝⁹ : 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ Subtype.val '' range ⇑(inclusion ⋯) = ↑S

tactic: rw [← Set.range_comp]
state_before: case h.e'_5.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✝⁹ : 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ Subtype.val '' range ⇑(inclusion ⋯) = ↑S
state_after: case h.e'_5.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✝⁹ : 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ range (Subtype.val ∘ ⇑(inclusion ⋯)) = ↑S

tactic: exact
  Set.ext fun y =>
    ⟨by
      rintro ⟨y, rfl⟩
      exact y.prop, fun hy => ⟨⟨y, hy⟩, rfl⟩⟩
state_before: case h.e'_5.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✝⁹ : 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
⊢ range (Subtype.val ∘ ⇑(inclusion ⋯)) = ↑S
state_after: no goals

tactic: rintro ⟨y, rfl⟩
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
y : A
⊢ y ∈ range (Subtype.val ∘ ⇑(inclusion ⋯)) → y ∈ ↑S
state_after: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
y : ↥S
⊢ (Subtype.val ∘ ⇑(inclusion ⋯)) y ∈ ↑S

tactic: exact y.prop
state_before: 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
φ ψ : ↥S.topologicalClosure →⋆ₐ[R] B
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ.comp (inclusion ⋯) = ψ.comp (inclusion ⋯)
x : ↥S.topologicalClosure
y : ↥S
⊢ (Subtype.val ∘ ⇑(inclusion ⋯)) y ∈ ↑S
state_after: no goals