Theorem: TopologicalSpace.Opens.isBasis_iff_cover
File: Mathlib/Topology/Sets/Opens.lean

tactic: constructor
state_before: ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
⊢ IsBasis B ↔ ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us

tactic: intro hB U
state_before: case mp
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
⊢ IsBasis B → ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us

tactic: refine ⟨{ V : Opens α | V ∈ B ∧ V ≤ U }, fun U hU => hU.left, ext ?_⟩
state_before: case mp
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
hB : IsBasis B
U : Opens α
⊢ ∃ Us, Us ⊆ B ∧ U = sSup Us

tactic: rw [coe_sSup, hB.open_eq_sUnion' U.isOpen]
state_before: case mp
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
hB : IsBasis B
U : Opens α
⊢ ↑U = ↑(sSup {V | V ∈ B ∧ V ≤ U})

tactic: simp_rw [sUnion_eq_biUnion, iUnion, mem_setOf_eq, iSup_and, iSup_image]
state_before: case mp
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
hB : IsBasis B
U : Opens α
⊢ ⋃₀ {s | s ∈ SetLike.coe '' B ∧ s ⊆ ↑U} = ⋃ (i : Opens α) (_ : i ∈ {V | V ∈ B ∧ V ≤ U}), ↑i

tactic: rfl
state_before: case mp
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
hB : IsBasis B
U : Opens α
⊢ (⨆ (b : Opens α) (_ : b ∈ B) (_ : ↑b ⊆ ↑U), ↑b) = ⨆ (i : Opens α) (_ : i ∈ B) (_ : i ≤ U), ↑i

tactic: intro h
state_before: case mpr
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
⊢ (∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us) → IsBasis B

tactic: rw [isBasis_iff_nbhd]
state_before: case mpr
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
h : ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us
⊢ IsBasis B

tactic: intro U x hx
state_before: case mpr
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
h : ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us
⊢ ∀ {U : Opens α} {x : α}, x ∈ U → ∃ U', U' ∈ B ∧ x ∈ U' ∧ U' ≤ U

tactic: rcases h U with ⟨Us, hUs, rfl⟩
state_before: case mpr
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
h : ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us
U : Opens α
x : α
hx : x ∈ U
⊢ ∃ U', U' ∈ B ∧ x ∈ U' ∧ U' ≤ U

tactic: rcases mem_sSup.1 hx with ⟨U, Us, xU⟩
state_before: case mpr.intro.intro
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
h : ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us
x : α
Us : Set (Opens α)
hUs : Us ⊆ B
hx : x ∈ sSup Us
⊢ ∃ U', U' ∈ B ∧ x ∈ U' ∧ U' ≤ sSup Us

tactic: exact ⟨U, hUs Us, xU, le_sSup Us⟩
state_before: case mpr.intro.intro.intro.intro
ι : Type ?u.31277
α : Type u_1
β : Type ?u.31283
γ : Type ?u.31286
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
B : Set (Opens α)
h : ∀ (U : Opens α), ∃ Us, Us ⊆ B ∧ U = sSup Us
x : α
Us✝ : Set (Opens α)
hUs : Us✝ ⊆ B
hx : x ∈ sSup Us✝
U : Opens α
Us : U ∈ Us✝
xU : x ∈ U
⊢ ∃ U', U' ∈ B ∧ x ∈ U' ∧ U' ≤ sSup Us✝