Commit 0ad1d2bd authored by Robbert Krebbers's avatar Robbert Krebbers

Rename `PersistentP` → `Persistent` and `TimelessP` → `Timeless`.

parent c311eeca
...@@ -126,7 +126,7 @@ Section list. ...@@ -126,7 +126,7 @@ Section list.
Proof. apply (big_opL_commute _). Qed. Proof. apply (big_opL_commute _). Qed.
Lemma big_sepL_forall Φ l : Lemma big_sepL_forall Φ l :
( k x, PersistentP (Φ k x)) ( k x, Persistent (Φ k x))
([ list] kx l, Φ k x) ( k x, l !! k = Some x Φ k x). ([ list] kx l, Φ k x) ( k x, l !! k = Some x Φ k x).
Proof. Proof.
intros HΦ. apply (anti_symm _). intros HΦ. apply (anti_symm _).
...@@ -150,23 +150,23 @@ Section list. ...@@ -150,23 +150,23 @@ Section list.
Qed. Qed.
Global Instance big_sepL_nil_persistent Φ : Global Instance big_sepL_nil_persistent Φ :
PersistentP ([ list] kx [], Φ k x). Persistent ([ list] kx [], Φ k x).
Proof. simpl; apply _. Qed. Proof. simpl; apply _. Qed.
Global Instance big_sepL_persistent Φ l : Global Instance big_sepL_persistent Φ l :
( k x, PersistentP (Φ k x)) PersistentP ([ list] kx l, Φ k x). ( k x, Persistent (Φ k x)) Persistent ([ list] kx l, Φ k x).
Proof. revert Φ. induction l as [|x l IH]=> Φ ? /=; apply _. Qed. Proof. revert Φ. induction l as [|x l IH]=> Φ ? /=; apply _. Qed.
Global Instance big_sepL_persistent_id Ps : Global Instance big_sepL_persistent_id Ps :
TCForall PersistentP Ps PersistentP ([] Ps). TCForall Persistent Ps Persistent ([] Ps).
Proof. induction 1; simpl; apply _. Qed. Proof. induction 1; simpl; apply _. Qed.
Global Instance big_sepL_nil_timeless Φ : Global Instance big_sepL_nil_timeless Φ :
TimelessP ([ list] kx [], Φ k x). Timeless ([ list] kx [], Φ k x).
Proof. simpl; apply _. Qed. Proof. simpl; apply _. Qed.
Global Instance big_sepL_timeless Φ l : Global Instance big_sepL_timeless Φ l :
( k x, TimelessP (Φ k x)) TimelessP ([ list] kx l, Φ k x). ( k x, Timeless (Φ k x)) Timeless ([ list] kx l, Φ k x).
Proof. revert Φ. induction l as [|x l IH]=> Φ ? /=; apply _. Qed. Proof. revert Φ. induction l as [|x l IH]=> Φ ? /=; apply _. Qed.
Global Instance big_sepL_timeless_id Ps : Global Instance big_sepL_timeless_id Ps :
TCForall TimelessP Ps TimelessP ([] Ps). TCForall Timeless Ps Timeless ([] Ps).
Proof. induction 1; simpl; apply _. Qed. Proof. induction 1; simpl; apply _. Qed.
End list. End list.
...@@ -316,7 +316,7 @@ Section gmap. ...@@ -316,7 +316,7 @@ Section gmap.
Proof. apply (big_opM_commute _). Qed. Proof. apply (big_opM_commute _). Qed.
Lemma big_sepM_forall Φ m : Lemma big_sepM_forall Φ m :
( k x, PersistentP (Φ k x)) ( k x, Persistent (Φ k x))
([ map] kx m, Φ k x) ( k x, m !! k = Some x Φ k x). ([ map] kx m, Φ k x) ( k x, m !! k = Some x Φ k x).
Proof. Proof.
intros. apply (anti_symm _). intros. apply (anti_symm _).
...@@ -343,16 +343,16 @@ Section gmap. ...@@ -343,16 +343,16 @@ Section gmap.
Qed. Qed.
Global Instance big_sepM_empty_persistent Φ : Global Instance big_sepM_empty_persistent Φ :
PersistentP ([ map] kx , Φ k x). Persistent ([ map] kx , Φ k x).
Proof. rewrite /big_opM map_to_list_empty. apply _. Qed. Proof. rewrite /big_opM map_to_list_empty. apply _. Qed.
Global Instance big_sepM_persistent Φ m : Global Instance big_sepM_persistent Φ m :
( k x, PersistentP (Φ k x)) PersistentP ([ map] kx m, Φ k x). ( k x, Persistent (Φ k x)) Persistent ([ map] kx m, Φ k x).
Proof. intros. apply big_sepL_persistent=> _ [??]; apply _. Qed. Proof. intros. apply big_sepL_persistent=> _ [??]; apply _. Qed.
Global Instance big_sepM_nil_timeless Φ : Global Instance big_sepM_nil_timeless Φ :
TimelessP ([ map] kx , Φ k x). Timeless ([ map] kx , Φ k x).
Proof. rewrite /big_opM map_to_list_empty. apply _. Qed. Proof. rewrite /big_opM map_to_list_empty. apply _. Qed.
Global Instance big_sepM_timeless Φ m : Global Instance big_sepM_timeless Φ m :
( k x, TimelessP (Φ k x)) TimelessP ([ map] kx m, Φ k x). ( k x, Timeless (Φ k x)) Timeless ([ map] kx m, Φ k x).
Proof. intros. apply big_sepL_timeless=> _ [??]; apply _. Qed. Proof. intros. apply big_sepL_timeless=> _ [??]; apply _. Qed.
End gmap. End gmap.
...@@ -468,7 +468,7 @@ Section gset. ...@@ -468,7 +468,7 @@ Section gset.
Proof. apply (big_opS_commute _). Qed. Proof. apply (big_opS_commute _). Qed.
Lemma big_sepS_forall Φ X : Lemma big_sepS_forall Φ X :
( x, PersistentP (Φ x)) ([ set] x X, Φ x) ( x, x X Φ x). ( x, Persistent (Φ x)) ([ set] x X, Φ x) ( x, x X Φ x).
Proof. Proof.
intros. apply (anti_symm _). intros. apply (anti_symm _).
{ apply forall_intro=> x. { apply forall_intro=> x.
...@@ -490,15 +490,15 @@ Section gset. ...@@ -490,15 +490,15 @@ Section gset.
by rewrite -always_wand_impl always_elim wand_elim_l. by rewrite -always_wand_impl always_elim wand_elim_l.
Qed. Qed.
Global Instance big_sepS_empty_persistent Φ : PersistentP ([ set] x , Φ x). Global Instance big_sepS_empty_persistent Φ : Persistent ([ set] x , Φ x).
Proof. rewrite /big_opS elements_empty. apply _. Qed. Proof. rewrite /big_opS elements_empty. apply _. Qed.
Global Instance big_sepS_persistent Φ X : Global Instance big_sepS_persistent Φ X :
( x, PersistentP (Φ x)) PersistentP ([ set] x X, Φ x). ( x, Persistent (Φ x)) Persistent ([ set] x X, Φ x).
Proof. rewrite /big_opS. apply _. Qed. Proof. rewrite /big_opS. apply _. Qed.
Global Instance big_sepS_nil_timeless Φ : TimelessP ([ set] x , Φ x). Global Instance big_sepS_nil_timeless Φ : Timeless ([ set] x , Φ x).
Proof. rewrite /big_opS elements_empty. apply _. Qed. Proof. rewrite /big_opS elements_empty. apply _. Qed.
Global Instance big_sepS_timeless Φ X : Global Instance big_sepS_timeless Φ X :
( x, TimelessP (Φ x)) TimelessP ([ set] x X, Φ x). ( x, Timeless (Φ x)) Timeless ([ set] x X, Φ x).
Proof. rewrite /big_opS. apply _. Qed. Proof. rewrite /big_opS. apply _. Qed.
End gset. End gset.
...@@ -578,15 +578,15 @@ Section gmultiset. ...@@ -578,15 +578,15 @@ Section gmultiset.
?q ([ mset] y X, Φ y) ([ mset] y X, ?q Φ y). ?q ([ mset] y X, Φ y) ([ mset] y X, ?q Φ y).
Proof. apply (big_opMS_commute _). Qed. Proof. apply (big_opMS_commute _). Qed.
Global Instance big_sepMS_empty_persistent Φ : PersistentP ([ mset] x , Φ x). Global Instance big_sepMS_empty_persistent Φ : Persistent ([ mset] x , Φ x).
Proof. rewrite /big_opMS gmultiset_elements_empty. apply _. Qed. Proof. rewrite /big_opMS gmultiset_elements_empty. apply _. Qed.
Global Instance big_sepMS_persistent Φ X : Global Instance big_sepMS_persistent Φ X :
( x, PersistentP (Φ x)) PersistentP ([ mset] x X, Φ x). ( x, Persistent (Φ x)) Persistent ([ mset] x X, Φ x).
Proof. rewrite /big_opMS. apply _. Qed. Proof. rewrite /big_opMS. apply _. Qed.
Global Instance big_sepMS_nil_timeless Φ : TimelessP ([ mset] x , Φ x). Global Instance big_sepMS_nil_timeless Φ : Timeless ([ mset] x , Φ x).
Proof. rewrite /big_opMS gmultiset_elements_empty. apply _. Qed. Proof. rewrite /big_opMS gmultiset_elements_empty. apply _. Qed.
Global Instance big_sepMS_timeless Φ X : Global Instance big_sepMS_timeless Φ X :
( x, TimelessP (Φ x)) TimelessP ([ mset] x X, Φ x). ( x, Timeless (Φ x)) Timeless ([ mset] x X, Φ x).
Proof. rewrite /big_opMS. apply _. Qed. Proof. rewrite /big_opMS. apply _. Qed.
End gmultiset. End gmultiset.
End big_op. End big_op.
......
This diff is collapsed.
...@@ -30,9 +30,9 @@ Section definitions. ...@@ -30,9 +30,9 @@ Section definitions.
Proof. solve_proper. Qed. Proof. solve_proper. Qed.
Global Instance auth_own_proper : Proper (() ==> ()) auth_own. Global Instance auth_own_proper : Proper (() ==> ()) auth_own.
Proof. solve_proper. Qed. Proof. solve_proper. Qed.
Global Instance auth_own_timeless a : TimelessP (auth_own a). Global Instance auth_own_timeless a : Timeless (auth_own a).
Proof. apply _. Qed. Proof. apply _. Qed.
Global Instance auth_own_core_id a : CoreId a PersistentP (auth_own a). Global Instance auth_own_core_id a : CoreId a Persistent (auth_own a).
Proof. apply _. Qed. Proof. apply _. Qed.
Global Instance auth_inv_ne n : Global Instance auth_inv_ne n :
...@@ -51,7 +51,7 @@ Section definitions. ...@@ -51,7 +51,7 @@ Section definitions.
Proper (pointwise_relation T () ==> Proper (pointwise_relation T () ==>
pointwise_relation T () ==> ()) (auth_ctx N). pointwise_relation T () ==> ()) (auth_ctx N).
Proof. solve_proper. Qed. Proof. solve_proper. Qed.
Global Instance auth_ctx_persistent N f φ : PersistentP (auth_ctx N f φ). Global Instance auth_ctx_persistent N f φ : Persistent (auth_ctx N f φ).
Proof. apply _. Qed. Proof. apply _. Qed.
End definitions. End definitions.
......
...@@ -65,7 +65,7 @@ Proof. solve_contractive. Qed. ...@@ -65,7 +65,7 @@ Proof. solve_contractive. Qed.
Global Instance slice_proper γ : Proper (() ==> ()) (slice N γ). Global Instance slice_proper γ : Proper (() ==> ()) (slice N γ).
Proof. apply ne_proper, _. Qed. Proof. apply ne_proper, _. Qed.
Global Instance slice_persistent γ P : PersistentP (slice N γ P). Global Instance slice_persistent γ P : Persistent (slice N γ P).
Proof. apply _. Qed. Proof. apply _. Qed.
Global Instance box_contractive f : Contractive (box N f). Global Instance box_contractive f : Contractive (box N f).
......
...@@ -24,7 +24,7 @@ Instance: Params (@cinv) 5. ...@@ -24,7 +24,7 @@ Instance: Params (@cinv) 5.
Section proofs. Section proofs.
Context `{invG Σ, cinvG Σ}. Context `{invG Σ, cinvG Σ}.
Global Instance cinv_own_timeless γ p : TimelessP (cinv_own γ p). Global Instance cinv_own_timeless γ p : Timeless (cinv_own γ p).
Proof. rewrite /cinv_own; apply _. Qed. Proof. rewrite /cinv_own; apply _. Qed.
Global Instance cinv_contractive N γ : Contractive (cinv N γ). Global Instance cinv_contractive N γ : Contractive (cinv N γ).
...@@ -34,7 +34,7 @@ Section proofs. ...@@ -34,7 +34,7 @@ Section proofs.
Global Instance cinv_proper N γ : Proper (() ==> ()) (cinv N γ). Global Instance cinv_proper N γ : Proper (() ==> ()) (cinv N γ).
Proof. exact: ne_proper. Qed. Proof. exact: ne_proper. Qed.
Global Instance cinv_persistent N γ P : PersistentP (cinv N γ P). Global Instance cinv_persistent N γ P : Persistent (cinv N γ P).
Proof. rewrite /cinv; apply _. Qed. Proof. rewrite /cinv; apply _. Qed.
Global Instance cinv_own_fractionnal γ : Fractional (cinv_own γ). Global Instance cinv_own_fractionnal γ : Fractional (cinv_own γ).
......
...@@ -15,7 +15,7 @@ Import uPred. ...@@ -15,7 +15,7 @@ Import uPred.
*) *)
Definition coreP {M : ucmraT} (P : uPred M) : uPred M := Definition coreP {M : ucmraT} (P : uPred M) : uPred M :=
( `(!PersistentP Q), P Q Q)%I. ( `(!Persistent Q), P Q Q)%I.
Instance: Params (@coreP) 1. Instance: Params (@coreP) 1.
Typeclasses Opaque coreP. Typeclasses Opaque coreP.
...@@ -26,7 +26,7 @@ Section core. ...@@ -26,7 +26,7 @@ Section core.
Lemma coreP_intro P : P - coreP P. Lemma coreP_intro P : P - coreP P.
Proof. rewrite /coreP. iIntros "HP". by iIntros (Q HQ ->). Qed. Proof. rewrite /coreP. iIntros "HP". by iIntros (Q HQ ->). Qed.
Global Instance coreP_persistent P : PersistentP (coreP P). Global Instance coreP_persistent P : Persistent (coreP P).
Proof. rewrite /coreP. apply _. Qed. Proof. rewrite /coreP. apply _. Qed.
Global Instance coreP_mono : Proper (() ==> ()) (@coreP M). Global Instance coreP_mono : Proper (() ==> ()) (@coreP M).
...@@ -38,7 +38,7 @@ Section core. ...@@ -38,7 +38,7 @@ Section core.
Global Instance coreP_proper : Proper (() ==> ()) (@coreP M). Global Instance coreP_proper : Proper (() ==> ()) (@coreP M).
Proof. intros P Q. rewrite !equiv_spec=>-[??]. by split; apply coreP_mono. Qed. Proof. intros P Q. rewrite !equiv_spec=>-[??]. by split; apply coreP_mono. Qed.
Lemma coreP_elim P : PersistentP P coreP P - P. Lemma coreP_elim P : Persistent P coreP P - P.
Proof. rewrite /coreP. iIntros (?) "HCP". unshelve iApply ("HCP" $! P); auto. Qed. Proof. rewrite /coreP. iIntros (?) "HCP". unshelve iApply ("HCP" $! P); auto. Qed.
Lemma coreP_wand P Q : Lemma coreP_wand P Q :
......
...@@ -12,7 +12,7 @@ Module savedprop. Section savedprop. ...@@ -12,7 +12,7 @@ Module savedprop. Section savedprop.
(** Saved Propositions and the update modality *) (** Saved Propositions and the update modality *)
Context (sprop : Type) (saved : sprop iProp iProp). Context (sprop : Type) (saved : sprop iProp iProp).
Hypothesis sprop_persistent : i P, PersistentP (saved i P). Hypothesis sprop_persistent : i P, Persistent (saved i P).
Hypothesis sprop_alloc_dep : Hypothesis sprop_alloc_dep :
(P : sprop iProp), (|==> ( i, saved i (P i)))%I. (P : sprop iProp), (|==> ( i, saved i (P i)))%I.
Hypothesis sprop_agree : i P Q, saved i P saved i Q (P Q). Hypothesis sprop_agree : i P Q, saved i P saved i Q (P Q).
...@@ -69,7 +69,7 @@ Module inv. Section inv. ...@@ -69,7 +69,7 @@ Module inv. Section inv.
(** We have invariants *) (** We have invariants *)
Context (name : Type) (inv : name iProp iProp). Context (name : Type) (inv : name iProp iProp).
Hypothesis inv_persistent : i P, PersistentP (inv i P). Hypothesis inv_persistent : i P, Persistent (inv i P).
Hypothesis inv_alloc : P, P fupd M1 ( i, inv i P). Hypothesis inv_alloc : P, P fupd M1 ( i, inv i P).
Hypothesis inv_open : Hypothesis inv_open :
i P Q R, (P Q fupd M0 (P R)) (inv i P Q fupd M1 R). i P Q R, (P Q fupd M0 (P R)) (inv i P Q fupd M1 R).
...@@ -132,7 +132,7 @@ Module inv. Section inv. ...@@ -132,7 +132,7 @@ Module inv. Section inv.
(** Now to the actual counterexample. We start with a weird form of saved propositions. *) (** Now to the actual counterexample. We start with a weird form of saved propositions. *)
Definition saved (γ : gname) (P : iProp) : iProp := Definition saved (γ : gname) (P : iProp) : iProp :=
i, inv i (start γ (finished γ P)). i, inv i (start γ (finished γ P)).
Global Instance saved_persistent γ P : PersistentP (saved γ P) := _. Global Instance saved_persistent γ P : Persistent (saved γ P) := _.
Lemma saved_alloc (P : gname iProp) : fupd M1 ( γ, saved γ (P γ)). Lemma saved_alloc (P : gname iProp) : fupd M1 ( γ, saved γ (P γ)).
Proof. Proof.
...@@ -165,7 +165,7 @@ Module inv. Section inv. ...@@ -165,7 +165,7 @@ Module inv. Section inv.
(** And now we tie a bad knot. *) (** And now we tie a bad knot. *)
Notation "¬ P" := ( (P - fupd M1 False))%I : uPred_scope. Notation "¬ P" := ( (P - fupd M1 False))%I : uPred_scope.
Definition A i : iProp := P, ¬P saved i P. Definition A i : iProp := P, ¬P saved i P.
Global Instance A_persistent i : PersistentP (A i) := _. Global Instance A_persistent i : Persistent (A i) := _.
Lemma A_alloc : fupd M1 ( i, saved i (A i)). Lemma A_alloc : fupd M1 ( i, saved i (A i)).
Proof. by apply saved_alloc. Qed. Proof. by apply saved_alloc. Qed.
......
...@@ -13,7 +13,7 @@ Notation "P ={ E1 , E2 }=> Q" := (vs E1 E2 P Q) ...@@ -13,7 +13,7 @@ Notation "P ={ E1 , E2 }=> Q" := (vs E1 E2 P Q)
format "P ={ E1 , E2 }=> Q") : uPred_scope. format "P ={ E1 , E2 }=> Q") : uPred_scope.
Context (vs_ne : E1 E2, NonExpansive2 (vs E1 E2)). Context (vs_ne : E1 E2, NonExpansive2 (vs E1 E2)).
Context (vs_persistent : E1 E2 P Q, PersistentP (P ={E1,E2}=> Q)). Context (vs_persistent : E1 E2 P Q, Persistent (P ={E1,E2}=> Q)).
Context (vs_impl : E P Q, (P Q) P ={E,E}=> Q). Context (vs_impl : E P Q, (P Q) P ={E,E}=> Q).
Context (vs_transitive : E1 E2 E3 P Q R, Context (vs_transitive : E1 E2 E3 P Q R,
...@@ -24,7 +24,7 @@ Context (vs_frame_r : ∀ E1 E2 P Q R, (P ={E1,E2}=> Q) ⊢ P ∗ R ={E1,E2}=> Q ...@@ -24,7 +24,7 @@ Context (vs_frame_r : ∀ E1 E2 P Q R, (P ={E1,E2}=> Q) ⊢ P ∗ R ={E1,E2}=> Q
Context (vs_exists : {A} E1 E2 (Φ : A uPred M) Q, Context (vs_exists : {A} E1 E2 (Φ : A uPred M) Q,
( x, Φ x ={E1,E2}=> Q) ( x, Φ x) ={E1,E2}=> Q). ( x, Φ x ={E1,E2}=> Q) ( x, Φ x) ={E1,E2}=> Q).
Context (vs_persistent_intro_r : E1 E2 P Q R, Context (vs_persistent_intro_r : E1 E2 P Q R,
PersistentP R Persistent R
(R - (P ={E1,E2}=> Q)) P R ={E1,E2}=> Q). (R - (P ={E1,E2}=> Q)) P R ={E1,E2}=> Q).
Definition fupd (E1 E2 : coPset) (P : uPred M) : uPred M := Definition fupd (E1 E2 : coPset) (P : uPred M) : uPred M :=
......
...@@ -50,7 +50,7 @@ Section fractional. ...@@ -50,7 +50,7 @@ Section fractional.
(** Fractional and logical connectives *) (** Fractional and logical connectives *)
Global Instance persistent_fractional P : Global Instance persistent_fractional P :
PersistentP P Fractional (λ _, P). Persistent P Fractional (λ _, P).
Proof. intros HP q q'. by apply uPred.always_sep_dup. Qed. Proof. intros HP q q'. by apply uPred.always_sep_dup. Qed.
Global Instance fractional_sep Φ Ψ : Global Instance fractional_sep Φ Ψ :
......
...@@ -82,7 +82,7 @@ Section gen_heap. ...@@ -82,7 +82,7 @@ Section gen_heap.
Implicit Types v : V. Implicit Types v : V.
(** General properties of mapsto *) (** General properties of mapsto *)
Global Instance mapsto_timeless l q v : TimelessP (l {q} v). Global Instance mapsto_timeless l q v : Timeless (l {q} v).
Proof. rewrite mapsto_eq /mapsto_def. apply _. Qed. Proof. rewrite mapsto_eq /mapsto_def. apply _. Qed.
Global Instance mapsto_fractional l v : Fractional (λ q, l {q} v)%I. Global Instance mapsto_fractional l v : Fractional (λ q, l {q} v)%I.
Proof. Proof.
......
...@@ -31,7 +31,7 @@ Proof. apply contractive_ne, _. Qed. ...@@ -31,7 +31,7 @@ Proof. apply contractive_ne, _. Qed.
Global Instance inv_Proper N : Proper (() ==> ()) (inv N). Global Instance inv_Proper N : Proper (() ==> ()) (inv N).
Proof. apply ne_proper, _. Qed. Proof. apply ne_proper, _. Qed.
Global Instance inv_persistent N P : PersistentP (inv N P). Global Instance inv_persistent N P : Persistent (inv N P).
Proof. rewrite inv_eq /inv; apply _. Qed. Proof. rewrite inv_eq /inv; apply _. Qed.
Lemma fresh_inv_name (E : gset positive) N : i, i E i (N:coPset). Lemma fresh_inv_name (E : gset positive) N : i, i E i (N:coPset).
...@@ -81,7 +81,7 @@ Proof. ...@@ -81,7 +81,7 @@ Proof.
iIntros "HP [Hw $] !> !>". iApply ownI_close; by iFrame. iIntros "HP [Hw $] !> !>". iApply ownI_close; by iFrame.
Qed. Qed.
Lemma inv_open_timeless E N P `{!TimelessP P} : Lemma inv_open_timeless E N P `{!Timeless P} :
N E inv N P ={E,E∖↑N}= P (P ={E∖↑N,E}= True). N E inv N P ={E,E∖↑N}= P (P ={E∖↑N,E}= True).
Proof. Proof.
iIntros (?) "Hinv". iMod (inv_open with "Hinv") as "[>HP Hclose]"; auto. iIntros (?) "Hinv". iMod (inv_open with "Hinv") as "[>HP Hclose]"; auto.
......
...@@ -32,7 +32,7 @@ Typeclasses Opaque na_own na_inv. ...@@ -32,7 +32,7 @@ Typeclasses Opaque na_own na_inv.
Section proofs. Section proofs.
Context `{invG Σ, na_invG Σ}. Context `{invG Σ, na_invG Σ}.
Global Instance na_own_timeless p E : TimelessP (na_own p E). Global Instance na_own_timeless p E : Timeless (na_own p E).
Proof. rewrite /na_own; apply _. Qed. Proof. rewrite /na_own; apply _. Qed.
Global Instance na_inv_ne p N : NonExpansive (na_inv p N). Global Instance na_inv_ne p N : NonExpansive (na_inv p N).
...@@ -40,7 +40,7 @@ Section proofs. ...@@ -40,7 +40,7 @@ Section proofs.
Global Instance na_inv_proper p N : Proper (() ==> ()) (na_inv p N). Global Instance na_inv_proper p N : Proper (() ==> ()) (na_inv p N).
Proof. apply (ne_proper _). Qed. Proof. apply (ne_proper _). Qed.
Global Instance na_inv_persistent p N P : PersistentP (na_inv p N P). Global Instance na_inv_persistent p N P : Persistent (na_inv p N P).
Proof. rewrite /na_inv; apply _. Qed. Proof. rewrite /na_inv; apply _. Qed.
Lemma na_alloc : (|==> p, na_own p )%I. Lemma na_alloc : (|==> p, na_own p )%I.
......
...@@ -106,9 +106,9 @@ Proof. apply: uPred.always_entails_r. apply own_valid. Qed. ...@@ -106,9 +106,9 @@ Proof. apply: uPred.always_entails_r. apply own_valid. Qed.
Lemma own_valid_l γ a : own γ a a own γ a. Lemma own_valid_l γ a : own γ a a own γ a.
Proof. by rewrite comm -own_valid_r. Qed. Proof. by rewrite comm -own_valid_r. Qed.
Global Instance own_timeless γ a : Discrete a TimelessP (own γ a). Global Instance own_timeless γ a : Discrete a Timeless (own γ a).
Proof. rewrite !own_eq /own_def; apply _. Qed. Proof. rewrite !own_eq /own_def; apply _. Qed.
Global Instance own_core_persistent γ a : CoreId a PersistentP (own γ a). Global Instance own_core_persistent γ a : CoreId a Persistent (own γ a).
Proof. rewrite !own_eq /own_def; apply _. Qed. Proof. rewrite !own_eq /own_def; apply _. Qed.
(** ** Allocation *) (** ** Allocation *)
......
...@@ -23,7 +23,7 @@ Section saved_prop. ...@@ -23,7 +23,7 @@ Section saved_prop.
Implicit Types x y : F (iProp Σ). Implicit Types x y : F (iProp Σ).
Implicit Types γ : gname. Implicit Types γ : gname.
Global Instance saved_prop_persistent γ x : PersistentP (saved_prop_own γ x). Global Instance saved_prop_persistent γ x : Persistent (saved_prop_own γ x).
Proof. rewrite /saved_prop_own; apply _. Qed. Proof. rewrite /saved_prop_own; apply _. Qed.
Lemma saved_prop_alloc_strong x (G : gset gname) : Lemma saved_prop_alloc_strong x (G : gset gname) :
......
...@@ -43,11 +43,11 @@ Section definitions. ...@@ -43,11 +43,11 @@ Section definitions.
Global Instance sts_ctx_proper `{!invG Σ} N : Global Instance sts_ctx_proper `{!invG Σ} N :
Proper (pointwise_relation _ () ==> ()) (sts_ctx N). Proper (pointwise_relation _ () ==> ()) (sts_ctx N).
Proof. solve_proper. Qed. Proof. solve_proper. Qed.
Global Instance sts_ctx_persistent `{!invG Σ} N φ : PersistentP (sts_ctx N φ). Global Instance sts_ctx_persistent `{!invG Σ} N φ : Persistent (sts_ctx N φ).
Proof. apply _. Qed. Proof. apply _. Qed.
Global Instance sts_own_persistent s : PersistentP (sts_own s ). Global Instance sts_own_persistent s : Persistent (sts_own s ).
Proof. apply _. Qed. Proof. apply _. Qed.
Global Instance sts_ownS_persistent S : PersistentP (sts_ownS S ). Global Instance sts_ownS_persistent S : Persistent (sts_ownS S ).
Proof. apply _. Qed. Proof. apply _. Qed.
End definitions. End definitions.
......
...@@ -41,7 +41,7 @@ Proof. solve_proper. Qed. ...@@ -41,7 +41,7 @@ Proof. solve_proper. Qed.
Lemma vs_false_elim E1 E2 P : False ={E1,E2}=> P. Lemma vs_false_elim E1 E2 P : False ={E1,E2}=> P.
Proof. iIntros "!# []". Qed. Proof. iIntros "!# []". Qed.
Lemma vs_timeless E P : TimelessP P P ={E}=> P. Lemma vs_timeless E P : Timeless P P ={E}=> P.
Proof. by iIntros (?) "!# > ?". Qed. Proof. by iIntros (?) "!# > ?". Qed.
Lemma vs_transitive E1 E2 E3 P Q R : Lemma vs_transitive E1 E2 E3 P Q R :
......
...@@ -49,7 +49,7 @@ Instance invariant_unfold_contractive : Contractive (@invariant_unfold Σ). ...@@ -49,7 +49,7 @@ Instance invariant_unfold_contractive : Contractive (@invariant_unfold Σ).
Proof. solve_contractive. Qed. Proof. solve_contractive. Qed.
Global Instance ownI_contractive i : Contractive (@ownI Σ _ i). Global Instance ownI_contractive i : Contractive (@ownI Σ _ i).
Proof. solve_contractive. Qed. Proof. solve_contractive. Qed.
Global Instance ownI_persistent i P : PersistentP (ownI i P). Global Instance ownI_persistent i P : Persistent (ownI i P).
Proof. rewrite /ownI. apply _. Qed. Proof. rewrite /ownI. apply _. Qed.
Lemma ownE_empty : (|==> ownE )%I. Lemma ownE_empty : (|==> ownE )%I.
......
...@@ -29,7 +29,7 @@ Section mono_proof. ...@@ -29,7 +29,7 @@ Section mono_proof.
( γ, inv N (mcounter_inv γ l) own γ ( (n : mnat)))%I. ( γ, inv N (mcounter_inv γ l) own γ ( (n : mnat)))%I.
(** The main proofs. *) (** The main proofs. *)
Global Instance mcounter_persistent l n : PersistentP (mcounter l n). Global Instance mcounter_persistent l n : Persistent (mcounter l n).
Proof. apply _. Qed. Proof. apply _. Qed.
Lemma newcounter_mono_spec : Lemma newcounter_mono_spec :
......
...@@ -14,8 +14,8 @@ Structure lock Σ `{!heapG Σ} := Lock { ...@@ -14,8 +14,8 @@ Structure lock Σ `{!heapG Σ} := Lock {
locked (γ: name) : iProp Σ; locked (γ: name) : iProp Σ;
(* -- general properties -- *) (* -- general properties -- *)
is_lock_ne N γ lk : NonExpansive (is_lock N γ lk); is_lock_ne N γ lk : NonExpansive (is_lock N γ lk);
is_lock_persistent N γ lk R : PersistentP (is_lock N γ lk R); is_lock_persistent N γ lk R : Persistent (is_lock N γ lk R);
locked_timeless γ : TimelessP (locked γ); locked_timeless γ : Timeless (locked γ);
locked_exclusive γ : locked γ - locked γ - False; locked_exclusive γ : locked γ - locked γ - False;
(* -- operation specs -- *) (* -- operation specs -- *)
newlock_spec N (R : iProp Σ) :