diff --git a/opam b/opam
index 1a76efef56a6f4c04d334709e40bcb7072b12116..52a3406c05020560ff529d40488fab56c7c6423d 100644
--- a/opam
+++ b/opam
@@ -9,5 +9,5 @@ build: [make "-j%{jobs}%"]
 install: [make "install"]
 remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/actris" ]
 depends: [
-  "coq-iris-heap-lang" { (= "dev.2021-03-12.0.5011fae3") | (= "dev") }
+  "coq-iris-heap-lang" { (= "dev.2021-04-20.0.7a260d80") | (= "dev") }
 ]
diff --git a/theories/examples/map_reduce.v b/theories/examples/map_reduce.v
index 77693af713ffe55aab63924a86f5baffff15b8fe..3f7832dc230b7c0977d3039080910313039e1031 100644
--- a/theories/examples/map_reduce.v
+++ b/theories/examples/map_reduce.v
@@ -159,7 +159,7 @@ Section mapper.
       wp_smart_apply ("IH" with "[] Hl Hcmap Hcsort"); first done.
       iIntros (ys'). iDestruct 1 as (Hys) "Hcsort"; simplify_eq/=.
       rewrite -assoc_L. iApply ("HΦ" $! (map x ++ ys') with "[$Hcsort]").
-      iPureIntro. rewrite (gmultiset_disj_union_difference {[ x ]} X)
+      iPureIntro. rewrite (gmultiset_disj_union_difference {[+ x +]} X)
         -?gmultiset_elem_of_singleton_subseteq //.
       rewrite (comm_L disj_union) gmultiset_elements_disj_union.
       by rewrite gmultiset_elements_singleton assoc_L bind_app -Hys /= right_id_L comm.
@@ -265,7 +265,7 @@ Section mapper.
       wp_smart_apply ("IH" with "[ ] [//] [//] Hl Hcsort Hcred HImiy"); first done.
       iIntros (zs'); iDestruct 1 as (Hzs) "HIC"; simplify_eq/=.
       iApply ("HΦ" $! (zs' ++ red i ys)). iSplit; last by rewrite -assoc_L.
-      iPureIntro. rewrite (gmultiset_disj_union_difference {[ (i,ys) ]} Y)
+      iPureIntro. rewrite (gmultiset_disj_union_difference {[+ (i,ys) +]} Y)
         -?gmultiset_elem_of_singleton_subseteq //.
       rewrite (comm_L disj_union) gmultiset_elements_disj_union.
       rewrite gmultiset_elements_singleton assoc_L Hzs !bind_app /=.
diff --git a/theories/examples/par_map.v b/theories/examples/par_map.v
index bcc24fbefa560f6a2e7346649e98032487ad3866..661369f545858ae4e36a3557499f65d579fd3f82 100644
--- a/theories/examples/par_map.v
+++ b/theories/examples/par_map.v
@@ -72,12 +72,12 @@ Section map.
       nat -d> gmultiset A -d> iProto Σ := λ i X,
     let rec : nat → gmultiset A → iProto Σ := rec in
     (if i is 0 then END else
-     ((<! x v> MSG v {{ IA x v }}; rec i (X ⊎ {[ x ]}))
+     ((<! x v> MSG v {{ IA x v }}; rec i (X ⊎ {[+ x +]}))
         <+>
       rec (pred i) X
      ) <{⌜ i ≠ 1 ∨ X = ∅ ⌝}&>
          <? x (l : loc)> MSG #l {{ ⌜ x ∈ X ⌝ ∗ llist IB l (map x) }};
-         rec i (X ∖ {[ x ]}))%proto.
+         rec i (X ∖ {[+ x +]}))%proto.
   Instance par_map_protocol_aux_contractive : Contractive par_map_protocol_aux.
   Proof. solve_proper_prepare. f_equiv. solve_proto_contractive. Qed.
   Definition par_map_protocol := fixpoint par_map_protocol_aux.
@@ -109,7 +109,7 @@ Section map.
       iIntros "_". by iApply "HΦ". }
     wp_recv (x v) as "HI".
     iMod (@update_client with "Hs Hγ") as "[Hs Hγ]".
-    { apply (gmultiset_local_update_alloc _ _ {[ x ]}). }
+    { apply (gmultiset_local_update_alloc _ _ {[+ x +]}). }
     rewrite left_id_L.
     wp_smart_apply (release_spec with "[$Hlk $Hl Hc Hs]").
     { iExists (S i), _. iFrame. }
@@ -118,10 +118,9 @@ Section map.
     iDestruct "H" as (i X) "[Hs Hc]".
     iDestruct (@server_agree with "Hs Hγ")
       as %[??%gmultiset_included]; destruct i as [|i]=>//=.
-    wp_select. wp_send with "[$HI]".
-    { by rewrite gmultiset_elem_of_singleton_subseteq. }
+    wp_select. wp_send with "[$HI]"; first (iPureIntro; multiset_solver).
     iMod (@update_client with "Hs Hγ") as "[Hs Hγ]".
-    { by apply (gmultiset_local_update_dealloc _ _ {[ x ]}). }
+    { by apply (gmultiset_local_update_dealloc _ _ {[+ x +]}). }
     rewrite gmultiset_difference_diag.
     wp_smart_apply (release_spec with "[$Hlk $Hl Hc Hs]").
     { iExists (S i), _. iFrame. }
@@ -187,7 +186,7 @@ Section map.
       wp_smart_apply ("IH" with "[] Hl Hk Hc"); first done.
       iIntros (ys'); iDestruct 1 as (Hys) "Hk"; simplify_eq/=.
       iApply ("HΦ" $! (ys' ++ map x)). iSplit.
-      + iPureIntro. rewrite (gmultiset_disj_union_difference {[ x ]} X)
+      + iPureIntro. rewrite (gmultiset_disj_union_difference {[+ x +]} X)
           -?gmultiset_elem_of_singleton_subseteq //.
         rewrite (comm_L disj_union) gmultiset_elements_disj_union.
         by rewrite gmultiset_elements_singleton assoc_L bind_app -Hys /= right_id_L.