Skip to content
Snippets Groups Projects

show a Proper instance for dom

Merged Ralf Jung requested to merge ralf/proper-dom into master
All threads resolved!
+ 11
0
@@ -119,6 +119,17 @@ Proof.
@@ -119,6 +119,17 @@ Proof.
eauto using (empty_finite (C:=D)), (union_finite (C:=D)),
eauto using (empty_finite (C:=D)), (union_finite (C:=D)),
(singleton_finite (C:=D)).
(singleton_finite (C:=D)).
Qed.
Qed.
 
Global Instance dom_proper `{!Equiv A} : Proper ((≡@{M A}) ==> ()) (dom D).
 
Proof.
 
intros m1 m2 EQm. apply elem_of_equiv. intros i.
 
rewrite !elem_of_dom, EQm. done.
 
Qed.
 
(** If [D] is leibniz, we can show an even stronger result. This is a common
 
case e.g. when having a [gmap K A] where the key [K] has leibniz equality but
 
the domain [A] does not. *)
 
Global Instance dom_proper_L `{!Equiv A, !LeibnizEquiv D} :
 
Proper ((≡@{M A}) ==> (=)) (dom D) | 0.
 
Proof. intros ???. unfold_leibniz. by apply dom_proper. Qed.
Context `{!LeibnizEquiv D}.
Context `{!LeibnizEquiv D}.
Lemma dom_empty_L {A} : dom D (@empty (M A) _) = ∅.
Lemma dom_empty_L {A} : dom D (@empty (M A) _) = ∅.
Loading