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

tactic: apply ofBasisZero ℝ E id fun s => s ∈ p.basisSets
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ LocallyConvexSpace ℝ E

tactic: rw [hp.1, AddGroupFilterBasis.nhds_eq _, AddGroupFilterBasis.N_zero]
state_before: case hbasis
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ Filter.HasBasis (𝓝 0) (fun s => s ∈ SeminormFamily.basisSets p) id

tactic: exact FilterBasis.hasBasis _
state_before: case hbasis
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ Filter.HasBasis (FilterBasis.filter AddGroupFilterBasis.toFilterBasis) (fun s => s ∈ SeminormFamily.basisSets p) id

tactic: intro s hs
state_before: case hconvex
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ ∀ (i : Set E), i ∈ SeminormFamily.basisSets p → Convex ℝ (id i)

tactic: change s ∈ Set.iUnion _ at hs
state_before: case hconvex
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
s : Set E
hs : s ∈ SeminormFamily.basisSets p
⊢ Convex ℝ (id s)

tactic: simp_rw [Set.mem_iUnion, Set.mem_singleton_iff] at hs
state_before: case hconvex
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
s : Set E
hs : s ∈ ⋃ (s : Finset ι) (r : ℝ) (_ : 0 < r), {ball (Finset.sup s p) 0 r}
⊢ Convex ℝ (id s)

tactic: rcases hs with ⟨I, r, _, rfl⟩
state_before: case hconvex
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
s : Set E
hs : ∃ i i_1 h, s = ball (Finset.sup i p) 0 i_1
⊢ Convex ℝ (id s)

tactic: exact convex_ball _ _ _
state_before: case hconvex.intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type ?u.678312
𝕝 : Type ?u.678315
𝕝₂ : Type ?u.678318
E : Type u_2
F : Type ?u.678324
G : Type ?u.678327
ι : Type u_3
ι' : Type ?u.678333
inst✝⁸ : Nonempty ι
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedSpace ℝ 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module ℝ E
inst✝² : IsScalarTower ℝ 𝕜 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
I : Finset ι
r : ℝ
w✝ : 0 < r
⊢ Convex ℝ (id (ball (Finset.sup I p) 0 r))