diff --git a/theories/coPset.v b/theories/coPset.v
index 92fb29741eefd54f9c374de709f19db8cb15e9bb..4048edf49e582152575e5359a694d488c2c393be 100644
--- a/theories/coPset.v
+++ b/theories/coPset.v
@@ -185,7 +185,8 @@ Proof.
 Qed.
 
 (** Iris and specifically [solve_ndisj] heavily rely on this hint. *)
-Hint Resolve (top_subseteq (A:=positive) (C:=coPset)) : core.
+Local Definition coPset_top_subseteq := top_subseteq (C:=coPset).
+Hint Resolve coPset_top_subseteq : core.
 
 Instance coPset_leibniz : LeibnizEquiv coPset.
 Proof.
diff --git a/theories/namespaces.v b/theories/namespaces.v
index 04f9e931143bac93cd0465fcf847f923f23aedde..c135f3bb546bd8180dc0b040a4ebf15553e533d5 100644
--- a/theories/namespaces.v
+++ b/theories/namespaces.v
@@ -78,11 +78,15 @@ Create HintDb ndisj.
 (** Rules for goals of the form [_ ⊆ _] *)
 (** If-and-only-if rules. Well, not quite, but for the fragment we are
 considering they are. *)
-Hint Resolve (subseteq_difference_r (A:=positive) (C:=coPset)) : ndisj.
-Hint Resolve (empty_subseteq (A:=positive) (C:=coPset)) : ndisj.
-Hint Resolve (union_least (A:=positive) (C:=coPset)) : ndisj.
+Local Definition coPset_subseteq_difference_r := subseteq_difference_r (C:=coPset).
+Hint Resolve coPset_subseteq_difference_r : ndisj.
+Local Definition coPset_empty_subseteq := empty_subseteq (C:=coPset).
+Hint Resolve coPset_empty_subseteq : ndisj.
+Local Definition coPset_union_least := union_least (C:=coPset).
+Hint Resolve coPset_union_least : ndisj.
 (** Fallback, loses lots of information but lets other rules make progress. *)
-Hint Resolve (subseteq_difference_l (A:=positive) (C:=coPset)) | 100 : ndisj.
+Local Definition coPset_subseteq_difference_l := subseteq_difference_l (C:=coPset).
+Hint Resolve coPset_subseteq_difference_l | 100 : ndisj.
 Hint Resolve nclose_subseteq' | 100 : ndisj.
 
 (** Rules for goals of the form [_ ## _] *)
@@ -90,8 +94,10 @@ Hint Resolve nclose_subseteq' | 100 : ndisj.
 Hint Extern 0 (_ ## _) => apply ndot_ne_disjoint; congruence : ndisj.
 (** Fallback, loses lots of information but lets other rules make progress.
 Tests show trying [disjoint_difference_l1] first gives better performance. *)
-Hint Resolve (disjoint_difference_l1 (A:=positive) (C:=coPset)) | 50 : ndisj.
-Hint Resolve (disjoint_difference_l2 (A:=positive) (C:=coPset)) | 100 : ndisj.
+Local Definition coPset_disjoint_difference_l1 := disjoint_difference_l1 (C:=coPset).
+Hint Resolve coPset_disjoint_difference_l1 | 50 : ndisj.
+Local Definition coPset_disjoint_difference_l2 := disjoint_difference_l2 (C:=coPset).
+Hint Resolve coPset_disjoint_difference_l2 | 100 : ndisj.
 Hint Resolve ndot_preserve_disjoint_l ndot_preserve_disjoint_r | 100 : ndisj.
 
 Ltac solve_ndisj :=