𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (𝓝 0) (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
⊢ Filter.HasBasis (𝓝 0) (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
let p := B.toSeminormFamily
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 (↑(↑B 0) i)))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (𝓝 0) (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
rw [nhds_induced, nhds_pi]
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 (↑(↑B 0) i)))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
simp only [map_zero, LinearMap.zero_apply]
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
have h := @Metric.nhds_basis_ball 𝕜 _ 0
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
have h' := Filter.hasBasis_pi fun _ : F => h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
have h'' := Filter.HasBasis.comap (fun x y => B x y) h'
case refine'_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ ∀ (i : Set F × (F → ℝ)),
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) →
      ∃ i',
        SeminormFamily.basisSets (toSeminormFamily B) i' ∧
          _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)

case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ ∀ (i' : Set E),
    SeminormFamily.basisSets (toSeminormFamily B) i' →
      ∃ i,
        (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
          ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id i'
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun i => 𝓝 0))
    (SeminormFamily.basisSets (toSeminormFamily B)) _root_.id
refine' h''.to_hasBasis _ _
case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
hU : U ∈ SeminormFamily.basisSets p
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ ∀ (i' : Set E),
    SeminormFamily.basisSets (toSeminormFamily B) i' →
      ∃ i,
        (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
          ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id i'
rintro U (hU : U ∈ p.basisSets)
case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
hU : ∃ i r x, U = Seminorm.ball (Finset.sup i p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
hU : U ∈ SeminormFamily.basisSets p
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
rw [SeminormFamily.basisSets_iff] at hU
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
case refine'_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
hU : ∃ i r x, U = Seminorm.ball (Finset.sup i p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
rcases hU with ⟨s, r, hr, hU⟩
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆
        _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆ _root_.id U
rw [hU]
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : x ∈ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi (↑s, fun x => r).fst fun i => Metric.ball 0 (Prod.snd (↑s, fun x => r) i)
⊢ x ∈ _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
⊢ ∃ i,
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) ∧
      ((fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)) ⊆
        _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
refine' ⟨(s, fun _ => r), ⟨by simp only [s.finite_toSet], fun y _ => hr⟩, fun x hx => _⟩
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
⊢ x ∈ _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : x ∈ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi (↑s, fun x => r).fst fun i => Metric.ball 0 (Prod.snd (↑s, fun x => r) i)
⊢ x ∈ _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
simp only [Set.mem_preimage, Set.mem_pi, Finset.mem_coe, mem_ball_zero_iff] at hx
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
⊢ ↑(Finset.sup s (toSeminormFamily B)) x < r
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
⊢ x ∈ _root_.id (Seminorm.ball (Finset.sup s p) 0 r)
simp only [id.def, Seminorm.mem_ball, sub_zero]
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
y : F
hy : y ∈ s
⊢ ↑(toSeminormFamily B y) x < r
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
⊢ ↑(Finset.sup s (toSeminormFamily B)) x < r
refine' Seminorm.finset_sup_apply_lt hr fun y hy => _
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
y : F
hy : y ∈ s
⊢ ‖↑(↑B x) y‖ < r
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
y : F
hy : y ∈ s
⊢ ↑(toSeminormFamily B y) x < r
rw [LinearMap.toSeminormFamily_apply]
no goals
case refine'_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
x : E
hx : ∀ (i : F), i ∈ s → ‖↑(↑B x) i‖ < r
y : F
hy : y ∈ s
⊢ ‖↑(↑B x) y‖ < r
exact hx y hy
case refine'_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU : Set.Finite U.fst ∧ ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case refine'_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
⊢ ∀ (i : Set F × (F → ℝ)),
    (Set.Finite i.fst ∧ ∀ (i_1 : F), i_1 ∈ i.fst → 0 < Prod.snd i i_1) →
      ∃ i',
        SeminormFamily.basisSets (toSeminormFamily B) i' ∧
          _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
rintro (U : Set F × (F → ℝ)) hU
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case refine'_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU : Set.Finite U.fst ∧ ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
cases' hU with hU₁ hU₂
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      _root_.id i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
simp only [id.def]
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
let U' := hU₁.toFinset
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)

case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case refine'_1.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
by_cases hU₃ : U.fst.Nonempty
case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi ∅ fun i => Metric.ball 0 (Prod.snd U i)
case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
rw [Set.not_nonempty_iff_eq_empty.mp hU₃]
case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i', SeminormFamily.basisSets (toSeminormFamily B) i'
case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi ∅ fun i => Metric.ball 0 (Prod.snd U i)
simp only [Set.empty_pi, Set.preimage_univ, Set.subset_univ, and_true_iff]
no goals
case neg
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : ¬Set.Nonempty U.fst
⊢ ∃ i', SeminormFamily.basisSets (toSeminormFamily B) i'
exact Exists.intro ((p 0).ball 0 1) (p.basisSets_singleton_mem 0 one_pos)
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
have hU₃' : U'.Nonempty := hU₁.toFinset_nonempty.mpr hU₃
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : x ∈ Seminorm.ball (Finset.sup U' p) 0 (Finset.inf' U' hU₃' U.snd)
y : F
hy : y ∈ U.fst
⊢ (fun x y => ↑(↑B x) y) x y ∈ (fun i => Metric.ball 0 (Prod.snd U i)) y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
⊢ ∃ i',
    SeminormFamily.basisSets (toSeminormFamily B) i' ∧
      i' ⊆ (fun x y => ↑(↑B x) y) ⁻¹' Set.pi U.fst fun i => Metric.ball 0 (Prod.snd U i)
refine' ⟨(U'.sup p).ball 0 <| U'.inf' hU₃' U.snd, p.basisSets_mem _ <|
  (Finset.lt_inf'_iff _).2 fun y hy => hU₂ y <| hU₁.mem_toFinset.mp hy, fun x hx y hy => _⟩
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : x ∈ Seminorm.ball (Finset.sup U' p) 0 (Finset.inf' U' hU₃' U.snd)
y : F
hy : y ∈ U.fst
⊢ ‖↑(↑B x) y‖ < Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : x ∈ Seminorm.ball (Finset.sup U' p) 0 (Finset.inf' U' hU₃' U.snd)
y : F
hy : y ∈ U.fst
⊢ (fun x y => ↑(↑B x) y) x y ∈ (fun i => Metric.ball 0 (Prod.snd U i)) y
simp only [Set.mem_preimage, Set.mem_pi, mem_ball_zero_iff]
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
⊢ ‖↑(↑B x) y‖ < Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : x ∈ Seminorm.ball (Finset.sup U' p) 0 (Finset.inf' U' hU₃' U.snd)
y : F
hy : y ∈ U.fst
⊢ ‖↑(↑B x) y‖ < Prod.snd U y
rw [Seminorm.mem_ball_zero] at hx
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
⊢ ‖↑(↑B x) y‖ < Prod.snd U y
rw [← LinearMap.toSeminormFamily_apply]
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
have hyU' : y ∈ U' := (Set.Finite.mem_toFinset hU₁).mpr hy
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
hp : p y ≤ Finset.sup U' p
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
have hp : p y ≤ U'.sup p := Finset.le_sup hyU'
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
hp : p y ≤ Finset.sup U' p
⊢ Finset.inf' U' hU₃' U.snd ≤ Prod.snd U y
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
hp : p y ≤ Finset.sup U' p
⊢ ↑(toSeminormFamily B y) x < Prod.snd U y
refine' lt_of_le_of_lt (hp x) (lt_of_lt_of_le hx _)
no goals
case pos
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set F × (F → ℝ)
hU₁ : Set.Finite U.fst
hU₂ : ∀ (i : F), i ∈ U.fst → 0 < Prod.snd U i
U' : Finset F := Set.Finite.toFinset hU₁
hU₃ : Set.Nonempty U.fst
hU₃' : Finset.Nonempty U'
x : E
hx : ↑(Finset.sup U' p) x < Finset.inf' U' hU₃' U.snd
y : F
hy : y ∈ U.fst
hyU' : y ∈ U'
hp : p y ≤ Finset.sup U' p
⊢ Finset.inf' U' hU₃' U.snd ≤ Prod.snd U y
exact Finset.inf'_le _ hyU'
no goals
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type ?u.39109
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 F
inst✝ : Nonempty ι
B✝ B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
p : SeminormFamily 𝕜 E F := toSeminormFamily B
h : Filter.HasBasis (𝓝 0) (fun x => 0 < x) (Metric.ball 0)
h' :
  Filter.HasBasis (Filter.pi fun x => 𝓝 0) (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i)
    fun If => Set.pi If.fst fun i => Metric.ball 0 (Prod.snd If i)
h'' :
  Filter.HasBasis (Filter.comap (fun x y => ↑(↑B x) y) (Filter.pi fun x => 𝓝 0))
    (fun If => Set.Finite If.fst ∧ ∀ (i : F), i ∈ If.fst → 0 < Prod.snd If i) fun i =>
    (fun x y => ↑(↑B x) y) ⁻¹' Set.pi i.fst fun i_1 => Metric.ball 0 (Prod.snd i i_1)
U : Set E
s : Finset F
r : ℝ
hr : 0 < r
hU : U = Seminorm.ball (Finset.sup s p) 0 r
⊢ Set.Finite (↑s, fun x => r).fst
simp only [s.finite_toSet]