Skip to content

Commit

Permalink
feat(topology/subset_properties): upgrade `is_(pre)irreducible.closur…
Browse files Browse the repository at this point in the history
…e` to iff (#17254)




Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
  • Loading branch information
alreadydone and alreadydone committed Nov 1, 2022
1 parent c5b46fa commit 226ea0f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
5 changes: 5 additions & 0 deletions src/topology/basic.lean
Expand Up @@ -450,6 +450,11 @@ theorem mem_closure_iff {s : set α} {a : α} :
λ H c ⟨h₁, h₂⟩, classical.by_contradiction $ λ nc,
let ⟨x, hc, hs⟩ := (H _ h₁.is_open_compl nc) in hc (h₂ hs)⟩

lemma closure_inter_open_nonempty_iff {s t : set α} (h : is_open t) :
(closure s ∩ t).nonempty ↔ (s ∩ t).nonempty :=
⟨λ ⟨x, hxcs, hxt⟩, inter_comm t s ▸ mem_closure_iff.1 hxcs t h hxt,
λ h, h.mono $ inf_le_inf_right t subset_closure⟩

lemma filter.le_lift'_closure (l : filter α) : l ≤ l.lift' closure :=
le_lift'.2 $ λ s hs, mem_of_superset hs subset_closure

Expand Down
22 changes: 11 additions & 11 deletions src/topology/subset_properties.lean
Expand Up @@ -1574,17 +1574,17 @@ lemma set.subsingleton.is_preirreducible {s : set α} (hs : s.subsingleton) :
theorem is_irreducible_singleton {x} : is_irreducible ({x} : set α) :=
⟨singleton_nonempty x, subsingleton_singleton.is_preirreducible⟩

theorem is_preirreducible.closure {s : set α} (H : is_preirreducible s) :
is_preirreducible (closure s) :=
λ u v hu hv ⟨y, hycs, hyu⟩ ⟨z, hzcs, hzv⟩,
let ⟨p, hpu, hps⟩ := mem_closure_iff.1 hycs u hu hyu in
let ⟨q, hqv, hqs⟩ := mem_closure_iff.1 hzcs v hv hzv in
let ⟨r, hrs, hruv⟩ := H u v hu hv ⟨p, hps, hpu⟩ ⟨q, hqs, hqv⟩ in
⟨r, subset_closure hrs, hruv⟩

lemma is_irreducible.closure {s : set α} (h : is_irreducible s) :
is_irreducible (closure s) :=
⟨h.nonempty.closure, h.is_preirreducible.closure
theorem is_preirreducible_iff_closure {s : set α} :
is_preirreducible (closure s) ↔ is_preirreducible s :=
forall₄_congr $ λ u v hu hv,
by { iterate 3 { rw closure_inter_open_nonempty_iff }, exacts [hu.inter hv, hv, hu] }

theorem is_irreducible_iff_closure {s : set α} :
is_irreducible (closure s) ↔ is_irreducible s :=
and_congr closure_nonempty_iff is_preirreducible_iff_closure

alias is_preirreducible_iff_closure ↔ _ is_preirreducible.closure
alias is_irreducible_iff_closure ↔ _ is_irreducible.closure

theorem exists_preirreducible (s : set α) (H : is_preirreducible s) :
∃ t : set α, is_preirreducible t ∧ s ⊆ t ∧ ∀ u, is_preirreducible u → t ⊆ u → u = t :=
Expand Down

0 comments on commit 226ea0f

Please sign in to comment.