@@ -210,7 +210,7 @@ congr_arg coe powerset_len_aux_eq_map_coe
210
210
powerset_len 0 s = {0 } :=
211
211
quotient.induction_on s $ λ l, by simp [powerset_len_coe']; refl
212
212
213
- @[simp] theorem powerset_len_zero_right (n : ℕ) :
213
+ theorem powerset_len_zero_right (n : ℕ) :
214
214
@powerset_len α (n + 1 ) 0 = 0 := rfl
215
215
216
216
@[simp] theorem powerset_len_cons (n : ℕ) (a : α) (s) :
@@ -236,4 +236,21 @@ theorem powerset_len_mono (n : ℕ) {s t : multiset α} (h : s ≤ t) :
236
236
le_induction_on h $ λ l₁ l₂ h, by simp [powerset_len_coe]; exact
237
237
((sublists_len_sublist_of_sublist _ h).map _).subperm
238
238
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
+
239
256
end multiset
0 commit comments