Theorem: TopologicalSpace.IsTopologicalBasis.mem_nhds_iff
File: Mathlib/Topology/Bases.lean

tactic: change s ∈ (𝓝 a).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ 𝓝 a ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s
state_after: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ (𝓝 a).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s

tactic: rw [hb.eq_generateFrom, nhds_generateFrom, biInf_sets_eq]
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ (𝓝 a).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s
state_after: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ ⋃ i ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 i).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s

case h
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ DirectedOn (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) {s | a ∈ s ∧ s ∈ b}

case ne
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ {s | a ∈ s ∧ s ∈ b}.Nonempty

tactic: simp [and_assoc, and_left_comm]
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ s ∈ ⋃ i ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 i).sets ↔ ∃ t ∈ b, a ∈ t ∧ t ⊆ s
state_after: no goals

tactic: rintro s ⟨hs₁, hs₂⟩ t ⟨ht₁, ht₂⟩
state_before: case h
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ DirectedOn (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) {s | a ∈ s ∧ s ∈ b}
state_after: case h.intro.intro
α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s✝¹ : Set α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
⊢ ∃ z ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) t z

tactic: let ⟨u, hu₁, hu₂, hu₃⟩ := hb.1 _ hs₂ _ ht₂ _ ⟨hs₁, ht₁⟩
state_before: case h.intro.intro
α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s✝¹ : Set α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
⊢ ∃ z ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) t z
state_after: case h.intro.intro
α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s✝¹ : Set α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
u : Set α
hu₁ : u ∈ b
hu₂ : a ∈ u
hu₃ : u ⊆ s ∩ t
⊢ ∃ z ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) t z

tactic: exact ⟨u, ⟨hu₂, hu₁⟩, le_principal_iff.2 (hu₃.trans inter_subset_left),
  le_principal_iff.2 (hu₃.trans inter_subset_right)⟩
state_before: case h.intro.intro
α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s✝¹ : Set α
a : α
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
s : Set α
hs₁ : a ∈ s
hs₂ : s ∈ b
t : Set α
ht₁ : a ∈ t
ht₂ : t ∈ b
u : Set α
hu₁ : u ∈ b
hu₂ : a ∈ u
hu₃ : u ⊆ s ∩ t
⊢ ∃ z ∈ {s | a ∈ s ∧ s ∈ b}, (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) s z ∧ (𝓟 ⁻¹'o fun x x_1 => x ≥ x_1) t z
state_after: no goals

tactic: rcases eq_univ_iff_forall.1 hb.sUnion_eq a with ⟨i, h1, h2⟩
state_before: case ne
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
⊢ {s | a ∈ s ∧ s ∈ b}.Nonempty
state_after: case ne.intro.intro
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
i : Set α
h1 : i ∈ b
h2 : a ∈ i
⊢ {s | a ∈ s ∧ s ∈ b}.Nonempty

tactic: exact ⟨i, h2, h1⟩
state_before: case ne.intro.intro
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
a : α
s : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
i : Set α
h1 : i ∈ b
h2 : a ∈ i
⊢ {s | a ∈ s ∧ s ∈ b}.Nonempty
state_after: no goals