Skip to content
Snippets Groups Projects
Commit 7041c043 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

`(P → Q) ⊣⊢ ∃ R, R ∧ <pers> (P ∧ R -∗ Q)` holds for general BIs.

parent f426901d
No related branches found
No related tags found
No related merge requests found
...@@ -962,16 +962,6 @@ Section persistently_affine_bi. ...@@ -962,16 +962,6 @@ Section persistently_affine_bi.
rewrite assoc -persistently_and_sep_r. rewrite assoc -persistently_and_sep_r.
by rewrite persistently_elim impl_elim_r. by rewrite persistently_elim impl_elim_r.
Qed. Qed.
Lemma impl_alt P Q : (P Q) ⊣⊢ R, R <pers> (P R -∗ Q).
Proof.
apply (anti_symm ()).
- rewrite -(right_id True%I bi_and (P Q)%I) -(exist_intro (P Q)%I).
apply and_mono_r. rewrite -persistently_pure.
apply persistently_intro', wand_intro_l.
by rewrite impl_elim_r persistently_pure right_id.
- apply exist_elim=> R. apply impl_intro_l.
by rewrite assoc persistently_and_sep_r persistently_elim wand_elim_r.
Qed.
End persistently_affine_bi. End persistently_affine_bi.
(* The intuitionistic modality *) (* The intuitionistic modality *)
...@@ -1082,6 +1072,16 @@ Proof. ...@@ -1082,6 +1072,16 @@ Proof.
apply sep_mono; first done. apply and_elim_r. apply sep_mono; first done. apply and_elim_r.
Qed. Qed.
Lemma impl_alt P Q : (P Q) ⊣⊢ R, R <pers> (P R -∗ Q).
Proof.
apply (anti_symm ()).
- rewrite -(right_id True%I bi_and (P Q)%I) -(exist_intro (P Q)%I).
apply and_mono_r. rewrite impl_elim_r -entails_wand //.
apply persistently_emp_intro.
- apply exist_elim=> R. apply impl_intro_l.
rewrite assoc persistently_and_intuitionistically_sep_r.
by rewrite intuitionistically_elim wand_elim_r.
Qed.
Section bi_affine_intuitionistically. Section bi_affine_intuitionistically.
Context `{BiAffine PROP}. Context `{BiAffine PROP}.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment