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

tactic: haveI := hp.topologicalAddGroup
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
⊢ T1Space E

tactic: refine' TopologicalAddGroup.t1Space _ _
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
⊢ T1Space E

tactic: rw [← isOpen_compl_iff, hp.isOpen_iff_mem_balls]
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
⊢ IsClosed {0}

tactic: rintro x (hx : x ≠ 0)
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
⊢ ∀ (x : E), x ∈ {0}ᶜ → ∃ s r, r > 0 ∧ ball (Finset.sup s p) x r ⊆ {0}ᶜ

tactic: cases' h x hx with i pi_nonzero
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
x : E
hx : x ≠ 0
⊢ ∃ s r, r > 0 ∧ ball (Finset.sup s p) x r ⊆ {0}ᶜ

tactic: refine' ⟨{i}, p i x, by positivity, subset_compl_singleton_iff.mpr _⟩
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
x : E
hx : x ≠ 0
i : ι
pi_nonzero : ↑(p i) x ≠ 0
⊢ ∃ s r, r > 0 ∧ ball (Finset.sup s p) x r ⊆ {0}ᶜ

tactic: rw [Finset.sup_singleton, mem_ball, zero_sub, map_neg_eq_map, not_lt]
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
x : E
hx : x ≠ 0
i : ι
pi_nonzero : ↑(p i) x ≠ 0
⊢ ¬0 ∈ ball (Finset.sup {i} p) x (↑(p i) x)

tactic: positivity
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.214092
𝕝 : Type ?u.214095
𝕝₂ : Type ?u.214098
E : Type u_2
F : Type ?u.214104
G : Type ?u.214107
ι : Type u_3
ι' : Type ?u.214113
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
h : ∀ (x : E), x ≠ 0 → ∃ i, ↑(p i) x ≠ 0
this : TopologicalAddGroup E
x : E
hx : x ≠ 0
i : ι
pi_nonzero : ↑(p i) x ≠ 0
⊢ ↑(p i) x > 0