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

Commit a5573f3

Browse files
committed
feat(data/{fin,multi}set/powerset): add some lemmas about powerset_len (#10866)
For both multisets and finsets From flt-regular
1 parent 78a9900 commit a5573f3

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/data/finset/powerset.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,5 +241,14 @@ begin
241241
{ rwa [card_erase_of_mem hx, nat.lt_pred_iff] } } }
242242
end
243243

244+
@[simp]
245+
lemma powerset_len_card_add (s : finset α) {i : ℕ} (hi : 0 < i) :
246+
s.powerset_len (s.card + i) = ∅ :=
247+
finset.powerset_len_empty _ (lt_add_of_pos_right (finset.card s) hi)
248+
249+
@[simp] theorem map_val_val_powerset_len (s : finset α) (i : ℕ) :
250+
(s.powerset_len i).val.map finset.val = s.1.powerset_len i :=
251+
by simp [finset.powerset_len, map_pmap, pmap_eq_map, map_id']
252+
244253
end powerset_len
245254
end finset

src/data/multiset/powerset.lean

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ congr_arg coe powerset_len_aux_eq_map_coe
210210
powerset_len 0 s = {0} :=
211211
quotient.induction_on s $ λ l, by simp [powerset_len_coe']; refl
212212

213-
@[simp] theorem powerset_len_zero_right (n : ℕ) :
213+
theorem powerset_len_zero_right (n : ℕ) :
214214
@powerset_len α (n + 1) 0 = 0 := rfl
215215

216216
@[simp] theorem powerset_len_cons (n : ℕ) (a : α) (s) :
@@ -236,4 +236,21 @@ theorem powerset_len_mono (n : ℕ) {s t : multiset α} (h : s ≤ t) :
236236
le_induction_on h $ λ l₁ l₂ h, by simp [powerset_len_coe]; exact
237237
((sublists_len_sublist_of_sublist _ h).map _).subperm
238238

239+
@[simp] theorem powerset_len_empty {α : Type*} (n : ℕ) {s : multiset α} (h : s.card < n) :
240+
powerset_len n s = 0 :=
241+
card_eq_zero.mp (nat.choose_eq_zero_of_lt h ▸ card_powerset_len _ _)
242+
243+
@[simp]
244+
lemma powerset_len_card_add (s : multiset α) {i : ℕ} (hi : 0 < i) :
245+
s.powerset_len (s.card + i) = 0 :=
246+
powerset_len_empty _ (lt_add_of_pos_right (card s) hi)
247+
248+
theorem powerset_len_map {β : Type*} (f : α → β) (n : ℕ) (s : multiset α) :
249+
powerset_len n (s.map f) = (powerset_len n s).map (map f) :=
250+
begin
251+
induction s using multiset.induction with t s ih generalizing n,
252+
{ cases n; simp [powerset_len_zero_left, powerset_len_zero_right], },
253+
{ cases n; simp [ih], },
254+
end
255+
239256
end multiset

0 commit comments

Comments
 (0)