Skip to content

Commit 78c7971

Browse files
committed
feat(Data/Set/Lattice): image2 lemmas (#20020)
Also add spaces after `⋃₀` for uniformity with `⋂₀`. From GrowthInGroups (LeanCamCombi)
1 parent e282c78 commit 78c7971

File tree

1 file changed

+69
-39
lines changed

1 file changed

+69
-39
lines changed

Mathlib/Data/Set/Lattice.lean

Lines changed: 69 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ open Function Set
5656

5757
universe u
5858

59-
variable {α β γ : Type*} {ι ι' ι₂ : Sort*} {κ κ₁ κ₂ : ι → Sort*} {κ' : ι' → Sort*}
59+
variable {α β γ δ : Type*} {ι ι' ι₂ : Sort*} {κ κ₁ κ₂ : ι → Sort*} {κ' : ι' → Sort*}
6060

6161
namespace Set
6262

@@ -841,28 +841,28 @@ theorem iInter₂_union (s : ∀ i, κ i → Set α) (t : Set α) :
841841
(⋂ (i) (j), s i j) ∪ t = ⋂ (i) (j), s i j ∪ t := by simp_rw [iInter_union]
842842

843843
theorem mem_sUnion_of_mem {x : α} {t : Set α} {S : Set (Set α)} (hx : x ∈ t) (ht : t ∈ S) :
844-
x ∈ ⋃₀S :=
844+
x ∈ ⋃₀ S :=
845845
⟨t, ht, hx⟩
846846

847847
-- is this theorem really necessary?
848-
theorem not_mem_of_not_mem_sUnion {x : α} {t : Set α} {S : Set (Set α)} (hx : x ∉ ⋃₀S)
848+
theorem not_mem_of_not_mem_sUnion {x : α} {t : Set α} {S : Set (Set α)} (hx : x ∉ ⋃₀ S)
849849
(ht : t ∈ S) : x ∉ t := fun h => hx ⟨t, ht, h⟩
850850

851851
theorem sInter_subset_of_mem {S : Set (Set α)} {t : Set α} (tS : t ∈ S) : ⋂₀ S ⊆ t :=
852852
sInf_le tS
853853

854-
theorem subset_sUnion_of_mem {S : Set (Set α)} {t : Set α} (tS : t ∈ S) : t ⊆ ⋃₀S :=
854+
theorem subset_sUnion_of_mem {S : Set (Set α)} {t : Set α} (tS : t ∈ S) : t ⊆ ⋃₀ S :=
855855
le_sSup tS
856856

857857
theorem subset_sUnion_of_subset {s : Set α} (t : Set (Set α)) (u : Set α) (h₁ : s ⊆ u)
858-
(h₂ : u ∈ t) : s ⊆ ⋃₀t :=
858+
(h₂ : u ∈ t) : s ⊆ ⋃₀ t :=
859859
Subset.trans h₁ (subset_sUnion_of_mem h₂)
860860

861-
theorem sUnion_subset {S : Set (Set α)} {t : Set α} (h : ∀ t' ∈ S, t' ⊆ t) : ⋃₀S ⊆ t :=
861+
theorem sUnion_subset {S : Set (Set α)} {t : Set α} (h : ∀ t' ∈ S, t' ⊆ t) : ⋃₀ S ⊆ t :=
862862
sSup_le h
863863

864864
@[simp]
865-
theorem sUnion_subset_iff {s : Set (Set α)} {t : Set α} : ⋃₀s ⊆ t ↔ ∀ t' ∈ s, t' ⊆ t :=
865+
theorem sUnion_subset_iff {s : Set (Set α)} {t : Set α} : ⋃₀ s ⊆ t ↔ ∀ t' ∈ s, t' ⊆ t :=
866866
sSup_le_iff
867867

868868
/-- `sUnion` is monotone under taking a subset of each set. -/
@@ -884,31 +884,31 @@ theorem subset_sInter_iff {S : Set (Set α)} {t : Set α} : t ⊆ ⋂₀ S ↔
884884
le_sInf_iff
885885

886886
@[gcongr]
887-
theorem sUnion_subset_sUnion {S T : Set (Set α)} (h : S ⊆ T) : ⋃₀S ⊆ ⋃₀T :=
887+
theorem sUnion_subset_sUnion {S T : Set (Set α)} (h : S ⊆ T) : ⋃₀ S ⊆ ⋃₀ T :=
888888
sUnion_subset fun _ hs => subset_sUnion_of_mem (h hs)
889889

890890
@[gcongr]
891891
theorem sInter_subset_sInter {S T : Set (Set α)} (h : S ⊆ T) : ⋂₀ T ⊆ ⋂₀ S :=
892892
subset_sInter fun _ hs => sInter_subset_of_mem (h hs)
893893

894894
@[simp]
895-
theorem sUnion_empty : ⋃₀∅ = (∅ : Set α) :=
895+
theorem sUnion_empty : ⋃₀ ∅ = (∅ : Set α) :=
896896
sSup_empty
897897

898898
@[simp]
899899
theorem sInter_empty : ⋂₀ ∅ = (univ : Set α) :=
900900
sInf_empty
901901

902902
@[simp]
903-
theorem sUnion_singleton (s : Set α) : ⋃₀{s} = s :=
903+
theorem sUnion_singleton (s : Set α) : ⋃₀ {s} = s :=
904904
sSup_singleton
905905

906906
@[simp]
907907
theorem sInter_singleton (s : Set α) : ⋂₀ {s} = s :=
908908
sInf_singleton
909909

910910
@[simp]
911-
theorem sUnion_eq_empty {S : Set (Set α)} : ⋃₀S = ∅ ↔ ∀ s ∈ S, s = ∅ :=
911+
theorem sUnion_eq_empty {S : Set (Set α)} : ⋃₀ S = ∅ ↔ ∀ s ∈ S, s = ∅ :=
912912
sSup_eq_bot
913913

914914
@[simp]
@@ -939,54 +939,62 @@ theorem sUnion_mem_empty_univ {S : Set (Set α)} (h : S ⊆ {∅, univ}) :
939939
exact univ_subset_iff.1 <| subset_sUnion_of_mem hs
940940

941941
@[simp]
942-
theorem nonempty_sUnion {S : Set (Set α)} : (⋃₀S).Nonempty ↔ ∃ s ∈ S, Set.Nonempty s := by
942+
theorem nonempty_sUnion {S : Set (Set α)} : (⋃₀ S).Nonempty ↔ ∃ s ∈ S, Set.Nonempty s := by
943943
simp [nonempty_iff_ne_empty]
944944

945-
theorem Nonempty.of_sUnion {s : Set (Set α)} (h : (⋃₀s).Nonempty) : s.Nonempty :=
945+
theorem Nonempty.of_sUnion {s : Set (Set α)} (h : (⋃₀ s).Nonempty) : s.Nonempty :=
946946
let ⟨s, hs, _⟩ := nonempty_sUnion.1 h
947947
⟨s, hs⟩
948948

949-
theorem Nonempty.of_sUnion_eq_univ [Nonempty α] {s : Set (Set α)} (h : ⋃₀s = univ) : s.Nonempty :=
949+
theorem Nonempty.of_sUnion_eq_univ [Nonempty α] {s : Set (Set α)} (h : ⋃₀ s = univ) : s.Nonempty :=
950950
Nonempty.of_sUnion <| h.symm ▸ univ_nonempty
951951

952-
theorem sUnion_union (S T : Set (Set α)) : ⋃₀(S ∪ T) = ⋃₀S ∪ ⋃₀T :=
952+
theorem sUnion_union (S T : Set (Set α)) : ⋃₀ (S ∪ T) = ⋃₀ S ∪ ⋃₀ T :=
953953
sSup_union
954954

955955
theorem sInter_union (S T : Set (Set α)) : ⋂₀ (S ∪ T) = ⋂₀ S ∩ ⋂₀ T :=
956956
sInf_union
957957

958958
@[simp]
959-
theorem sUnion_insert (s : Set α) (T : Set (Set α)) : ⋃₀insert s T = s ∪ ⋃₀T :=
959+
theorem sUnion_insert (s : Set α) (T : Set (Set α)) : ⋃₀ insert s T = s ∪ ⋃₀ T :=
960960
sSup_insert
961961

962962
@[simp]
963963
theorem sInter_insert (s : Set α) (T : Set (Set α)) : ⋂₀ insert s T = s ∩ ⋂₀ T :=
964964
sInf_insert
965965

966966
@[simp]
967-
theorem sUnion_diff_singleton_empty (s : Set (Set α)) : ⋃₀(s \ {∅}) = ⋃₀s :=
967+
theorem sUnion_diff_singleton_empty (s : Set (Set α)) : ⋃₀ (s \ {∅}) = ⋃₀ s :=
968968
sSup_diff_singleton_bot s
969969

970970
@[simp]
971971
theorem sInter_diff_singleton_univ (s : Set (Set α)) : ⋂₀ (s \ {univ}) = ⋂₀ s :=
972972
sInf_diff_singleton_top s
973973

974-
theorem sUnion_pair (s t : Set α) : ⋃₀{s, t} = s ∪ t :=
974+
theorem sUnion_pair (s t : Set α) : ⋃₀ {s, t} = s ∪ t :=
975975
sSup_pair
976976

977977
theorem sInter_pair (s t : Set α) : ⋂₀ {s, t} = s ∩ t :=
978978
sInf_pair
979979

980980
@[simp]
981-
theorem sUnion_image (f : α → Set β) (s : Set α) : ⋃₀(f '' s) = ⋃ x ∈ s, f x :=
981+
theorem sUnion_image (f : α → Set β) (s : Set α) : ⋃₀ (f '' s) = ⋃ a ∈ s, f a :=
982982
sSup_image
983983

984984
@[simp]
985-
theorem sInter_image (f : α → Set β) (s : Set α) : ⋂₀ (f '' s) = ⋂ x ∈ s, f x :=
985+
theorem sInter_image (f : α → Set β) (s : Set α) : ⋂₀ (f '' s) = ⋂ a ∈ s, f a :=
986986
sInf_image
987987

988988
@[simp]
989-
theorem sUnion_range (f : ι → Set β) : ⋃₀range f = ⋃ x, f x :=
989+
lemma sUnion_image2 (f : α → β → Set γ) (s : Set α) (t : Set β) :
990+
⋃₀ (image2 f s t) = ⋃ (a ∈ s) (b ∈ t), f a b := sSup_image2
991+
992+
@[simp]
993+
lemma sInter_image2 (f : α → β → Set γ) (s : Set α) (t : Set β) :
994+
⋂₀ (image2 f s t) = ⋂ (a ∈ s) (b ∈ t), f a b := sInf_image2
995+
996+
@[simp]
997+
theorem sUnion_range (f : ι → Set β) : ⋃₀ range f = ⋃ x, f x :=
990998
rfl
991999

9921000
@[simp]
@@ -1001,7 +1009,7 @@ theorem iUnion₂_eq_univ_iff {s : ∀ i, κ i → Set α} :
10011009
⋃ (i) (j), s i j = univ ↔ ∀ a, ∃ i j, a ∈ s i j := by
10021010
simp only [iUnion_eq_univ_iff, mem_iUnion]
10031011

1004-
theorem sUnion_eq_univ_iff {c : Set (Set α)} : ⋃₀c = univ ↔ ∀ a, ∃ b ∈ c, a ∈ b := by
1012+
theorem sUnion_eq_univ_iff {c : Set (Set α)} : ⋃₀ c = univ ↔ ∀ a, ∃ b ∈ c, a ∈ b := by
10051013
simp only [eq_univ_iff_forall, mem_sUnion]
10061014

10071015
-- classical
@@ -1035,23 +1043,23 @@ theorem nonempty_sInter {c : Set (Set α)} : (⋂₀ c).Nonempty ↔ ∃ a, ∀
10351043
simp [nonempty_iff_ne_empty, sInter_eq_empty_iff]
10361044

10371045
-- classical
1038-
theorem compl_sUnion (S : Set (Set α)) : (⋃₀S)ᶜ = ⋂₀ (compl '' S) :=
1046+
theorem compl_sUnion (S : Set (Set α)) : (⋃₀ S)ᶜ = ⋂₀ (compl '' S) :=
10391047
ext fun x => by simp
10401048

10411049
-- classical
1042-
theorem sUnion_eq_compl_sInter_compl (S : Set (Set α)) : ⋃₀S = (⋂₀ (compl '' S))ᶜ := by
1043-
rw [← compl_compl (⋃₀S), compl_sUnion]
1050+
theorem sUnion_eq_compl_sInter_compl (S : Set (Set α)) : ⋃₀ S = (⋂₀ (compl '' S))ᶜ := by
1051+
rw [← compl_compl (⋃₀ S), compl_sUnion]
10441052

10451053
-- classical
1046-
theorem compl_sInter (S : Set (Set α)) : (⋂₀ S)ᶜ = ⋃₀(compl '' S) := by
1054+
theorem compl_sInter (S : Set (Set α)) : (⋂₀ S)ᶜ = ⋃₀ (compl '' S) := by
10471055
rw [sUnion_eq_compl_sInter_compl, compl_compl_image]
10481056

10491057
-- classical
1050-
theorem sInter_eq_compl_sUnion_compl (S : Set (Set α)) : ⋂₀ S = (⋃₀(compl '' S))ᶜ := by
1058+
theorem sInter_eq_compl_sUnion_compl (S : Set (Set α)) : ⋂₀ S = (⋃₀ (compl '' S))ᶜ := by
10511059
rw [← compl_compl (⋂₀ S), compl_sInter]
10521060

10531061
theorem inter_empty_of_inter_sUnion_empty {s t : Set α} {S : Set (Set α)} (hs : t ∈ S)
1054-
(h : s ∩ ⋃₀S = ∅) : s ∩ t = ∅ :=
1062+
(h : s ∩ ⋃₀ S = ∅) : s ∩ t = ∅ :=
10551063
eq_empty_of_subset_empty <| by
10561064
rw [← h]; exact inter_subset_inter_right _ (subset_sUnion_of_mem hs)
10571065

@@ -1096,13 +1104,13 @@ theorem iUnion_of_singleton (α : Type*) : (⋃ x, {x} : Set α) = univ := by si
10961104

10971105
theorem iUnion_of_singleton_coe (s : Set α) : ⋃ i : s, ({(i : α)} : Set α) = s := by simp
10981106

1099-
theorem sUnion_eq_biUnion {s : Set (Set α)} : ⋃₀s = ⋃ (i : Set α) (_ : i ∈ s), i := by
1107+
theorem sUnion_eq_biUnion {s : Set (Set α)} : ⋃₀ s = ⋃ (i : Set α) (_ : i ∈ s), i := by
11001108
rw [← sUnion_image, image_id']
11011109

11021110
theorem sInter_eq_biInter {s : Set (Set α)} : ⋂₀ s = ⋂ (i : Set α) (_ : i ∈ s), i := by
11031111
rw [← sInter_image, image_id']
11041112

1105-
theorem sUnion_eq_iUnion {s : Set (Set α)} : ⋃₀s = ⋃ i : s, i := by
1113+
theorem sUnion_eq_iUnion {s : Set (Set α)} : ⋃₀ s = ⋃ i : s, i := by
11061114
simp only [← sUnion_range, Subtype.range_coe]
11071115

11081116
theorem sInter_eq_iInter {s : Set (Set α)} : ⋂₀ s = ⋂ i : s, i := by
@@ -1127,7 +1135,7 @@ theorem sInter_union_sInter {S T : Set (Set α)} :
11271135
sInf_sup_sInf
11281136

11291137
theorem sUnion_inter_sUnion {s t : Set (Set α)} :
1130-
⋃₀s ∩ ⋃₀t = ⋃ p ∈ s ×ˢ t, (p : Set α × Set α).1 ∩ p.2 :=
1138+
⋃₀ s ∩ ⋃₀ t = ⋃ p ∈ s ×ˢ t, (p : Set α × Set α).1 ∩ p.2 :=
11311139
sSup_inf_sSup
11321140

11331141
theorem biUnion_iUnion (s : ι → Set α) (t : α → Set β) :
@@ -1136,14 +1144,14 @@ theorem biUnion_iUnion (s : ι → Set α) (t : α → Set β) :
11361144
theorem biInter_iUnion (s : ι → Set α) (t : α → Set β) :
11371145
⋂ x ∈ ⋃ i, s i, t x = ⋂ (i) (x ∈ s i), t x := by simp [@iInter_comm _ ι]
11381146

1139-
theorem sUnion_iUnion (s : ι → Set (Set α)) : ⋃₀⋃ i, s i = ⋃ i, ⋃₀s i := by
1147+
theorem sUnion_iUnion (s : ι → Set (Set α)) : ⋃₀ ⋃ i, s i = ⋃ i, ⋃₀ s i := by
11401148
simp only [sUnion_eq_biUnion, biUnion_iUnion]
11411149

11421150
theorem sInter_iUnion (s : ι → Set (Set α)) : ⋂₀ ⋃ i, s i = ⋂ i, ⋂₀ s i := by
11431151
simp only [sInter_eq_biInter, biInter_iUnion]
11441152

11451153
theorem iUnion_range_eq_sUnion {α β : Type*} (C : Set (Set α)) {f : ∀ s : C, β → (s : Type _)}
1146-
(hf : ∀ s : C, Surjective (f s)) : ⋃ y : β, range (fun s : C => (f s y).val) = ⋃₀C := by
1154+
(hf : ∀ s : C, Surjective (f s)) : ⋃ y : β, range (fun s : C => (f s y).val) = ⋃₀ C := by
11471155
ext x; constructor
11481156
· rintro ⟨s, ⟨y, rfl⟩, ⟨s, hs⟩, rfl⟩
11491157
refine ⟨_, hs, ?_⟩
@@ -1364,7 +1372,7 @@ theorem inj_on_iUnion_of_directed {s : ι → Set α} (hs : Directed (· ⊆ ·)
13641372

13651373

13661374
theorem surjOn_sUnion {s : Set α} {T : Set (Set β)} {f : α → β} (H : ∀ t ∈ T, SurjOn f s t) :
1367-
SurjOn f s (⋃₀T) := fun _ ⟨t, ht, hx⟩ => H t ht hx
1375+
SurjOn f s (⋃₀ T) := fun _ ⟨t, ht, hx⟩ => H t ht hx
13681376

13691377
theorem surjOn_iUnion {s : Set α} {t : ι → Set β} {f : α → β} (H : ∀ i, SurjOn f s (t i)) :
13701378
SurjOn f s (⋃ i, t i) :=
@@ -1467,6 +1475,28 @@ theorem biUnion_image : ⋃ x ∈ f '' s, g x = ⋃ y ∈ s, g (f y) :=
14671475
theorem biInter_image : ⋂ x ∈ f '' s, g x = ⋂ y ∈ s, g (f y) :=
14681476
iInf_image
14691477

1478+
lemma biUnion_image2 (s : Set α) (t : Set β) (f : α → β → γ) (g : γ → Set δ) :
1479+
⋃ c ∈ image2 f s t, g c = ⋃ a ∈ s, ⋃ b ∈ t, g (f a b) := iSup_image2 ..
1480+
1481+
lemma biInter_image2 (s : Set α) (t : Set β) (f : α → β → γ) (g : γ → Set δ) :
1482+
⋂ c ∈ image2 f s t, g c = ⋂ a ∈ s, ⋂ b ∈ t, g (f a b) := iInf_image2 ..
1483+
1484+
lemma iUnion_inter_iUnion {ι κ : Sort*} (f : ι → Set α) (g : κ → Set α) :
1485+
(⋃ i, f i) ∩ ⋃ j, g j = ⋃ i, ⋃ j, f i ∩ g j := by simp_rw [iUnion_inter, inter_iUnion]
1486+
1487+
lemma iInter_union_iInter {ι κ : Sort*} (f : ι → Set α) (g : κ → Set α) :
1488+
(⋂ i, f i) ∪ ⋂ j, g j = ⋂ i, ⋂ j, f i ∪ g j := by simp_rw [iInter_union, union_iInter]
1489+
1490+
lemma iUnion₂_inter_iUnion₂ {ι₁ κ₁ : Sort*} {ι₂ : ι₁ → Sort*} {k₂ : κ₁ → Sort*}
1491+
(f : ∀ i₁, ι₂ i₁ → Set α) (g : ∀ j₁, k₂ j₁ → Set α) :
1492+
(⋃ i₁, ⋃ i₂, f i₁ i₂) ∩ ⋃ j₁, ⋃ j₂, g j₁ j₂ = ⋃ i₁, ⋃ i₂, ⋃ j₁, ⋃ j₂, f i₁ i₂ ∩ g j₁ j₂ := by
1493+
simp_rw [iUnion_inter, inter_iUnion]
1494+
1495+
lemma iInter₂_union_iInter₂ {ι₁ κ₁ : Sort*} {ι₂ : ι₁ → Sort*} {k₂ : κ₁ → Sort*}
1496+
(f : ∀ i₁, ι₂ i₁ → Set α) (g : ∀ j₁, k₂ j₁ → Set α) :
1497+
(⋂ i₁, ⋂ i₂, f i₁ i₂) ∪ ⋂ j₁, ⋂ j₂, g j₁ j₂ = ⋂ i₁, ⋂ i₂, ⋂ j₁, ⋂ j₂, f i₁ i₂ ∪ g j₁ j₂ := by
1498+
simp_rw [iInter_union, union_iInter]
1499+
14701500
end Image
14711501

14721502
section Preimage
@@ -1492,7 +1522,7 @@ theorem image_sUnion {f : α → β} {s : Set (Set α)} : (f '' ⋃₀ s) = ⋃
14921522
exact ⟨a, ⟨t, ht₁, ht₂⟩, rfl⟩
14931523

14941524
@[simp]
1495-
theorem preimage_sUnion {f : α → β} {s : Set (Set β)} : f ⁻¹' ⋃₀s = ⋃ t ∈ s, f ⁻¹' t := by
1525+
theorem preimage_sUnion {f : α → β} {s : Set (Set β)} : f ⁻¹' ⋃₀ s = ⋃ t ∈ s, f ⁻¹' t := by
14961526
rw [sUnion_eq_biUnion, preimage_iUnion₂]
14971527

14981528
theorem preimage_iInter {f : α → β} {s : ι → Set β} : (f ⁻¹' ⋂ i, s i) = ⋂ i, f ⁻¹' s i := by
@@ -1527,7 +1557,7 @@ theorem prod_iUnion {s : Set α} {t : ι → Set β} : (s ×ˢ ⋃ i, t i) = ⋃
15271557
theorem prod_iUnion₂ {s : Set α} {t : ∀ i, κ i → Set β} :
15281558
(s ×ˢ ⋃ (i) (j), t i j) = ⋃ (i) (j), s ×ˢ t i j := by simp_rw [prod_iUnion]
15291559

1530-
theorem prod_sUnion {s : Set α} {C : Set (Set β)} : s ×ˢ ⋃₀C = ⋃₀((fun t => s ×ˢ t) '' C) := by
1560+
theorem prod_sUnion {s : Set α} {C : Set (Set β)} : s ×ˢ ⋃₀ C = ⋃₀ ((fun t => s ×ˢ t) '' C) := by
15311561
simp_rw [sUnion_eq_biUnion, biUnion_image, prod_iUnion₂]
15321562

15331563
theorem iUnion_prod_const {s : ι → Set α} {t : Set β} : (⋃ i, s i) ×ˢ t = ⋃ i, s i ×ˢ t := by
@@ -1540,7 +1570,7 @@ theorem iUnion₂_prod_const {s : ∀ i, κ i → Set α} {t : Set β} :
15401570
(⋃ (i) (j), s i j) ×ˢ t = ⋃ (i) (j), s i j ×ˢ t := by simp_rw [iUnion_prod_const]
15411571

15421572
theorem sUnion_prod_const {C : Set (Set α)} {t : Set β} :
1543-
⋃₀C ×ˢ t = ⋃₀((fun s : Set α => s ×ˢ t) '' C) := by
1573+
⋃₀ C ×ˢ t = ⋃₀ ((fun s : Set α => s ×ˢ t) '' C) := by
15441574
simp only [sUnion_eq_biUnion, iUnion₂_prod_const, biUnion_image]
15451575

15461576
theorem iUnion_prod {ι ι' α β} (s : ι → Set α) (t : ι' → Set β) :
@@ -1807,12 +1837,12 @@ theorem disjoint_iUnion₂_right {s : Set α} {t : ∀ i, κ i → Set α} :
18071837

18081838
@[simp]
18091839
theorem disjoint_sUnion_left {S : Set (Set α)} {t : Set α} :
1810-
Disjoint (⋃₀S) t ↔ ∀ s ∈ S, Disjoint s t :=
1840+
Disjoint (⋃₀ S) t ↔ ∀ s ∈ S, Disjoint s t :=
18111841
sSup_disjoint_iff
18121842

18131843
@[simp]
18141844
theorem disjoint_sUnion_right {s : Set α} {S : Set (Set α)} :
1815-
Disjoint s (⋃₀S) ↔ ∀ t ∈ S, Disjoint s t :=
1845+
Disjoint s (⋃₀ S) ↔ ∀ t ∈ S, Disjoint s t :=
18161846
disjoint_sSup_iff
18171847

18181848
lemma biUnion_compl_eq_of_pairwise_disjoint_of_iUnion_eq_univ {ι : Type*} {Es : ι → Set α}

0 commit comments

Comments
 (0)