@@ -79,6 +79,9 @@ set.ext $ λ x, mem_compl
79
79
theorem eq_univ_iff_forall {s : finset α} : s = univ ↔ ∀ x, x ∈ s :=
80
80
by simp [ext_iff]
81
81
82
+ lemma compl_ne_univ_iff_nonempty [decidable_eq α] (s : finset α) : sᶜ ≠ univ ↔ s.nonempty :=
83
+ by simp [eq_univ_iff_forall, finset.nonempty]
84
+
82
85
@[simp] lemma univ_inter [decidable_eq α] (s : finset α) :
83
86
univ ∩ s = s := ext $ λ a, by simp
84
87
@@ -306,10 +309,22 @@ lemma finset.eq_univ_of_card [fintype α] (s : finset α) (hs : s.card = fintype
306
309
s = univ :=
307
310
eq_of_subset_of_card_le (subset_univ _) $ by rw [hs, finset.card_univ]
308
311
312
+ lemma finset.card_eq_iff_eq_univ [fintype α] (s : finset α) :
313
+ s.card = fintype.card α ↔ s = finset.univ :=
314
+ ⟨s.eq_univ_of_card, by { rintro rfl, exact finset.card_univ, }⟩
315
+
309
316
lemma finset.card_le_univ [fintype α] (s : finset α) :
310
317
s.card ≤ fintype.card α :=
311
318
card_le_of_subset (subset_univ s)
312
319
320
+ lemma finset.card_lt_iff_ne_univ [fintype α] (s : finset α) :
321
+ s.card < fintype.card α ↔ s ≠ finset.univ :=
322
+ s.card_le_univ.lt_iff_ne.trans (not_iff_not_of_iff s.card_eq_iff_eq_univ)
323
+
324
+ lemma finset.card_compl_lt_iff_nonempty [fintype α] [decidable_eq α] (s : finset α) :
325
+ sᶜ.card < fintype.card α ↔ s.nonempty :=
326
+ sᶜ.card_lt_iff_ne_univ.trans s.compl_ne_univ_iff_nonempty
327
+
313
328
lemma finset.card_univ_diff [decidable_eq α] [fintype α] (s : finset α) :
314
329
(finset.univ \ s).card = fintype.card α - s.card :=
315
330
finset.card_sdiff (subset_univ s)
0 commit comments