diff --git a/opam b/opam
index cc047f50b12f20161ea5045f8d3d577599dcd0a3..a8a84a4ffc9e12dd883d015fb290d79466ca8586 100644
--- a/opam
+++ b/opam
@@ -11,7 +11,7 @@ synopsis: "This is the Coq development of the Iris Project"
 
 depends: [
   "coq" { (>= "8.9.1" & < "8.13~") | (= "dev") }
-  "coq-stdpp" { (= "dev.2020-07-02.1.c8129a37") | (= "dev") }
+  "coq-stdpp" { (= "dev.2020-07-15.1.92dc4869") | (= "dev") }
 ]
 
 build: [make "-j%{jobs}%"]
diff --git a/theories/proofmode/coq_tactics.v b/theories/proofmode/coq_tactics.v
index 3bc66cbd185cb21b942216b3c33843536671c618..e0d53b86b6682a71567e753564fab1aecc2089de 100644
--- a/theories/proofmode/coq_tactics.v
+++ b/theories/proofmode/coq_tactics.v
@@ -322,8 +322,8 @@ Lemma tac_specialize_assert Δ j (q am neg : bool) js R P1 P2 P1' Q :
   IntoWand q false R P1 P2 →
   (if am then AddModal P1' P1 Q else TCEq P1' P1) →
   match
-    ''(Δ1,Δ2) ← envs_split (if neg is true then Right else Left)
-                           js (envs_delete true j q Δ);
+    '(Δ1,Δ2) ← envs_split (if neg is true then Right else Left)
+                          js (envs_delete true j q Δ);
     Δ2' ← envs_app (negb am &&& q &&& env_spatial_is_nil Δ1) (Esnoc Enil j P2) Δ2;
     Some (Δ1,Δ2') (* does not preserve position of [j] *)
   with
diff --git a/theories/proofmode/environments.v b/theories/proofmode/environments.v
index 4af44c52ae11e399db23c515e6123562733e9f64..e11fb4bce3197ec00e4a2cf7852487575d19a944 100644
--- a/theories/proofmode/environments.v
+++ b/theories/proofmode/environments.v
@@ -22,7 +22,7 @@ Fixpoint env_lookup {A} (i : ident) (Γ : env A) : option A :=
 Module env_notations.
   Notation "y ≫= f" := (pm_option_bind f y).
   Notation "x ← y ; z" := (y ≫= λ x, z).
-  Notation "' x1 .. xn ← y ; z" := (y ≫= (λ x1, .. (λ xn, z) .. )).
+  Notation "' x1 ← y ; z" := (y ≫= (λ x1, z)).
   Notation "Γ !! j" := (env_lookup j Γ).
 End env_notations.
 Import env_notations.
@@ -71,7 +71,7 @@ Fixpoint env_lookup_delete {A} (i : ident) (Γ : env A) : option (A * env A) :=
   | Enil => None
   | Esnoc Γ j x =>
      if ident_beq i j then Some (x,Γ)
-     else ''(y,Γ') ← env_lookup_delete i Γ; Some (y, Esnoc Γ' j x)
+     else '(y,Γ') ← env_lookup_delete i Γ; Some (y, Esnoc Γ' j x)
   end.
 
 Inductive env_Forall2 {A B} (P : A → B → Prop) : env A → env B → Prop :=
@@ -296,7 +296,7 @@ Definition envs_lookup_delete {PROP} (remove_intuitionistic : bool)
   let (Γp,Γs,n) := Δ in
   match env_lookup_delete i Γp with
   | Some (P,Γp') => Some (true, P, Envs (if remove_intuitionistic then Γp' else Γp) Γs n)
-  | None => ''(P,Γs') ← env_lookup_delete i Γs; Some (false, P, Envs Γp Γs' n)
+  | None => '(P,Γs') ← env_lookup_delete i Γs; Some (false, P, Envs Γp Γs' n)
   end.
 
 Fixpoint envs_lookup_delete_list {PROP} (remove_intuitionistic : bool)
@@ -304,8 +304,8 @@ Fixpoint envs_lookup_delete_list {PROP} (remove_intuitionistic : bool)
   match js with
   | [] => Some (true, [], Δ)
   | j :: js =>
-     ''(p,P,Δ') ← envs_lookup_delete remove_intuitionistic j Δ;
-     ''(q,Ps,Δ'') ← envs_lookup_delete_list remove_intuitionistic js Δ';
+     '(p,P,Δ') ← envs_lookup_delete remove_intuitionistic j Δ;
+     '(q,Ps,Δ'') ← envs_lookup_delete_list remove_intuitionistic js Δ';
      Some ((p:bool) &&& q, P :: Ps, Δ'')
   end.
 
@@ -352,7 +352,7 @@ Fixpoint envs_split_go {PROP}
   match js with
   | [] => Some (Δ1, Δ2)
   | j :: js =>
-     ''(p,P,Δ1') ← envs_lookup_delete true j Δ1;
+     '(p,P,Δ1') ← envs_lookup_delete true j Δ1;
      if p : bool then envs_split_go js Δ1 Δ2 else
      envs_split_go js Δ1' (envs_snoc Δ2 false j P)
   end.
@@ -360,7 +360,7 @@ Fixpoint envs_split_go {PROP}
    if [d = Left] then [result = (hyps named js, remaining hyps)] *)
 Definition envs_split {PROP} (d : direction)
     (js : list ident) (Δ : envs PROP) : option (envs PROP * envs PROP) :=
-  ''(Δ1,Δ2) ← envs_split_go js Δ (envs_clear_spatial Δ);
+  '(Δ1,Δ2) ← envs_split_go js Δ (envs_clear_spatial Δ);
   if d is Right then Some (Δ1,Δ2) else Some (Δ2,Δ1).
 
 Fixpoint env_to_prop_go {PROP : bi} (acc : PROP) (Γ : env PROP) : PROP :=
@@ -688,7 +688,7 @@ Proof. intros. by rewrite envs_lookup_sound// envs_replace_singleton_sound'//. Q
 
 Lemma envs_lookup_envs_clear_spatial Δ j :
   envs_lookup j (envs_clear_spatial Δ)
-  = ''(p,P) ← envs_lookup j Δ; if p : bool then Some (p,P) else None.
+  = '(p,P) ← envs_lookup j Δ; if p : bool then Some (p,P) else None.
 Proof.
   rewrite /envs_lookup /envs_clear_spatial.
   destruct Δ as [Γp Γs]; simpl; destruct (Γp !! j) eqn:?; simplify_eq/=; auto.
diff --git a/theories/proofmode/intro_patterns.v b/theories/proofmode/intro_patterns.v
index 041c655ef65b9cda4e63d78344617465ad73a609..1d3cb9922fbcf41d9f08a6227a81ac6ed649e46b 100644
--- a/theories/proofmode/intro_patterns.v
+++ b/theories/proofmode/intro_patterns.v
@@ -44,9 +44,9 @@ Fixpoint close_list (k : stack)
   | StList :: k => Some (StPat (IList (ps :: pss)) :: k)
   | StPat pat :: k => close_list k (pat :: ps) pss
   | StIntuitionistic :: k =>
-     ''(p,ps) ← maybe2 (::) ps; close_list k (IIntuitionistic p :: ps) pss
+     '(p,ps) ← maybe2 (::) ps; close_list k (IIntuitionistic p :: ps) pss
   | StModalElim :: k =>
-     ''(p,ps) ← maybe2 (::) ps; close_list k (IModalElim p :: ps) pss
+     '(p,ps) ← maybe2 (::) ps; close_list k (IModalElim p :: ps) pss
   | StBar :: k => close_list k [] (ps :: pss)
   | _ => None
   end.
@@ -121,9 +121,9 @@ Fixpoint close (k : stack) (ps : list intro_pat) : option (list intro_pat) :=
   match k with
   | [] => Some ps
   | StPat pat :: k => close k (pat :: ps)
-  | StIntuitionistic :: k => ''(p,ps) ← maybe2 (::) ps; close k (IIntuitionistic p :: ps)
-  | StSpatial :: k => ''(p,ps) ← maybe2 (::) ps; close k (ISpatial p :: ps)
-  | StModalElim :: k => ''(p,ps) ← maybe2 (::) ps; close k (IModalElim p :: ps)
+  | StIntuitionistic :: k => '(p,ps) ← maybe2 (::) ps; close k (IIntuitionistic p :: ps)
+  | StSpatial :: k => '(p,ps) ← maybe2 (::) ps; close k (ISpatial p :: ps)
+  | StModalElim :: k => '(p,ps) ← maybe2 (::) ps; close k (IModalElim p :: ps)
   | _ => None
   end.