Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 02022cd

Browse files
committed
feat(topology/subset_properties): an infinite type with cofinite topology is irreducible (#16499)
1 parent 53322d0 commit 02022cd

File tree

4 files changed

+31
-4
lines changed

4 files changed

+31
-4
lines changed

src/data/set/basic.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,6 +1914,9 @@ by simp_rw [set.subsingleton, set.nontrivial, not_forall]
19141914
@[simp] lemma not_nontrivial_iff : ¬ s.nontrivial ↔ s.subsingleton :=
19151915
iff.not_left not_subsingleton_iff.symm
19161916

1917+
alias not_nontrivial_iff ↔ _ subsingleton.not_nontrivial
1918+
alias not_subsingleton_iff ↔ _ nontrivial.not_subsingleton
1919+
19171920
theorem univ_eq_true_false : univ = ({true, false} : set Prop) :=
19181921
eq.symm $ eq_univ_of_forall $ classical.cases (by simp) (by simp)
19191922

src/topology/separation.lean

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,7 +1269,7 @@ begin
12691269
compact_closure_of_subset_compact hV interior_subset⟩,
12701270
end
12711271

1272-
lemma is_preirreducible_iff_subsingleton [t2_space α] (S : set α) :
1272+
lemma is_preirreducible_iff_subsingleton [t2_space α] {S : set α} :
12731273
is_preirreducible S ↔ S.subsingleton :=
12741274
begin
12751275
refine ⟨λ h x hx y hy, _, set.subsingleton.is_preirreducible⟩,
@@ -1278,11 +1278,19 @@ begin
12781278
exact ((h U V hU hV ⟨x, hx, hxU⟩ ⟨y, hy, hyV⟩).mono $ inter_subset_right _ _).not_disjoint h',
12791279
end
12801280

1281-
lemma is_irreducible_iff_singleton [t2_space α] (S : set α) :
1281+
alias is_preirreducible_iff_subsingleton ↔ is_preirreducible.subsingleton _
1282+
attribute [protected] is_preirreducible.subsingleton
1283+
1284+
lemma is_irreducible_iff_singleton [t2_space α] {S : set α} :
12821285
is_irreducible S ↔ ∃ x, S = {x} :=
12831286
by rw [is_irreducible, is_preirreducible_iff_subsingleton,
12841287
exists_eq_singleton_iff_nonempty_subsingleton]
12851288

1289+
/-- There does not exist a nontrivial preirreducible T₂ space. -/
1290+
lemma not_preirreducible_nontrivial_t2 (α) [topological_space α] [preirreducible_space α]
1291+
[nontrivial α] [t2_space α] : false :=
1292+
(preirreducible_space.is_preirreducible_univ α).subsingleton.not_nontrivial nontrivial_univ
1293+
12861294
end separation
12871295

12881296
section regular_space

src/topology/sober.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ instance t2_space.quasi_sober [t2_space α] : quasi_sober α :=
223223
begin
224224
constructor,
225225
rintro S h -,
226-
obtain ⟨x, rfl⟩ := (is_irreducible_iff_singleton S).mp h,
226+
obtain ⟨x, rfl⟩ := is_irreducible_iff_singleton.mp h,
227227
exact ⟨x, closure_singleton⟩
228228
end
229229

src/topology/subset_properties.lean

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1590,6 +1590,11 @@ theorem nonempty_preirreducible_inter [preirreducible_space α] {s t : set α} :
15901590
by simpa only [univ_inter, univ_subset_iff] using
15911591
@preirreducible_space.is_preirreducible_univ α _ _ s t
15921592

1593+
/-- In a (pre)irreducible space, a nonempty open set is dense. -/
1594+
protected theorem is_open.dense [preirreducible_space α] {s : set α} (ho : is_open s)
1595+
(hne : s.nonempty) : dense s :=
1596+
dense_iff_inter_open.2 $ λ t hto htne, nonempty_preirreducible_inter hto ho htne hne
1597+
15931598
theorem is_preirreducible.image {s : set α} (H : is_preirreducible s)
15941599
(f : α → β) (hf : continuous_on f s) : is_preirreducible (f '' s) :=
15951600
begin
@@ -1611,7 +1616,7 @@ end
16111616

16121617
theorem is_irreducible.image {s : set α} (H : is_irreducible s)
16131618
(f : α → β) (hf : continuous_on f s) : is_irreducible (f '' s) :=
1614-
nonempty_image_iff.mpr H.nonempty, H.is_preirreducible.image f hf⟩
1619+
⟨H.nonempty.image _, H.is_preirreducible.image f hf⟩
16151620

16161621
lemma subtype.preirreducible_space {s : set α} (h : is_preirreducible s) :
16171622
preirreducible_space s :=
@@ -1633,6 +1638,17 @@ lemma subtype.irreducible_space {s : set α} (h : is_irreducible s) :
16331638
(subtype.preirreducible_space h.is_preirreducible).is_preirreducible_univ,
16341639
to_nonempty := h.nonempty.to_subtype }
16351640

1641+
/-- An infinite type with cofinite topology is an irreducible topological space. -/
1642+
@[priority 100] instance {α} [infinite α] : irreducible_space (cofinite_topology α) :=
1643+
{ is_preirreducible_univ := λ u v,
1644+
begin
1645+
haveI : infinite (cofinite_topology α) := ‹_›,
1646+
simp only [cofinite_topology.is_open_iff, univ_inter],
1647+
intros hu hv hu' hv',
1648+
simpa only [compl_union, compl_compl] using ((hu hu').union (hv hv')).infinite_compl.nonempty
1649+
end,
1650+
to_nonempty := (infer_instance : nonempty α) }
1651+
16361652
/-- A set `s` is irreducible if and only if
16371653
for every finite collection of open sets all of whose members intersect `s`,
16381654
`s` also intersects the intersection of the entire collection

0 commit comments

Comments
 (0)