diff --git a/theories/fin_maps.v b/theories/fin_maps.v
index 4aecf8d16f0d353b8235d7bf7e59f2bac95a0a36..09c65cdad1dafa8551775965b2daa890b07266d9 100644
--- a/theories/fin_maps.v
+++ b/theories/fin_maps.v
@@ -337,6 +337,9 @@ Proof.
       rewrite ?lookup_delete, ?lookup_delete_ne; intuition congruence.
   * intros [??]. by rewrite lookup_delete_ne.
 Qed.
+Lemma lookup_delete_is_Some {A} (m : M A) i j :
+  is_Some (delete i m !! j) ↔ i ≠ j ∧ is_Some (m !! j).
+Proof. unfold is_Some; setoid_rewrite lookup_delete_Some; naive_solver. Qed.
 Lemma lookup_delete_None {A} (m : M A) i j :
   delete i m !! j = None ↔ i = j ∨ m !! j = None.
 Proof.
@@ -411,6 +414,9 @@ Proof.
       rewrite ?lookup_insert, ?lookup_insert_ne; intuition congruence.
   * intros [[-> ->]|[??]]; [apply lookup_insert|]. by rewrite lookup_insert_ne.
 Qed.
+Lemma lookup_insert_is_Some {A} (m : M A) i j x :
+  is_Some (<[i:=x]>m !! j) ↔ i = j ∨ i ≠ j ∧ is_Some (m !! j).
+Proof. unfold is_Some; setoid_rewrite lookup_insert_Some; naive_solver. Qed.
 Lemma lookup_insert_None {A} (m : M A) i j x :
   <[i:=x]>m !! j = None ↔ m !! j = None ∧ i ≠ j.
 Proof.