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

tactic: refine ⟨fun V => ?_⟩
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ (𝓝 0).HasBasis (fun sr => 0 < sr.2) fun sr => (sr.1.sup p).ball 0 sr.2
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ V ∈ 𝓝 0 ↔ ∃ i, 0 < i.2 ∧ (i.1.sup p).ball 0 i.2 ⊆ V

tactic: simp only [hp.hasBasis.mem_iff, SeminormFamily.basisSets_iff, Prod.exists]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ V ∈ 𝓝 0 ↔ ∃ i, 0 < i.2 ∧ (i.1.sup p).ball 0 i.2 ⊆ V
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V) ↔ ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V

tactic: constructor
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V) ↔ ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V
state_after: case mp
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V) → ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V

case mpr
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V) → ∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V

tactic: rintro ⟨-, ⟨s, r, hr, rfl⟩, hV⟩
state_before: case mp
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V) → ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V
state_after: case mp.intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
s : Finset ι
r : ℝ
hr : 0 < r
hV : id ((s.sup p).ball 0 r) ⊆ V
⊢ ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V

tactic: exact ⟨s, r, hr, hV⟩
state_before: case mp.intro.intro.intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
s : Finset ι
r : ℝ
hr : 0 < r
hV : id ((s.sup p).ball 0 r) ⊆ V
⊢ ∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V
state_after: no goals

tactic: rintro ⟨s, r, hr, hV⟩
state_before: case mpr
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
⊢ (∃ a b, 0 < b ∧ (a.sup p).ball 0 b ⊆ V) → ∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V
state_after: case mpr.intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
s : Finset ι
r : ℝ
hr : 0 < r
hV : (s.sup p).ball 0 r ⊆ V
⊢ ∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V

tactic: exact ⟨_, ⟨s, r, hr, rfl⟩, hV⟩
state_before: case mpr.intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
V : Set E
s : Finset ι
r : ℝ
hr : 0 < r
hV : (s.sup p).ball 0 r ⊆ V
⊢ ∃ i, (∃ i_1 r, 0 < r ∧ i = (i_1.sup p).ball 0 r) ∧ id i ⊆ V
state_after: no goals