Theorem: SeminormFamily.basisSets_intersect
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: classical
  rcases p.basisSets_iff.mp hU with ⟨s, r₁, hr₁, hU⟩
  rcases p.basisSets_iff.mp hV with ⟨t, r₂, hr₂, hV⟩
  use ((s ∪ t).sup p).ball 0 (min r₁ r₂)
  refine' ⟨p.basisSets_mem (s ∪ t) (lt_min_iff.mpr ⟨hr₁, hr₂⟩), _⟩
  rw [hU, hV, ball_finset_sup_eq_iInter _ _ _ (lt_min_iff.mpr ⟨hr₁, hr₂⟩),
    ball_finset_sup_eq_iInter _ _ _ hr₁, ball_finset_sup_eq_iInter _ _ _ hr₂]
  exact
    Set.subset_inter
      (Set.iInter₂_mono' fun i hi =>
        ⟨i, Finset.subset_union_left _ _ hi, ball_mono <| min_le_left _ _⟩)
      (Set.iInter₂_mono' fun i hi =>
        ⟨i, Finset.subset_union_right _ _ hi, ball_mono <| min_le_right _ _⟩)
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU : U ∈ basisSets p
hV : V ∈ basisSets p
⊢ ∃ z, z ∈ basisSets p ∧ z ⊆ U ∩ V

tactic: rcases p.basisSets_iff.mp hU with ⟨s, r₁, hr₁, hU⟩
state_before: 𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU : U ∈ basisSets p
hV : V ∈ basisSets p
⊢ ∃ z, z ∈ basisSets p ∧ z ⊆ U ∩ V

tactic: rcases p.basisSets_iff.mp hV with ⟨t, r₂, hr₂, hV⟩
state_before: case intro.intro.intro
𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU✝ : U ∈ basisSets p
hV : V ∈ basisSets p
s : Finset ι
r₁ : ℝ
hr₁ : 0 < r₁
hU : U = ball (Finset.sup s p) 0 r₁
⊢ ∃ z, z ∈ basisSets p ∧ z ⊆ U ∩ V

tactic: use ((s ∪ t).sup p).ball 0 (min r₁ r₂)
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU✝ : U ∈ basisSets p
hV✝ : V ∈ basisSets p
s : Finset ι
r₁ : ℝ
hr₁ : 0 < r₁
hU : U = ball (Finset.sup s p) 0 r₁
t : Finset ι
r₂ : ℝ
hr₂ : 0 < r₂
hV : V = ball (Finset.sup t p) 0 r₂
⊢ ∃ z, z ∈ basisSets p ∧ z ⊆ U ∩ V

tactic: refine' ⟨p.basisSets_mem (s ∪ t) (lt_min_iff.mpr ⟨hr₁, hr₂⟩), _⟩
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU✝ : U ∈ basisSets p
hV✝ : V ∈ basisSets p
s : Finset ι
r₁ : ℝ
hr₁ : 0 < r₁
hU : U = ball (Finset.sup s p) 0 r₁
t : Finset ι
r₂ : ℝ
hr₂ : 0 < r₂
hV : V = ball (Finset.sup t p) 0 r₂
⊢ ball (Finset.sup (s ∪ t) p) 0 (min r₁ r₂) ∈ basisSets p ∧ ball (Finset.sup (s ∪ t) p) 0 (min r₁ r₂) ⊆ U ∩ V

tactic: rw [hU, hV, ball_finset_sup_eq_iInter _ _ _ (lt_min_iff.mpr ⟨hr₁, hr₂⟩),
  ball_finset_sup_eq_iInter _ _ _ hr₁, ball_finset_sup_eq_iInter _ _ _ hr₂]
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU✝ : U ∈ basisSets p
hV✝ : V ∈ basisSets p
s : Finset ι
r₁ : ℝ
hr₁ : 0 < r₁
hU : U = ball (Finset.sup s p) 0 r₁
t : Finset ι
r₂ : ℝ
hr₂ : 0 < r₂
hV : V = ball (Finset.sup t p) 0 r₂
⊢ ball (Finset.sup (s ∪ t) p) 0 (min r₁ r₂) ⊆ U ∩ V

tactic: exact
  Set.subset_inter
    (Set.iInter₂_mono' fun i hi =>
      ⟨i, Finset.subset_union_left _ _ hi, ball_mono <| min_le_left _ _⟩)
    (Set.iInter₂_mono' fun i hi =>
      ⟨i, Finset.subset_union_right _ _ hi, ball_mono <| min_le_right _ _⟩)
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_2
𝕜₂ : Type ?u.22222
𝕝 : Type ?u.22225
𝕝₂ : Type ?u.22228
E : Type u_1
F : Type ?u.22234
G : Type ?u.22237
ι : Type u_3
ι' : Type ?u.22243
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : SeminormFamily 𝕜 E ι
U V : Set E
hU✝ : U ∈ basisSets p
hV✝ : V ∈ basisSets p
s : Finset ι
r₁ : ℝ
hr₁ : 0 < r₁
hU : U = ball (Finset.sup s p) 0 r₁
t : Finset ι
r₂ : ℝ
hr₂ : 0 < r₂
hV : V = ball (Finset.sup t p) 0 r₂
⊢ (⋂ (i : ι) (_ : i ∈ s ∪ t), ball (p i) 0 (min r₁ r₂)) ⊆
    (⋂ (i : ι) (_ : i ∈ s), ball (p i) 0 r₁) ∩ ⋂ (i : ι) (_ : i ∈ t), ball (p i) 0 r₂