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

Commit b9ead4d

Browse files
committed
feat(data/finset): add disjoint_bind_left/right
1 parent f82f5f2 commit b9ead4d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/data/finset.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1585,6 +1585,21 @@ by simp only [disjoint_right, mem_union, or_imp_distrib, forall_and_distrib]
15851585
lemma disjoint_sdiff {s t : finset α} : disjoint (t \ s) s :=
15861586
disjoint_left.2 $ assume a ha, (mem_sdiff.1 ha).2
15871587

1588+
lemma disjoint_bind_left {ι : Type*} [decidable_eq ι]
1589+
(s : finset ι) (f : ι → finset α) (t : finset α) :
1590+
disjoint (s.bind f) t ↔ (∀i∈s, disjoint (f i) t) :=
1591+
begin
1592+
refine s.induction _ _,
1593+
{ simp only [forall_mem_empty_iff, bind_empty, disjoint_empty_left] },
1594+
{ assume i s his ih,
1595+
simp only [disjoint_union_left, bind_insert, his, forall_mem_insert, ih] }
1596+
end
1597+
1598+
lemma disjoint_bind_right {ι : Type*} [decidable_eq ι]
1599+
(s : finset α) (t : finset ι) (f : ι → finset α) :
1600+
disjoint s (t.bind f) ↔ (∀i∈t, disjoint s (f i)) :=
1601+
by simpa only [disjoint.comm] using disjoint_bind_left t f s
1602+
15881603
@[simp] theorem card_disjoint_union {s t : finset α} :
15891604
disjoint s t → card (s ∪ t) = card s + card t :=
15901605
finset.induction_on s (λ _, by simp only [empty_union, card_empty, zero_add]) $ λ a s ha ih H,

0 commit comments

Comments
 (0)