Theorem: Subalgebra.SeparatesPoints.rclike_to_real
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: intro x₁ x₂ hx
state_before: 𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
⊢ (comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)).SeparatesPoints
state_after: 𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
⊢ ∃ f ∈ (fun f => ⇑f) '' ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)),
    f x₁ ≠ f x₂

tactic: obtain ⟨_, ⟨f, hfA, rfl⟩, hf⟩ := hA hx
state_before: 𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
⊢ ∃ f ∈ (fun f => ⇑f) '' ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)),
    f x₁ ≠ f x₂
state_after: case intro.intro.intro.intro
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
⊢ ∃ f ∈ (fun f => ⇑f) '' ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)),
    f x₁ ≠ f x₂

tactic: let F : C(X, 𝕜) := f - const _ (f x₂)
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
⊢ ∃ f ∈ (fun f => ⇑f) '' ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)),
    f x₁ ≠ f x₂
state_after: case intro.intro.intro.intro
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
⊢ ∃ f ∈ (fun f => ⇑f) '' ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra)),
    f x₁ ≠ f x₂

tactic: ext1
state_before: 𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
⊢ f x₂ • 1 = const X (f x₂)
state_after: case h
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
a✝ : X
⊢ (f x₂ • 1) a✝ = (const X (f x₂)) a✝

tactic: simp only [coe_smul, coe_one, smul_apply, one_apply, Algebra.id.smul_eq_mul, mul_one,
  const_apply]
state_before: case h
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
a✝ : X
⊢ (f x₂ • 1) a✝ = (const X (f x₂)) a✝
state_after: no goals

tactic: continuity
state_before: 𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ Continuous fun x => ‖F x‖ ^ 2
state_after: no goals

tactic: rw [SetLike.mem_coe, Subalgebra.mem_comap]
state_before: case intro.intro.intro.intro.refine_1
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } ∈
    ↑(comap (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) (restrictScalars ℝ A.toSubalgebra))
state_after: case intro.intro.intro.intro.refine_1
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } ∈
    restrictScalars ℝ A.toSubalgebra

tactic: convert (A.restrictScalars ℝ).mul_mem hFA (star_mem hFA : star F ∈ A)
state_before: case intro.intro.intro.intro.refine_1
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } ∈
    restrictScalars ℝ A.toSubalgebra
state_after: case h.e'_4
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } = F * star F

tactic: ext1
state_before: case h.e'_4
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ (AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } = F * star F
state_after: case h.e'_4.h
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
a✝ : X
⊢ ((AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ }) a✝ = (F * star F) a✝

tactic: simp [← RCLike.mul_conj]
state_before: case h.e'_4.h
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
a✝ : X
⊢ ((AlgHom.compLeftContinuous ℝ ofRealAm ⋯) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ }) a✝ = (F * star F) a✝
state_after: no goals

tactic: simpa [F] using sub_ne_zero.mpr hf
state_before: case intro.intro.intro.intro.refine_2
𝕜 : Type u_1
X : Type u_2
inst✝¹ : RCLike 𝕜
inst✝ : TopologicalSpace X
A : StarSubalgebra 𝕜 C(X, 𝕜)
hA : A.SeparatesPoints
x₁ x₂ : X
hx : x₁ ≠ x₂
f : C(X, 𝕜)
hfA : f ∈ ↑A.toSubalgebra
hf : (fun f => ⇑f) f x₁ ≠ (fun f => ⇑f) f x₂
F : C(X, 𝕜) := f - const X (f x₂)
hFA : F ∈ A
⊢ (fun f => ⇑f) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } x₁ ≠
    (fun f => ⇑f) { toFun := fun x => ‖F x‖ ^ 2, continuous_toFun := ⋯ } x₂
state_after: no goals