-- Mathlib/Analysis/LocallyConvex/AbsConvex.lean
theorem nhds_hasBasis_absConvex_open :
    (𝓝 (0 : E)).HasBasis (fun s => (0 : E) ∈ s ∧ IsOpen s ∧ AbsConvex 𝕜 s) id

Proof state:
case refine_2
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
⊢ ∀ (i' : Set E), 0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i' → ∃ i, (i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i) ∧ id i ⊆ id i'

Tactic:
rintro s ⟨hs_zero, hs_open, hs_balanced, hs_convex⟩

Result:
case refine_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_zero : 0 ∈ s
hs_open : IsOpen s
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ ∃ i, (i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i) ∧ id i ⊆ id s

Proof state:
case refine_2.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_zero : 0 ∈ s
hs_open : IsOpen s
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ ∃ i, (i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i) ∧ id i ⊆ id s

Tactic:
exact ⟨s, ⟨hs_open.mem_nhds hs_zero, hs_balanced, hs_convex⟩, rfl.subset⟩

Result:
no goals

Proof state:
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
⊢ (𝓝 0).HasBasis (fun s => 0 ∈ s ∧ IsOpen s ∧ AbsConvex 𝕜 s) id

Tactic:
refine (nhds_hasBasis_absConvex 𝕜 E).to_hasBasis ?_ ?_

Result:
case refine_1
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
⊢ ∀ (i : Set E), i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i → ∃ i', (0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i') ∧ id i' ⊆ id i

case refine_2
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
⊢ ∀ (i' : Set E), 0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i' → ∃ i, (i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i) ∧ id i ⊆ id i'

Proof state:
case refine_1
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
⊢ ∀ (i : Set E), i ∈ 𝓝 0 ∧ AbsConvex 𝕜 i → ∃ i', (0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i') ∧ id i' ⊆ id i

Tactic:
rintro s ⟨hs_nhds, hs_balanced, hs_convex⟩

Result:
case refine_1.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_nhds : s ∈ 𝓝 0
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ ∃ i', (0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i') ∧ id i' ⊆ id s

Proof state:
case refine_1.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_nhds : s ∈ 𝓝 0
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ ∃ i', (0 ∈ i' ∧ IsOpen i' ∧ AbsConvex 𝕜 i') ∧ id i' ⊆ id s

Tactic:
refine ⟨interior s, ?_, interior_subset⟩

Result:
case refine_1.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_nhds : s ∈ 𝓝 0
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ 0 ∈ interior s ∧ IsOpen (interior s) ∧ AbsConvex 𝕜 (interior s)

Proof state:
case refine_1.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : LocallyConvexSpace ℝ E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : IsTopologicalAddGroup E
s : Set E
hs_nhds : s ∈ 𝓝 0
hs_balanced : Balanced 𝕜 s
hs_convex : Convex ℝ s
⊢ 0 ∈ interior s ∧ IsOpen (interior s) ∧ AbsConvex 𝕜 (interior s)

Tactic:
exact
  ⟨mem_interior_iff_mem_nhds.mpr hs_nhds, isOpen_interior,
    hs_balanced.interior (mem_interior_iff_mem_nhds.mpr hs_nhds), hs_convex.interior⟩

Result:
no goals