Theorem: Subalgebra.SeparatesPoints.strongly
File: Mathlib/Topology/ContinuousFunction/Algebra.lean

Proof steps:
state_before: α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case pos
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : x = y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y

case neg
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: by_cases n : x = y
state_before: case neg
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : (fun f => ⇑f) f x ≠ (fun f => ⇑f) f y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: obtain ⟨_, ⟨f, hf, rfl⟩, hxy⟩ := h n
state_before: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : (fun f => ⇑f) f x ≠ (fun f => ⇑f) f y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: replace hxy : f x - f y ≠ 0 := sub_ne_zero_of_ne hxy
state_before: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: let a := v x
state_before: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: let b := v y
state_before: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
f' : ↥s := ((b - a) * (f x - f y)⁻¹) • ((algebraMap 𝕜 ↥s) (f x) - ⟨f, hf⟩) + (algebraMap 𝕜 ↥s) a
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
tactic: let f' : s :=
    ((b - a) * (f x - f y)⁻¹) • (algebraMap _ s (f x) - (⟨f, hf⟩ : s)) + algebraMap _ s a
state_before: case neg.intro.intro.intro.intro
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
f' : ↥s := ((b - a) * (f x - f y)⁻¹) • ((algebraMap 𝕜 ↥s) (f x) - ⟨f, hf⟩) + (algebraMap 𝕜 ↥s) a
⊢ ∃ f ∈ ↑s, f x = v x ∧ f y = v y
state_after: case neg.intro.intro.intro.intro.refine_1
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
f' : ↥s := ((b - a) * (f x - f y)⁻¹) • ((algebraMap 𝕜 ↥s) (f x) - ⟨f, hf⟩) + (algebraMap 𝕜 ↥s) a
⊢ ↑f' x = v x

case neg.intro.intro.intro.intro.refine_2
α : Type u_1
inst✝¹² : TopologicalSpace α
R : Type u_2
inst✝¹¹ : CommSemiring R
A : Type u_3
inst✝¹⁰ : TopologicalSpace A
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : TopologicalSemiring A
A₂ : Type u_4
inst✝⁶ : TopologicalSpace A₂
inst✝⁵ : Semiring A₂
inst✝⁴ : Algebra R A₂
inst✝³ : TopologicalSemiring A₂
𝕜 : Type u_5
inst✝² : TopologicalSpace 𝕜
s✝ : Set C(α, 𝕜)
f✝ : ↑s✝
x✝ : α
inst✝¹ : Field 𝕜
inst✝ : TopologicalRing 𝕜
s : Subalgebra 𝕜 C(α, 𝕜)
h : s.SeparatesPoints
v : α → 𝕜
x y : α
n : ¬x = y
f : C(α, 𝕜)
hf : f ∈ ↑s
hxy : f x - f y ≠ 0
a : 𝕜 := v x
b : 𝕜 := v y
f' : ↥s := ((b - a) * (f x - f y)⁻¹) • ((algebraMap 𝕜 ↥s) (f x) - ⟨f, hf⟩) + (algebraMap 𝕜 ↥s) a
⊢ ↑f' y = v y
tactic: refine ⟨f', f'.prop, ?_, ?_⟩