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

Commit 5491c59

Browse files
committed
feat(data/fintype/basic): add lemmas about finsets and cardinality (#5886)
Add lemmas about finsets and cardinality. Part of #5695 in order to prove Hall's marriage theorem. Coauthors: @kmill @b-mehta
1 parent 7f25aa7 commit 5491c59

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/data/fintype/basic.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ set.ext $ λ x, mem_compl
7979
theorem eq_univ_iff_forall {s : finset α} : s = univ ↔ ∀ x, x ∈ s :=
8080
by simp [ext_iff]
8181

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+
8285
@[simp] lemma univ_inter [decidable_eq α] (s : finset α) :
8386
univ ∩ s = s := ext $ λ a, by simp
8487

@@ -306,10 +309,22 @@ lemma finset.eq_univ_of_card [fintype α] (s : finset α) (hs : s.card = fintype
306309
s = univ :=
307310
eq_of_subset_of_card_le (subset_univ _) $ by rw [hs, finset.card_univ]
308311

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+
309316
lemma finset.card_le_univ [fintype α] (s : finset α) :
310317
s.card ≤ fintype.card α :=
311318
card_le_of_subset (subset_univ s)
312319

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+
313328
lemma finset.card_univ_diff [decidable_eq α] [fintype α] (s : finset α) :
314329
(finset.univ \ s).card = fintype.card α - s.card :=
315330
finset.card_sdiff (subset_univ s)

0 commit comments

Comments
 (0)