From c53cefcd99018ab27d3f16156d0f4e3828995b23 Mon Sep 17 00:00:00 2001
From: Robbert Krebbers <mail@robbertkrebbers.nl>
Date: Fri, 27 Oct 2017 16:59:04 +0200
Subject: [PATCH] Simplify `gmap_uncurry_non_empty` as suggested by JH in !9.

---
 theories/gmap.v | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/theories/gmap.v b/theories/gmap.v
index bda9e138..f64b294c 100644
--- a/theories/gmap.v
+++ b/theories/gmap.v
@@ -190,11 +190,9 @@ Section curry_uncurry.
   Lemma gmap_uncurry_non_empty (m : gmap (K1 * K2) A) i x :
     gmap_uncurry m !! i = Some x → x ≠ ∅.
   Proof.
-    intros Hm ->. revert m Hm.
-    apply (map_fold_ind (λ mr _, mr !! i = Some ∅ → False)); [done|].
-    intros [i' j] x m mr ??. destruct (decide (i = i')) as [->|].
-    - rewrite lookup_partial_alter. intros [= []%insert_non_empty].
-    - by rewrite lookup_partial_alter_ne by done.
+    intros Hm ->. eapply eq_None_not_Some; [|by eexists].
+    eapply lookup_gmap_uncurry_None; intros j.
+    by rewrite <-lookup_gmap_uncurry, Hm.
   Qed.
 
   Lemma gmap_uncurry_curry_non_empty (m : gmap K1 (gmap K2 A)) :
-- 
GitLab