Theorem: WithSeminorms.separating_of_T1
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: have := ((t1Space_TFAE E).out 0 9).mp (inferInstanceAs <| T1Space E)
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
⊢ ∃ i, ↑(p i) x ≠ 0

tactic: by_contra' h
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
⊢ ∃ i, ↑(p i) x ≠ 0

tactic: simp only [not_exists, not_not] at h
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
h : ¬∃ i, ↑(p i) x ≠ 0
⊢ False

tactic: refine' hx (this _)
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
h : ∀ (x_1 : ι), ↑(p x_1) x = 0
⊢ False

tactic: rw [hp.hasBasis_zero_ball.specializes_iff]
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
h : ∀ (x_1 : ι), ↑(p x_1) x = 0
⊢ x ⤳ 0

tactic: rintro ⟨s, r⟩ (hr : 0 < r)
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
h : ∀ (x_1 : ι), ↑(p x_1) x = 0
⊢ ∀ (i : Finset ι × ℝ), 0 < i.snd → x ∈ ball (Finset.sup i.fst p) 0 i.snd

tactic: simp only [ball_finset_sup_eq_iInter _ _ _ hr, mem_iInter₂, mem_ball_zero, h, hr, forall_true_iff]
state_before: case mk
𝕜 : Type u_2
𝕜₂ : Type ?u.222775
𝕝 : Type ?u.222778
𝕝₂ : Type ?u.222781
E : Type u_1
F : Type ?u.222787
G : Type ?u.222790
ι : Type u_3
ι' : Type ?u.222796
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Nonempty ι
inst✝¹ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
inst✝ : T1Space E
hp : WithSeminorms p
x : E
hx : x ≠ 0
this : ∀ ⦃x y : E⦄, x ⤳ y → x = y
h : ∀ (x_1 : ι), ↑(p x_1) x = 0
s : Finset ι
r : ℝ
hr : 0 < r
⊢ x ∈ ball (Finset.sup (s, r).fst p) 0 (s, r).snd