From 4a5056daa84bd3964edf911656fac06d96df4672 Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Sun, 20 Nov 2016 16:34:12 +0100 Subject: [PATCH] Prove to_gmap y (dom _ m) = const y <$> m. --- theories/gmap.v | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/theories/gmap.v b/theories/gmap.v index 4f0b0dce..ce1d75bf 100644 --- a/theories/gmap.v +++ b/theories/gmap.v @@ -159,6 +159,15 @@ Proof. elem_of_singleton; destruct (decide (i = j)); intuition. Qed. +Lemma to_gmap_dom `{Countable K} {A B} (m : gmap K A) (y : B) : + to_gmap y (dom _ m) = const y <$> m. +Proof. + apply map_eq; intros j. rewrite lookup_fmap, lookup_to_gmap. + destruct (m !! j) as [x|] eqn:?. + - by rewrite option_guard_True by (rewrite elem_of_dom; eauto). + - by rewrite option_guard_False by (rewrite not_elem_of_dom; eauto). +Qed. + (** * Fresh elements *) (* This is pretty ad-hoc and just for the case of [gset positive]. We need a notion of countable non-finite types to generalize this. *) -- GitLab