Commit 31a0912c authored by Robbert Krebbers's avatar Robbert Krebbers

Some additional results about `<affine>?p`.

parent c54aa817
...@@ -1144,6 +1144,13 @@ Proof. destruct p; simpl; auto using affinely_sep. Qed. ...@@ -1144,6 +1144,13 @@ Proof. destruct p; simpl; auto using affinely_sep. Qed.
Lemma affinely_if_idemp p P : <affine>?p <affine>?p P <affine>?p P. Lemma affinely_if_idemp p P : <affine>?p <affine>?p P <affine>?p P.
Proof. destruct p; simpl; auto using affinely_idemp. Qed. Proof. destruct p; simpl; auto using affinely_idemp. Qed.
Lemma affinely_if_and_l p P Q : <affine>?p P Q <affine>?p (P Q).
Proof. destruct p; simpl; auto using affinely_and_l. Qed.
Lemma affinely_if_and_r p P Q : P <affine>?p Q <affine>?p (P Q).
Proof. destruct p; simpl; auto using affinely_and_r. Qed.
Lemma affinely_if_and_lr p P Q : <affine>?p P Q P <affine>?p Q.
Proof. destruct p; simpl; auto using affinely_and_lr. Qed.
(* Conditional absorbingly modality *) (* Conditional absorbingly modality *)
Global Instance absorbingly_if_ne p : NonExpansive (@bi_absorbingly_if PROP p). Global Instance absorbingly_if_ne p : NonExpansive (@bi_absorbingly_if PROP p).
Proof. solve_proper. Qed. Proof. solve_proper. Qed.
...@@ -1468,10 +1475,14 @@ Global Instance persistently_persistent P : Persistent (<pers> P). ...@@ -1468,10 +1475,14 @@ Global Instance persistently_persistent P : Persistent (<pers> P).
Proof. by rewrite /Persistent persistently_idemp. Qed. Proof. by rewrite /Persistent persistently_idemp. Qed.
Global Instance affinely_persistent P : Persistent P Persistent (<affine> P). Global Instance affinely_persistent P : Persistent P Persistent (<affine> P).
Proof. rewrite /bi_affinely. apply _. Qed. Proof. rewrite /bi_affinely. apply _. Qed.
Global Instance affinely_if_persistent p P : Persistent P Persistent (<affine>?p P).
Proof. destruct p; simpl; apply _. Qed.
Global Instance intuitionistically_persistent P : Persistent ( P). Global Instance intuitionistically_persistent P : Persistent ( P).
Proof. rewrite /bi_intuitionistically. apply _. Qed. Proof. rewrite /bi_intuitionistically. apply _. Qed.
Global Instance absorbingly_persistent P : Persistent P Persistent (<absorb> P). Global Instance absorbingly_persistent P : Persistent P Persistent (<absorb> P).
Proof. rewrite /bi_absorbingly. apply _. Qed. Proof. rewrite /bi_absorbingly. apply _. Qed.
Global Instance absorbingly_if_persistent p P : Persistent P Persistent (<absorb>?p P).
Proof. destruct p; simpl; apply _. Qed.
Global Instance from_option_persistent {A} P (Ψ : A PROP) (mx : option A) : Global Instance from_option_persistent {A} P (Ψ : A PROP) (mx : option A) :
( x, Persistent (Ψ x)) Persistent P Persistent (from_option Ψ P mx). ( x, Persistent (Ψ x)) Persistent P Persistent (from_option Ψ P mx).
Proof. destruct mx; apply _. Qed. Proof. destruct mx; apply _. Qed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment