diff --git a/CHANGELOG.md b/CHANGELOG.md
index 506a86230346a4165d11c231df956c25c218084f..76b0086d98a7403f626705839b52bf0eac3a5934 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -220,18 +220,17 @@ Coq 8.10, 8.11, and 8.12 are newly supported by this release, and Coq 8.7 and
   `sts_op_auth_frag` → `sts_auth_frag_op`,
   `sts_op_auth_frag_up` → `sts_auth_frag_up_op`,
   `sts_op_frag` → `sts_frag_op`,
-  `list_op_length` → `list_length_op`.
-* Make list singleton lemmas consistent with gmap by dropping the `M` suffix of
-  `singleton`:
-  `elem_of_list_singletonM` → `elem_of_list_singleton`,
-  `list_lookup_singletonM` → `list_lookup_singleton`,
-  `list_lookup_singletonM_lt` → `list_lookup_singleton_lt`,
-  `list_lookup_singletonM_gt` → `list_lookup_singleton_gt`,
-  `list_lookup_singletonM_ne` → `list_lookup_singleton_ne`,
-  `list_singletonM_validN` → `list_singleton_validN`,
-  `list_singletonM_length` → `list_singleton_length`,
-  `list_alter_singletonM` → `list_alter_singleton`,
-  `list_singletonM_included` → `list_singleton_included`.
+  `list_op_length` → `list_length_op`,
+  `list_core_singletonM` → `list_singletonM_core`,
+  `list_op_singletonM` → `list_singletonM_op`.
+* All list "map singleton" lemmas consistently use `singletonM` in their name:
+  `list_singleton_valid` → `list_singletonM_valid`,
+  `list_singleton_core_id` → `list_singletonM_core_id`,
+  `list_singleton_snoc` → `list_singletonM_snoc`,
+  `list_singleton_updateP` → `list_singletonM_updateP`,
+  `list_singleton_updateP'` → `list_singletonM_updateP'`,
+  `list_singleton_update` → `list_singletonM_update`,
+  `list_alloc_singleton_local_update` → `list_alloc_singletonM_local_update`.
 * Add `list_singletonM_included` and `list_lookup_singletonM_{lt,gt}` lemmas
   about singletons in the list RA.
 * Add `list_core_id'`, a stronger version of `list_core_id` which only talks
@@ -260,15 +259,16 @@ s/\bsingleton_included_exclusive\b/singleton_included_exclusive_l/g
 # f_op/f_core renames
 s/\b(op|core)_singleton\b/singleton_\1/g
 s/\bdiscrete_fun_(op|core)_singleton\b/discrete_fun_singleton_\1/g
-s/\blist_(op|core)_singletonM\b/list_singleton_\1/g
 s/\bsts_op_(auth_frag|auth_frag_up|frag)\b/sts_\1_op/g
+s/\blist_(op|core)_singletonM\b/list_singletonM_\1/g
 s/\blist_op_length\b/list_length_op/g
-# list singleton renames
-s/\belem_of_list_singletonM\b/elem_of_list_singleton/g
-s/\blist_lookup_singletonM(|_lt|_gt|_ne)\b/list_lookup_singleton\1/g
-s/\blist_singletonM_(validN|length)\b/list_singleton_\1/g
-s/\blist_alter_singletonM\b/list_alter_singleton/g
-s/\blist_singletonM_included\b/list_singleton_included/g
+# list "singleton map" renames
+s/\blist_singleton_valid\b/list_singletonM_valid/g
+s/\blist_singleton_core_id\b/list_singletonM_core_id/g
+s/\blist_singleton_snoc\b/list_singletonM_snoc/g
+s/\blist_singleton_updateP\b/list_singletonM_updateP/g
+s/\blist_singleton_update\b/list_singletonM_update/g
+s/\blist_alloc_singleton_local_update\b/list_alloc_singletonM_local_update/g
 # inv renames
 s/\binv_sep(|_1|_2)\b/inv_split\1/g
 s/\binv_acc\b/inv_alter/g
diff --git a/theories/algebra/list.v b/theories/algebra/list.v
index e826a54960525ebae106b69bd2fa87078be438fa..1abbc20fc73122b1809da3db62538f04039d7ce1 100644
--- a/theories/algebra/list.v
+++ b/theories/algebra/list.v
@@ -365,79 +365,79 @@ Section properties.
   Global Instance list_singletonM_proper i :
     Proper ((≡) ==> (≡)) (list_singletonM i) := ne_proper _.
 
-  Lemma elem_of_list_singleton i z x : z ∈ ({[i := x]} : list A) → z = ε ∨ z = x.
+  Lemma elem_of_list_singletonM i z x : z ∈ ({[i := x]} : list A) → z = ε ∨ z = x.
   Proof.
     rewrite elem_of_app elem_of_list_singleton elem_of_replicate. naive_solver.
   Qed.
-  Lemma list_lookup_singleton i x : ({[ i := x ]} : list A) !! i = Some x.
+  Lemma list_lookup_singletonM i x : ({[ i := x ]} : list A) !! i = Some x.
   Proof. induction i; by f_equal/=. Qed.
-  Lemma list_lookup_singleton_lt i i' x:
+  Lemma list_lookup_singletonM_lt i i' x:
     (i' < i)%nat → ({[ i := x ]} : list A) !! i' = Some ε.
   Proof. move: i'. induction i; intros [|i']; naive_solver auto with lia. Qed.
-  Lemma list_lookup_singleton_gt i i' x:
+  Lemma list_lookup_singletonM_gt i i' x:
     (i < i')%nat → ({[ i := x ]} : list A) !! i' = None.
   Proof. move: i'. induction i; intros [|i']; naive_solver auto with lia. Qed.
-  Lemma list_lookup_singleton_ne i j x :
+  Lemma list_lookup_singletonM_ne i j x :
     i ≠ j →
     ({[ i := x ]} : list A) !! j = None ∨ ({[ i := x ]} : list A) !! j = Some ε.
   Proof. revert j; induction i; intros [|j]; naive_solver auto with lia. Qed.
-  Lemma list_singleton_validN n i x : ✓{n} ({[ i := x ]} : list A) ↔ ✓{n} x.
+  Lemma list_singletonM_validN n i x : ✓{n} ({[ i := x ]} : list A) ↔ ✓{n} x.
   Proof.
     rewrite list_lookup_validN. split.
-    { move=> /(_ i). by rewrite list_lookup_singleton. }
+    { move=> /(_ i). by rewrite list_lookup_singletonM. }
     intros Hx j; destruct (decide (i = j)); subst.
-    - by rewrite list_lookup_singleton.
-    - destruct (list_lookup_singleton_ne i j x) as [Hi|Hi]; first done;
+    - by rewrite list_lookup_singletonM.
+    - destruct (list_lookup_singletonM_ne i j x) as [Hi|Hi]; first done;
         rewrite Hi; by try apply (ucmra_unit_validN (A:=A)).
   Qed.
-  Lemma list_singleton_valid  i x : ✓ ({[ i := x ]} : list A) ↔ ✓ x.
+  Lemma list_singletonM_valid  i x : ✓ ({[ i := x ]} : list A) ↔ ✓ x.
   Proof.
-    rewrite !cmra_valid_validN. by setoid_rewrite list_singleton_validN.
+    rewrite !cmra_valid_validN. by setoid_rewrite list_singletonM_validN.
   Qed.
-  Lemma list_singleton_length i x : length {[ i := x ]} = S i.
+  Lemma list_singletonM_length i x : length {[ i := x ]} = S i.
   Proof.
     rewrite /singletonM /list_singletonM app_length replicate_length /=; lia.
   Qed.
 
-  Lemma list_singleton_core i (x : A) : core {[ i := x ]} ≡@{list A} {[ i := core x ]}.
+  Lemma list_singletonM_core i (x : A) : core {[ i := x ]} ≡@{list A} {[ i := core x ]}.
   Proof.
     rewrite /singletonM /list_singletonM.
     by rewrite {1}/core /= fmap_app fmap_replicate (core_id_core ∅).
   Qed.
-  Lemma list_singleton_op i (x y : A) :
+  Lemma list_singletonM_op i (x y : A) :
     {[ i := x ]} ⋅ {[ i := y ]} ≡@{list A} {[ i := x ⋅ y ]}.
   Proof.
     rewrite /singletonM /list_singletonM /=.
     induction i; constructor; rewrite ?left_id; auto.
   Qed.
-  Lemma list_alter_singleton f i x :
+  Lemma list_alter_singletonM f i x :
     alter f i ({[i := x]} : list A) = {[i := f x]}.
   Proof.
     rewrite /singletonM /list_singletonM /=. induction i; f_equal/=; auto.
   Qed.
-  Global Instance list_singleton_core_id i (x : A) :
+  Global Instance list_singletonM_core_id i (x : A) :
     CoreId x → CoreId {[ i := x ]}.
-  Proof. by rewrite !core_id_total list_singleton_core=> ->. Qed.
-  Lemma list_singleton_snoc l x:
+  Proof. by rewrite !core_id_total list_singletonM_core=> ->. Qed.
+  Lemma list_singletonM_snoc l x:
     {[length l := x]} ⋅ l ≡ l ++ [x].
   Proof. elim: l => //= ?? <-. by rewrite left_id. Qed.
-  Lemma list_singleton_included i x l:
+  Lemma list_singletonM_included i x l:
     {[i := x]} ≼ l ↔ (∃ x', l !! i = Some x' ∧ x ≼ x').
   Proof.
     rewrite list_lookup_included. split.
-    { move /(_ i). rewrite list_lookup_singleton option_included_total.
+    { move /(_ i). rewrite list_lookup_singletonM option_included_total.
       naive_solver. }
     intros (y&Hi&?) j. destruct (Nat.lt_total j i) as [?|[->|?]].
-    - rewrite list_lookup_singleton_lt //.
+    - rewrite list_lookup_singletonM_lt //.
       destruct (lookup_lt_is_Some_2 l j) as [z Hz].
       { trans i; eauto using lookup_lt_Some. }
       rewrite Hz. by apply Some_included_2, ucmra_unit_least.
-    - rewrite list_lookup_singleton Hi. by apply Some_included_2.
-    - rewrite list_lookup_singleton_gt //. apply: ucmra_unit_least.
+    - rewrite list_lookup_singletonM Hi. by apply Some_included_2.
+    - rewrite list_lookup_singletonM_gt //. apply: ucmra_unit_least.
   Qed.
 
   (* Update *)
-  Lemma list_singleton_updateP (P : A → Prop) (Q : list A → Prop) x :
+  Lemma list_singletonM_updateP (P : A → Prop) (Q : list A → Prop) x :
     x ~~>: P → (∀ y, P y → Q [y]) → [x] ~~>: Q.
   Proof.
     rewrite !cmra_total_updateP=> Hup HQ n lf /list_lookup_validN Hv.
@@ -447,12 +447,12 @@ Section properties.
     apply list_lookup_validN=> i.
     move: (Hv i) Hv'. by destruct i, lf; rewrite /= ?right_id.
   Qed.
-  Lemma list_singleton_updateP' (P : A → Prop) x :
+  Lemma list_singletonM_updateP' (P : A → Prop) x :
     x ~~>: P → [x] ~~>: λ k, ∃ y, k = [y] ∧ P y.
-  Proof. eauto using list_singleton_updateP. Qed.
-  Lemma list_singleton_update x y : x ~~> y → [x] ~~> [y].
+  Proof. eauto using list_singletonM_updateP. Qed.
+  Lemma list_singletonM_update x y : x ~~> y → [x] ~~> [y].
   Proof.
-    rewrite !cmra_update_updateP; eauto using list_singleton_updateP with subst.
+    rewrite !cmra_update_updateP; eauto using list_singletonM_updateP with subst.
   Qed.
 
   Lemma app_updateP (P1 P2 Q : list A → Prop) l1 l2 :
@@ -476,7 +476,7 @@ Section properties.
     x ~~>: P1 → l ~~>: P2 → (∀ y k, P1 y → P2 k → Q (y :: k)) → x :: l ~~>: Q.
   Proof.
     intros. eapply (app_updateP _ _ _ [x]);
-      naive_solver eauto using list_singleton_updateP'.
+      naive_solver eauto using list_singletonM_updateP'.
   Qed.
   Lemma cons_updateP' (P1 : A → Prop) (P2 : list A → Prop) x l :
     x ~~>: P1 → l ~~>: P2 → x :: l ~~>: λ k, ∃ y k', k = y :: k' ∧ P1 y ∧ P2 k'.
@@ -523,13 +523,13 @@ Section properties.
   Proof. intros; apply list_middle_local_update. by rewrite replicate_length. Qed.
 *)
 
-  Lemma list_alloc_singleton_local_update x l :
+  Lemma list_alloc_singletonM_local_update x l :
     ✓ x → (l, ε) ~l~> (l ++ [x], {[length l := x]}).
   Proof.
     move => ?.
     have -> : ({[length l := x]} ≡ {[length l := x]} ⋅ ε) by rewrite right_id.
-    rewrite -list_singleton_snoc. apply op_local_update => ??.
-    rewrite list_singleton_snoc app_validN cons_validN. split_and? => //; [| constructor].
+    rewrite -list_singletonM_snoc. apply op_local_update => ??.
+    rewrite list_singletonM_snoc app_validN cons_validN. split_and? => //; [| constructor].
     by apply cmra_valid_validN.
   Qed.