From c824cbeb04159df14a1158a9102eead3a25e03d2 Mon Sep 17 00:00:00 2001
From: Robbert Krebbers <mail@robbertkrebbers.nl>
Date: Mon, 5 Oct 2020 16:17:09 +0200
Subject: [PATCH] Make everything related to
 `inG_fold`/`inG_unfold`/`iRes_singleton` local.

---
 theories/base_logic/lib/own.v | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/theories/base_logic/lib/own.v b/theories/base_logic/lib/own.v
index 2d74fae33..2dae15cba 100644
--- a/theories/base_logic/lib/own.v
+++ b/theories/base_logic/lib/own.v
@@ -55,25 +55,25 @@ Ltac solve_inG :=
   split; (assumption || by apply _).
 
 (** * Definition of the connective [own] *)
-Definition inG_unfold {Σ A} {i : inG Σ A} :
+Local Definition inG_unfold {Σ A} {i : inG Σ A} :
     inG_apply i (iPropO Σ) -n> inG_apply i (iPrePropO Σ) :=
   rFunctor_map _ (iProp_fold, iProp_unfold).
-Definition inG_fold {Σ A} {i : inG Σ A} :
+Local Definition inG_fold {Σ A} {i : inG Σ A} :
     inG_apply i (iPrePropO Σ) -n> inG_apply i (iPropO Σ) :=
   rFunctor_map _ (iProp_unfold, iProp_fold).
 
-Definition iRes_singleton {Σ A} {i : inG Σ A} (γ : gname) (a : A) : iResUR Σ :=
+Local Definition iRes_singleton {Σ A} {i : inG Σ A} (γ : gname) (a : A) : iResUR Σ :=
   discrete_fun_singleton (inG_id i)
     {[ γ := inG_unfold (cmra_transport inG_prf a) ]}.
 Instance: Params (@iRes_singleton) 4 := {}.
 
-Definition own_def `{!inG Σ A} (γ : gname) (a : A) : iProp Σ :=
+Local Definition own_def `{!inG Σ A} (γ : gname) (a : A) : iProp Σ :=
   uPred_ownM (iRes_singleton γ a).
-Definition own_aux : seal (@own_def). Proof. by eexists. Qed.
+Local Definition own_aux : seal (@own_def). Proof. by eexists. Qed.
 Definition own := own_aux.(unseal).
 Arguments own {Σ A _} γ a.
-Definition own_eq : @own = @own_def := own_aux.(seal_eq).
-Instance: Params (@own) 4 := {}.
+Local Definition own_eq : @own = @own_def := own_aux.(seal_eq).
+Local Instance: Params (@own) 4 := {}.
 
 (** * Properties about ghost ownership *)
 Section global.
@@ -81,26 +81,28 @@ Context `{i : !inG Σ A}.
 Implicit Types a : A.
 
 (** ** Properties of [iRes_singleton] *)
-Lemma inG_unfold_fold (x : inG_apply i (iPrePropO Σ)) : inG_unfold (inG_fold x) ≡ x.
+Local Lemma inG_unfold_fold (x : inG_apply i (iPrePropO Σ)) :
+  inG_unfold (inG_fold x) ≡ x.
 Proof.
   rewrite /inG_unfold /inG_fold -rFunctor_map_compose -{2}[x]rFunctor_map_id.
   apply (ne_proper (rFunctor_map _)); split=> ?; apply iProp_unfold_fold.
 Qed.
-Lemma inG_fold_unfold (x : inG_apply i (iPropO Σ)) : inG_fold (inG_unfold x) ≡ x.
+Local Lemma inG_fold_unfold (x : inG_apply i (iPropO Σ)) :
+  inG_fold (inG_unfold x) ≡ x.
 Proof.
   rewrite /inG_unfold /inG_fold -rFunctor_map_compose -{2}[x]rFunctor_map_id.
   apply (ne_proper (rFunctor_map _)); split=> ?; apply iProp_fold_unfold.
 Qed.
-Lemma inG_unfold_validN n (x : inG_apply i (iPropO Σ)) :
+Local Lemma inG_unfold_validN n (x : inG_apply i (iPropO Σ)) :
   ✓{n} (inG_unfold x) ↔ ✓{n} x.
 Proof.
   split; [|apply (cmra_morphism_validN _)].
   move=> /(cmra_morphism_validN inG_fold). by rewrite inG_fold_unfold.
 Qed.
 
-Global Instance iRes_singleton_ne γ : NonExpansive (@iRes_singleton Σ A _ γ).
+Local Instance iRes_singleton_ne γ : NonExpansive (@iRes_singleton Σ A _ γ).
 Proof. by intros n a a' Ha; apply discrete_fun_singleton_ne; rewrite Ha. Qed.
-Lemma iRes_singleton_validI γ a : ✓ (iRes_singleton γ a) ⊢@{iPropI Σ} ✓ a.
+Local Lemma iRes_singleton_validI γ a : ✓ (iRes_singleton γ a) ⊢@{iPropI Σ} ✓ a.
 Proof.
   rewrite /iRes_singleton.
   rewrite discrete_fun_validI (forall_elim (inG_id i)) discrete_fun_lookup_singleton.
@@ -108,14 +110,14 @@ Proof.
   trans (✓ cmra_transport inG_prf a : iProp Σ)%I; last by destruct inG_prf.
   apply valid_entails=> n. apply inG_unfold_validN.
 Qed.
-Lemma iRes_singleton_op γ a1 a2 :
+Local Lemma iRes_singleton_op γ a1 a2 :
   iRes_singleton γ (a1 ⋅ a2) ≡ iRes_singleton γ a1 ⋅ iRes_singleton γ a2.
 Proof.
   rewrite /iRes_singleton discrete_fun_singleton_op singleton_op cmra_transport_op.
   f_equiv. apply: singletonM_proper. apply (cmra_morphism_op _).
 Qed.
 
-Global Instance iRes_singleton_discrete γ a :
+Local Instance iRes_singleton_discrete γ a :
   Discrete a → Discrete (iRes_singleton γ a).
 Proof.
   intros ?. rewrite /iRes_singleton.
@@ -124,14 +126,14 @@ Proof.
   { apply (discrete _). by rewrite -Hx inG_fold_unfold. }
   by rewrite Ha inG_unfold_fold.
 Qed.
-Global Instance iRes_singleton_core_id γ a :
+Local Instance iRes_singleton_core_id γ a :
   CoreId a → CoreId (iRes_singleton γ a).
 Proof.
   intros. apply discrete_fun_singleton_core_id, gmap_singleton_core_id.
   by rewrite /CoreId -cmra_morphism_pcore core_id.
 Qed.
 
-Lemma later_internal_eq_iRes_singleton γ a r :
+Local Lemma later_internal_eq_iRes_singleton γ a r :
   ▷ (r ≡ iRes_singleton γ a) ⊢@{iPropI Σ}
   ◇ ∃ b r', r ≡ iRes_singleton γ b ⋅ r' ∧ ▷ (a ≡ b).
 Proof.
-- 
GitLab