Skip to content
Snippets Groups Projects
Commit e80f1433 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Add lemma `omap_insert_None`.

parent 8b054d9f
No related branches found
No related tags found
No related merge requests found
...@@ -677,6 +677,14 @@ Proof. ...@@ -677,6 +677,14 @@ Proof.
- by rewrite lookup_omap, !lookup_insert. - by rewrite lookup_omap, !lookup_insert.
- by rewrite lookup_omap, !lookup_insert_ne, lookup_omap by done. - by rewrite lookup_omap, !lookup_insert_ne, lookup_omap by done.
Qed. Qed.
Lemma omap_insert_None {A B} (f : A option B) m i x :
f x = None omap f (<[i:=x]>m) = delete i (omap f m).
Proof.
intros; apply map_eq; intros i'; destruct (decide (i' = i)) as [->|].
- by rewrite lookup_omap, lookup_insert, lookup_delete.
- by rewrite lookup_omap, lookup_insert_ne,
lookup_delete_ne, lookup_omap by done.
Qed.
Lemma map_fmap_singleton {A B} (f : A B) i x : f <$> {[i := x]} = {[i := f x]}. Lemma map_fmap_singleton {A B} (f : A B) i x : f <$> {[i := x]} = {[i := f x]}.
Proof. Proof.
by unfold singletonM, map_singleton; rewrite fmap_insert, map_fmap_empty. by unfold singletonM, map_singleton; rewrite fmap_insert, map_fmap_empty.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment