diff --git a/algebra/upred.v b/algebra/upred.v
index 3aa4b20bf4e3277c4253343c488aeb52e56a146f..c3279bd976c21872f4f5a9e9a05ba334f657e237 100644
--- a/algebra/upred.v
+++ b/algebra/upred.v
@@ -15,6 +15,10 @@ Local Transparent uPred_holds.
 Add Printing Constructor uPred.
 Instance: Params (@uPred_holds) 3.
 
+Delimit Scope uPred_scope with I.
+Bind Scope uPred_scope with uPred.
+Arguments uPred_holds {_} _%I _ _.
+
 Section cofe.
   Context {M : cmraT}.
   Instance uPred_equiv : Equiv (uPred M) := λ P Q, ∀ x n,
@@ -185,10 +189,6 @@ Program Definition uPred_valid {M A : cmraT} (a : A) : uPred M :=
   {| uPred_holds n x := ✓{n} a |}.
 Solve Obligations with naive_solver eauto 2 using cmra_validN_le.
 
-Delimit Scope uPred_scope with I.
-Bind Scope uPred_scope with uPred.
-Arguments uPred_holds {_} _%I _ _.
-Arguments uPred_entails _ _%I _%I.
 Notation "P ⊑ Q" := (uPred_entails P%I Q%I) (at level 70) : C_scope.
 Notation "(⊑)" := uPred_entails (only parsing) : C_scope.
 Notation "■ φ" := (uPred_const φ%C%type)
diff --git a/heap_lang/heap_lang.v b/heap_lang/heap_lang.v
index eba60945618504d05b209b10771eb43c9f16d7db..be2503d780ad35a416a428a99ebe81745cabbf9b 100644
--- a/heap_lang/heap_lang.v
+++ b/heap_lang/heap_lang.v
@@ -49,6 +49,9 @@ Inductive val :=
   | InjRV (v : val)
   | LocV (l : loc).
 
+Delimit Scope lang_scope with L.
+Bind Scope lang_scope with expr val.
+
 Fixpoint of_val (v : val) : expr :=
   match v with
   | RecV f x e => Rec f x e
diff --git a/heap_lang/notation.v b/heap_lang/notation.v
index fb7efc5da7459b83ee18e8513c2827bf67c22be5..fe4affa41bcc41cb728753ef38f8a45051cfbfc2 100644
--- a/heap_lang/notation.v
+++ b/heap_lang/notation.v
@@ -1,8 +1,5 @@
 Require Export heap_lang.derived.
 
-Delimit Scope lang_scope with L.
-Bind Scope lang_scope with expr val.
-
 (* What about Arguments for hoare triples?. *)
 Arguments wp {_ _} _ _%L _.