diff --git a/theories/gmultiset.v b/theories/gmultiset.v index f6a8a17158c3358a25b78bd5ab55e594ae247785..730e3061f92ef27f2f53ee0e559811c5cc7301f1 100644 --- a/theories/gmultiset.v +++ b/theories/gmultiset.v @@ -397,6 +397,9 @@ Section more_lemmas. Lemma list_to_set_disj_app l1 l2 : list_to_set_disj (l1 ++ l2) =@{gmultiset A} list_to_set_disj l1 ⊎ list_to_set_disj l2. Proof. induction l1; multiset_solver. Qed. + Lemma elem_of_list_to_set_disj x l : + x ∈@{gmultiset A} list_to_set_disj l ↔ x ∈ l. + Proof. induction l; set_solver. Qed. Global Instance list_to_set_disj_perm : Proper ((≡ₚ) ==> (=)) (list_to_set_disj (C:=gmultiset A)). Proof. induction 1; multiset_solver. Qed. @@ -603,6 +606,12 @@ Section more_lemmas. Lemma gmultiset_difference_subset X Y : X ≠∅ → X ⊆ Y → Y ∖ X ⊂ Y. Proof. multiset_solver. Qed. + Lemma gmultiset_difference_disj_union_r X Y Z : X ∖ Y = (X ⊎ Z) ∖ (Y ⊎ Z). + Proof. multiset_solver. Qed. + + Lemma gmultiset_difference_disj_union_l X Y Z : X ∖ Y = (Z ⊎ X) ∖ (Z ⊎ Y). + Proof. multiset_solver. Qed. + (** Mononicity *) Lemma gmultiset_elements_submseteq X Y : X ⊆ Y → elements X ⊆+ elements Y. Proof.