From 72a7ac7b642193e562ee61fbced04682ecf97f13 Mon Sep 17 00:00:00 2001 From: Ralf Jung <jung@mpi-sws.org> Date: Sun, 14 Mar 2021 14:18:57 +0100 Subject: [PATCH] add map_difference_delete_insert --- theories/fin_maps.v | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/theories/fin_maps.v b/theories/fin_maps.v index bab9041d..ec1f3abf 100644 --- a/theories/fin_maps.v +++ b/theories/fin_maps.v @@ -2390,6 +2390,16 @@ Qed. Global Instance map_difference_right_id {A} : RightId (=) (∅:M A) (∖) := _. Lemma map_difference_empty {A} (m : M A) : m ∖ ∅ = m. Proof. by rewrite (right_id _ _). Qed. +Lemma map_difference_delete_insert {A} (m m0 : M A) k v : + delete k (m ∖ m0) = m ∖ <[k:=v]> m0. +Proof. + apply map_eq. intros i. apply option_eq. intros x. + rewrite lookup_delete_Some. rewrite !lookup_difference_Some. split. + - intros (Hne & Hm & Hm0). rewrite lookup_insert_ne by done. done. + - destruct (decide (k = i)) as [->|Hne]. + + rewrite lookup_insert. naive_solver. + + rewrite lookup_insert_ne by done. done. +Qed. End theorems. (** ** The seq operation *) -- GitLab