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

tactic: let p : SeminormFamily 𝕜 E (Fin 1) := fun _ => normSeminorm 𝕜 E
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
⊢ WithSeminorms fun x => normSeminorm 𝕜 E
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ WithSeminorms fun x => normSeminorm 𝕜 E

tactic: refine
  ⟨SeminormedAddCommGroup.toTopologicalAddGroup.ext
      p.addGroupFilterBasis.isTopologicalAddGroup ?_⟩
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ WithSeminorms fun x => normSeminorm 𝕜 E
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ 𝓝 0 = 𝓝 0

tactic: refine Filter.HasBasis.eq_of_same_basis Metric.nhds_basis_ball ?_
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ 𝓝 0 = 𝓝 0
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ (𝓝 0).HasBasis (fun x => 0 < x) (Metric.ball 0)

tactic: rw [← ball_normSeminorm 𝕜 E]
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ (𝓝 0).HasBasis (fun x => 0 < x) (Metric.ball 0)
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ (𝓝 0).HasBasis (fun x => 0 < x) ((normSeminorm 𝕜 E).ball 0)

tactic: refine
  Filter.HasBasis.to_hasBasis p.addGroupFilterBasis.nhds_zero_hasBasis ?_ fun r hr =>
    ⟨(normSeminorm 𝕜 E).ball 0 r, p.basisSets_singleton_mem 0 hr, rfl.subset⟩
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ (𝓝 0).HasBasis (fun x => 0 < x) ((normSeminorm 𝕜 E).ball 0)
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ ∀ i ∈ p.addGroupFilterBasis, ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id i

tactic: rintro U (hU : U ∈ p.basisSets)
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
⊢ ∀ i ∈ p.addGroupFilterBasis, ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id i
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU : U ∈ p.basisSets
⊢ ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id U

tactic: rcases p.basisSets_iff.mp hU with ⟨s, r, hr, hU⟩
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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU : U ∈ p.basisSets
⊢ ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id U
state_after: case 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id U

tactic: use r, hr
state_before: case 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ ∃ i', 0 < i' ∧ (normSeminorm 𝕜 E).ball 0 i' ⊆ id U
state_after: case right
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ id U

tactic: rw [hU, id]
state_before: case right
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ id U
state_after: case right
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r

tactic: by_cases h : s.Nonempty
state_before: case right
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r
state_after: case pos
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r

case neg
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : ¬s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r

tactic: rw [Finset.not_nonempty_iff_eq_empty.mp h, Finset.sup_empty, ball_bot _ hr]
state_before: case neg
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : ¬s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r
state_after: case neg
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : ¬s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ univ

tactic: exact Set.subset_univ _
state_before: case neg
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : ¬s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ univ
state_after: no goals

tactic: rw [Finset.sup_const h]
state_before: case pos
𝕜✝ : 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
𝕜 : Type u_10
E : Type u_11
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
p : SeminormFamily 𝕜 E (Fin 1) := fun x => normSeminorm 𝕜 E
U : Set E
hU✝ : U ∈ p.basisSets
s : Finset (Fin 1)
r : ℝ
hr : 0 < r
hU : U = (s.sup p).ball 0 r
h : s.Nonempty
⊢ (normSeminorm 𝕜 E).ball 0 r ⊆ (s.sup p).ball 0 r
state_after: no goals