Theorem: quasiSober_of_open_cover
File: Mathlib/Topology/Sober.lean

tactic: rw [quasiSober_iff]
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
⊢ QuasiSober α

tactic: intro t h h'
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
⊢ ∀ {S : Set α}, IsIrreducible S → IsClosed S → ∃ x, IsGenericPoint x S

tactic: obtain ⟨x, hx⟩ := h.1
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
⊢ ∃ x, IsGenericPoint x t

tactic: obtain ⟨U, hU, hU'⟩ : x ∈ ⋃₀ S := by
  rw [hS'']
  trivial
state_before: case intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
⊢ ∃ x, IsGenericPoint x t

tactic: haveI : QuasiSober U := hS' ⟨U, hU⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
⊢ ∃ x, IsGenericPoint x t

tactic: have H : IsPreirreducible ((↑) ⁻¹' t : Set U) :=
  h.2.preimage (hS ⟨U, hU⟩).openEmbedding_subtype_val
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this : QuasiSober ↑U
⊢ ∃ x, IsGenericPoint x t

tactic: replace H : IsIrreducible ((↑) ⁻¹' t : Set U) := ⟨⟨⟨x, hU'⟩, by simpa using hx⟩, H⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this : QuasiSober ↑U
H : IsPreirreducible (Subtype.val ⁻¹' t)
⊢ ∃ x, IsGenericPoint x t

tactic: use H.genericPoint
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
⊢ ∃ x, IsGenericPoint x t

tactic: have := continuous_subtype_val.closure_preimage_subset _ H.genericPoint_spec.mem
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
⊢ IsGenericPoint (↑(IsIrreducible.genericPoint H)) t

tactic: rw [h'.closure_eq] at this
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' closure t
⊢ IsGenericPoint (↑(IsIrreducible.genericPoint H)) t

tactic: apply le_antisymm
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ IsGenericPoint (↑(IsIrreducible.genericPoint H)) t

tactic: rw [← image_singleton, ← closure_image_closure continuous_subtype_val, H.genericPoint_spec.def]
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ t ≤ closure {↑(IsIrreducible.genericPoint H)}

tactic: refine' (subset_closure_inter_of_isPreirreducible_of_isOpen h.2 (hS ⟨U, hU⟩) ⟨x, hx, hU'⟩).trans
  (closure_mono _)
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ t ≤ closure (Subtype.val '' closure (Subtype.val ⁻¹' t))

tactic: rw [← Subtype.image_preimage_coe]
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ t ∩ ↑{ val := U, property := hU } ⊆ Subtype.val '' closure (Subtype.val ⁻¹' t)

tactic: exact Set.image_subset _ subset_closure
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ Subtype.val '' (Subtype.val ⁻¹' t) ⊆ Subtype.val '' closure (Subtype.val ⁻¹' t)

tactic: rw [hS'']
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
⊢ x ∈ ⋃₀ S

tactic: trivial
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
⊢ x ∈ ⊤

tactic: simpa using hx
state_before: α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this : QuasiSober ↑U
H : IsPreirreducible (Subtype.val ⁻¹' t)
⊢ { val := x, property := hU' } ∈ Subtype.val ⁻¹' t

tactic: apply h'.closure_subset_iff.mpr
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ closure {↑(IsIrreducible.genericPoint H)} ≤ t

tactic: simpa using this
state_before: case intro.intro.intro.a
α : Type u_1
β : Type ?u.12585
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
S : Set (Set α)
hS : ∀ (s : ↑S), IsOpen ↑s
hS' : ∀ (s : ↑S), QuasiSober ↑↑s
hS'' : ⋃₀ S = ⊤
t : Set α
h : IsIrreducible t
h' : IsClosed t
x : α
hx : x ∈ t
U : Set α
hU : U ∈ S
hU' : x ∈ U
this✝ : QuasiSober ↑U
H : IsIrreducible (Subtype.val ⁻¹' t)
this : IsIrreducible.genericPoint H ∈ Subtype.val ⁻¹' t
⊢ {↑(IsIrreducible.genericPoint H)} ⊆ t