diff --git a/theories/fin_sets.v b/theories/fin_sets.v index 9f3180ba6384504292c3b69c9168ac424b6cac86..2cb8a475ccd23bfc5ee1104ec194b785a7586a9c 100644 --- a/theories/fin_sets.v +++ b/theories/fin_sets.v @@ -342,6 +342,20 @@ Section map. Lemma elem_of_map_2_alt (f : A → B) (X : C) (x : A) (y : B) : x ∈ X → y = f x → y ∈ set_map (D:=D) f X. Proof. set_solver. Qed. + + Lemma set_map_union (f : A → B) (X Y : C) : + set_map (D:=D) f (X ∪ Y) ≡ set_map (D:=D) f X ∪ set_map (D:=D) f Y. + Proof. set_solver. Qed. + Lemma set_map_singleton (f : A → B) (x : A) : + set_map (C:=C) (D:=D) f {[x]} ≡ {[f x]}. + Proof. set_solver. Qed. + + Lemma set_map_union_L `{!LeibnizEquiv D} (f : A → B) (X Y : C) : + set_map (D:=D) f (X ∪ Y) = set_map (D:=D) f X ∪ set_map (D:=D) f Y. + Proof. unfold_leibniz. apply set_map_union. Qed. + Lemma set_map_singleton_L `{!LeibnizEquiv D} (f : A → B) (x : A) : + set_map (C:=C) (D:=D) f {[x]} = {[f x]}. + Proof. unfold_leibniz. apply set_map_singleton. Qed. End map. (** * Decision procedures *)