From dfa6603a819a5e715efbbee2a88e2eb450b06198 Mon Sep 17 00:00:00 2001
From: Robbert Krebbers <mail@robbertkrebbers.nl>
Date: Thu, 21 Sep 2017 12:55:18 +0200
Subject: [PATCH] Bump stdpp.

---
 opam                               | 2 +-
 opam.pins                          | 2 +-
 theories/algebra/big_op.v          | 4 ++--
 theories/algebra/gmap.v            | 4 ++--
 theories/base_logic/big_op.v       | 2 +-
 theories/base_logic/lib/gen_heap.v | 9 ++++++---
 theories/heap_lang/lang.v          | 2 +-
 7 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/opam b/opam
index bb7f1ad48..1f1cc0596 100644
--- a/opam
+++ b/opam
@@ -12,5 +12,5 @@ remove: ["sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/iris'"]
 depends: [
   "coq" { >= "8.6.1" & < "8.8~" }
   "coq-mathcomp-ssreflect" { (>= "1.6.1" & < "1.7~") | (= "dev") }
-  "coq-stdpp" { (= "dev.2017-09-20.2") | (= "dev") }
+  "coq-stdpp" { (= "2017-09-21.2") | (= "dev") }
 ]
diff --git a/opam.pins b/opam.pins
index 434e17680..7034b4457 100644
--- a/opam.pins
+++ b/opam.pins
@@ -1 +1 @@
-coq-stdpp https://gitlab.mpi-sws.org/robbertkrebbers/coq-stdpp 9b0f7c75a2387e0ad9fe5d16ec1083a0ece2bea3
+coq-stdpp https://gitlab.mpi-sws.org/robbertkrebbers/coq-stdpp 2f9f3d3f28aa568f5cbee1be5699f163800491c0
diff --git a/theories/algebra/big_op.v b/theories/algebra/big_op.v
index 73be6c281..e8354972a 100644
--- a/theories/algebra/big_op.v
+++ b/theories/algebra/big_op.v
@@ -180,11 +180,11 @@ Section gmap.
 
   Global Instance big_opM_ne n :
     Proper (pointwise_relation _ (pointwise_relation _ (dist n)) ==> eq ==> dist n)
-           (big_opM o (A:=A)).
+           (big_opM o (K:=K) (A:=A)).
   Proof. intros f g Hf m ? <-. apply big_opM_forall; apply _ || intros; apply Hf. Qed.
   Global Instance big_opM_proper' :
     Proper (pointwise_relation _ (pointwise_relation _ (≡)) ==> eq ==> (≡))
-           (big_opM o (A:=A)).
+           (big_opM o (K:=K) (A:=A)).
   Proof. intros f g Hf m ? <-. apply big_opM_forall; apply _ || intros; apply Hf. Qed.
 
   Lemma big_opM_empty f : ([^o map] k↦x ∈ ∅, f k x) = monoid_unit.
diff --git a/theories/algebra/gmap.v b/theories/algebra/gmap.v
index 7513358c6..932aa3721 100644
--- a/theories/algebra/gmap.v
+++ b/theories/algebra/gmap.v
@@ -427,7 +427,7 @@ Lemma singleton_local_update m i x y x' y' :
   (m, {[ i := y ]}) ~l~> (<[i:=x']>m, {[ i := y' ]}).
 Proof.
   intros. rewrite /singletonM /map_singleton -(insert_insert ∅ i y' y).
-  eapply insert_local_update; eauto using lookup_insert.
+  by eapply insert_local_update; [|eapply lookup_insert|].
 Qed.
 
 Lemma delete_local_update m1 m2 i x `{!Exclusive x} :
@@ -446,7 +446,7 @@ Lemma delete_singleton_local_update m i x `{!Exclusive x} :
   (m, {[ i := x ]}) ~l~> (delete i m, ∅).
 Proof.
   rewrite -(delete_singleton i x).
-  eapply delete_local_update; eauto using lookup_singleton.
+  by eapply delete_local_update, lookup_singleton.
 Qed.
 
 Lemma delete_local_update_cancelable m1 m2 i mx `{!Cancelable mx} :
diff --git a/theories/base_logic/big_op.v b/theories/base_logic/big_op.v
index 9012d629c..9b9daea32 100644
--- a/theories/base_logic/big_op.v
+++ b/theories/base_logic/big_op.v
@@ -213,7 +213,7 @@ Section gmap.
 
   Global Instance big_sepM_mono' :
     Proper (pointwise_relation _ (pointwise_relation _ (⊢)) ==> (=) ==> (⊢))
-           (big_opM (@uPred_sep M) (A:=A)).
+           (big_opM (@uPred_sep M) (K:=K) (A:=A)).
   Proof. intros f g Hf m ? <-. apply big_opM_forall; apply _ || intros; apply Hf. Qed.
 
   Lemma big_sepM_empty Φ : ([∗ map] k↦x ∈ ∅, Φ k x) ⊣⊢ True.
diff --git a/theories/base_logic/lib/gen_heap.v b/theories/base_logic/lib/gen_heap.v
index 79e199df2..89914dc63 100644
--- a/theories/base_logic/lib/gen_heap.v
+++ b/theories/base_logic/lib/gen_heap.v
@@ -15,6 +15,7 @@ Class gen_heapG (L V : Type) (Σ : gFunctors) `{Countable L} := GenHeapG {
   gen_heap_inG :> inG Σ (authR (gen_heapUR L V));
   gen_heap_name : gname
 }.
+Arguments gen_heap_name {_ _ _ _ _} _ : assert.
 
 Class gen_heapPreG (L V : Type) (Σ : gFunctors) `{Countable L} :=
   { gen_heap_preG_inG :> inG Σ (authR (gen_heapUR L V)) }.
@@ -27,13 +28,13 @@ Instance subG_gen_heapPreG {Σ L V} `{Countable L} :
 Proof. solve_inG. Qed.
 
 Section definitions.
-  Context `{gen_heapG L V Σ}.
+  Context `{hG : gen_heapG L V Σ}.
 
   Definition gen_heap_ctx (σ : gmap L V) : iProp Σ :=
-    own gen_heap_name (● to_gen_heap σ).
+    own (gen_heap_name hG) (● (to_gen_heap σ)).
 
   Definition mapsto_def (l : L) (q : Qp) (v: V) : iProp Σ :=
-    own gen_heap_name (â—¯ {[ l := (q, to_agree (v : leibnizC V)) ]}).
+    own (gen_heap_name hG) (â—¯ {[ l := (q, to_agree (v : leibnizC V)) ]}).
   Definition mapsto_aux : seal (@mapsto_def). by eexists. Qed.
   Definition mapsto := unseal mapsto_aux.
   Definition mapsto_eq : @mapsto = @mapsto_def := seal_eq mapsto_aux.
@@ -77,6 +78,8 @@ Section gen_heap.
   Implicit Types Φ : V → iProp Σ.
   Implicit Types σ : gmap L V.
   Implicit Types h g : gen_heapUR L V.
+  Implicit Types l : L.
+  Implicit Types v : V.
 
   (** General properties of mapsto *)
   Global Instance mapsto_timeless l q v : TimelessP (l ↦{q} v).
diff --git a/theories/heap_lang/lang.v b/theories/heap_lang/lang.v
index 3e88d0de6..bb3a90d30 100644
--- a/theories/heap_lang/lang.v
+++ b/theories/heap_lang/lang.v
@@ -394,7 +394,7 @@ Qed.
 Lemma alloc_fresh e v σ :
   let l := fresh (dom (gset loc) σ) in
   to_val e = Some v → head_step (Alloc e) σ (Lit (LitLoc l)) (<[l:=v]>σ) [].
-Proof. by intros; apply AllocS, (not_elem_of_dom (D:=gset _)), is_fresh. Qed.
+Proof. by intros; apply AllocS, (not_elem_of_dom (D:=gset loc)), is_fresh. Qed.
 
 (* Misc *)
 Lemma to_val_rec f x e `{!Closed (f :b: x :b: []) e} :
-- 
GitLab