diff --git a/theories/bi/derived_laws_bi.v b/theories/bi/derived_laws_bi.v index c8e0f57dd67146e83b85be8818b87f562aa2b505..d9ed36cb0e1e092c593b06f6879c5d4585877ef6 100644 --- a/theories/bi/derived_laws_bi.v +++ b/theories/bi/derived_laws_bi.v @@ -2,6 +2,13 @@ From iris.bi Require Export derived_connectives. From iris.algebra Require Import monoid. From stdpp Require Import hlist. +(** Naming schema for lemmas about modalities: + M1_into_M2: M1 P ⊢ M2 P + M1_M2_elim: M1 (M2 P) ⊣⊢ M1 P + M1_elim_M2: M1 (M2 P) ⊣⊢ M2 P + M1_M2: M1 (M2 P) ⊣⊢ M2 (M1 P) +*) + Module bi. Import interface.bi. Section bi_derived. @@ -605,7 +612,7 @@ Proof. by rewrite /bi_absorbingly !assoc (comm _ P). Qed. Lemma absorbingly_sep_lr P Q : <absorb> P ∗ Q ⊣⊢ P ∗ <absorb> Q. Proof. by rewrite absorbingly_sep_l absorbingly_sep_r. Qed. -Lemma affinely_absorbingly `{!BiPositive PROP} P : <affine> <absorb> P ⊣⊢ <affine> P. +Lemma affinely_absorbingly_elim `{!BiPositive PROP} P : <affine> <absorb> P ⊣⊢ <affine> P. Proof. apply (anti_symm _), affinely_mono, absorbingly_intro. by rewrite /bi_absorbingly affinely_sep affinely_True_emp affinely_emp left_id. @@ -714,7 +721,7 @@ Global Instance persistently_flip_mono' : Proper (flip (⊢) ==> flip (⊢)) (@bi_persistently PROP). Proof. intros P Q; apply persistently_mono. Qed. -Lemma absorbingly_persistently P : <absorb> <pers> P ⊣⊢ <pers> P. +Lemma absorbingly_elim_persistently P : <absorb> <pers> P ⊣⊢ <pers> P. Proof. apply (anti_symm _), absorbingly_intro. by rewrite /bi_absorbingly comm persistently_absorbing. @@ -776,16 +783,16 @@ Proof. Qed. Lemma persistently_and_emp_elim P : emp ∧ <pers> P ⊢ P. Proof. by rewrite comm persistently_and_sep_elim_emp right_id and_elim_r. Qed. -Lemma persistently_elim_absorbingly P : <pers> P ⊢ <absorb> P. +Lemma persistently_into_absorbingly P : <pers> P ⊢ <absorb> P. Proof. rewrite -(right_id True%I _ (<pers> _)%I) -{1}(left_id emp%I _ True%I). by rewrite persistently_and_sep_assoc (comm bi_and) persistently_and_emp_elim comm. Qed. Lemma persistently_elim P `{!Absorbing P} : <pers> P ⊢ P. -Proof. by rewrite persistently_elim_absorbingly absorbing_absorbingly. Qed. +Proof. by rewrite persistently_into_absorbingly absorbing_absorbingly. Qed. Lemma persistently_idemp_1 P : <pers> <pers> P ⊢ <pers> P. -Proof. by rewrite persistently_elim_absorbingly absorbingly_persistently. Qed. +Proof. by rewrite persistently_into_absorbingly absorbingly_elim_persistently. Qed. Lemma persistently_idemp P : <pers> <pers> P ⊣⊢ <pers> P. Proof. apply (anti_symm _); auto using persistently_idemp_1, persistently_idemp_2. Qed. @@ -795,7 +802,7 @@ Proof. intros <-. apply persistently_idemp_2. Qed. Lemma persistently_pure φ : <pers> ⌜φ⌠⊣⊢ ⌜φâŒ. Proof. apply (anti_symm _). - { by rewrite persistently_elim_absorbingly absorbingly_pure. } + { by rewrite persistently_into_absorbingly absorbingly_pure. } apply pure_elim'=> Hφ. trans (∀ x : False, <pers> True : PROP)%I; [by apply forall_intro|]. rewrite persistently_forall_2. auto using persistently_mono, pure_intro. @@ -824,7 +831,7 @@ Proof. by rewrite persistently_and_sep_assoc (comm bi_and) persistently_and_emp_elim. Qed. -Lemma persistently_affinely P : <pers> <affine> P ⊣⊢ <pers> P. +Lemma persistently_affinely_elim P : <pers> <affine> P ⊣⊢ <pers> P. Proof. by rewrite /bi_affinely persistently_and -persistently_True_emp persistently_pure left_id. @@ -842,7 +849,7 @@ Proof. by rewrite -persistently_and_sep persistently_and -and_sep_persistently. Lemma persistently_sep `{BiPositive PROP} P Q : <pers> (P ∗ Q) ⊣⊢ <pers> P ∗ <pers> Q. Proof. apply (anti_symm _); auto using persistently_sep_2. - rewrite -persistently_affinely affinely_sep -and_sep_persistently. apply and_intro. + rewrite -persistently_affinely_elim affinely_sep -and_sep_persistently. apply and_intro. - by rewrite (affinely_elim_emp Q) right_id affinely_elim. - by rewrite (affinely_elim_emp P) left_id affinely_elim. Qed. @@ -858,7 +865,8 @@ Qed. Lemma persistently_alt_fixpoint' P : <pers> P ⊣⊢ <affine> P ∗ <pers> P. Proof. - rewrite -{1}persistently_affinely {1}persistently_alt_fixpoint persistently_affinely //. + rewrite -{1}persistently_affinely_elim {1}persistently_alt_fixpoint + persistently_affinely_elim //. Qed. Lemma persistently_wand P Q : <pers> (P -∗ Q) ⊢ <pers> P -∗ <pers> Q. @@ -946,7 +954,7 @@ Proof. rewrite /bi_intuitionistically affinely_elim_emp //. Qed. Lemma intuitionistically_intro' P Q : (â–¡ P ⊢ Q) → â–¡ P ⊢ â–¡ Q. Proof. intros <-. - by rewrite /bi_intuitionistically persistently_affinely persistently_idemp. + by rewrite /bi_intuitionistically persistently_affinely_elim persistently_idemp. Qed. Lemma intuitionistically_emp : â–¡ emp ⊣⊢ emp. @@ -973,11 +981,11 @@ Lemma intuitionistically_sep `{BiPositive PROP} P Q : â–¡ (P ∗ Q) ⊣⊢ â–¡ P Proof. by rewrite /bi_intuitionistically -affinely_sep -persistently_sep. Qed. Lemma intuitionistically_idemp P : â–¡ â–¡ P ⊣⊢ â–¡ P. -Proof. by rewrite /bi_intuitionistically persistently_affinely persistently_idemp. Qed. +Proof. by rewrite /bi_intuitionistically persistently_affinely_elim persistently_idemp. Qed. -Lemma intuitionistically_persistently_1 P : â–¡ P ⊢ <pers> P. +Lemma intuitionistically_into_persistently_1 P : â–¡ P ⊢ <pers> P. Proof. rewrite /bi_intuitionistically affinely_elim //. Qed. -Lemma intuitionistically_persistently_persistently P : â–¡ <pers> P ⊣⊢ â–¡ P. +Lemma intuitionistically_persistently_elim P : â–¡ <pers> P ⊣⊢ â–¡ P. Proof. rewrite /bi_intuitionistically persistently_idemp //. Qed. Lemma intuitionistic_intuitionistically P : @@ -992,8 +1000,8 @@ Proof. - rewrite and_elim_l //. - apply persistently_and_emp_elim. Qed. -Lemma intuitionistically_affinely_affinely P : â–¡ <affine> P ⊣⊢ â–¡ P. -Proof. rewrite /bi_intuitionistically persistently_affinely //. Qed. +Lemma intuitionistically_affinely_elim P : â–¡ <affine> P ⊣⊢ â–¡ P. +Proof. rewrite /bi_intuitionistically persistently_affinely_elim //. Qed. Lemma persistently_and_intuitionistically_sep_l P Q : <pers> P ∧ Q ⊣⊢ â–¡ P ∗ Q. Proof. @@ -1038,7 +1046,7 @@ Qed. Section bi_affine_intuitionistically. Context `{BiAffine PROP}. - Lemma intuitionistically_persistently P : â–¡ P ⊣⊢ <pers> P. + Lemma intuitionistically_into_persistently P : â–¡ P ⊣⊢ <pers> P. Proof. rewrite /bi_intuitionistically affine_affinely //. Qed. End bi_affine_intuitionistically. @@ -1205,10 +1213,11 @@ Proof. intros. rewrite -persistent_and_sep_1; auto. Qed. Lemma persistent_entails_r P Q `{!Persistent Q} : (P ⊢ Q) → P ⊢ P ∗ Q. Proof. intros. rewrite -persistent_and_sep_1; auto. Qed. -Lemma absorbingly_intuitionistically P : <absorb> â–¡ P ⊣⊢ <pers> P. +Lemma absorbingly_intuitionistically_into_persistently P : + <absorb> â–¡ P ⊣⊢ <pers> P. Proof. apply (anti_symm _). - - by rewrite intuitionistically_persistently_1 absorbingly_persistently. + - by rewrite intuitionistically_into_persistently_1 absorbingly_elim_persistently. - rewrite -{1}(idemp bi_and (<pers> _)%I) persistently_and_intuitionistically_sep_r. by rewrite {1} (True_intro (<pers> _)%I). Qed. @@ -1216,13 +1225,13 @@ Qed. Lemma persistent_absorbingly_affinely_2 P `{!Persistent P} : P ⊢ <absorb> <affine> P. Proof. - rewrite {1}(persistent P) -absorbingly_intuitionistically. + rewrite {1}(persistent P) -absorbingly_intuitionistically_into_persistently. by rewrite intuitionistically_affinely. Qed. Lemma persistent_absorbingly_affinely P `{!Persistent P, !Absorbing P} : <absorb> <affine> P ⊣⊢ P. Proof. - by rewrite -(persistent_persistently P) absorbingly_intuitionistically. + by rewrite -(persistent_persistently P) absorbingly_intuitionistically_into_persistently. Qed. Lemma persistent_and_sep_assoc P `{!Persistent P, !Absorbing P} Q R : @@ -1309,7 +1318,7 @@ Proof. intros. by rewrite /Absorbing absorbingly_wand !absorbing -absorbingly_in Global Instance absorbingly_absorbing P : Absorbing (<absorb> P). Proof. rewrite /bi_absorbingly. apply _. Qed. Global Instance persistently_absorbing P : Absorbing (<pers> P). -Proof. by rewrite /Absorbing absorbingly_persistently. Qed. +Proof. by rewrite /Absorbing absorbingly_elim_persistently. Qed. Global Instance persistently_if_absorbing P p : Absorbing P → Absorbing (<pers>?p P). Proof. intros; destruct p; simpl; apply _. Qed. diff --git a/theories/bi/derived_laws_sbi.v b/theories/bi/derived_laws_sbi.v index 58b8605c37396bc6a80d94f4800474a1b052ec57..db012d4bcff9a35a262f4685b2a97641733d8281 100644 --- a/theories/bi/derived_laws_sbi.v +++ b/theories/bi/derived_laws_sbi.v @@ -121,7 +121,7 @@ Qed. Lemma persistently_internal_eq {A : ofeT} (a b : A) : <pers> (a ≡ b) ⊣⊢ a ≡ b. Proof. apply (anti_symm (⊢)). - { by rewrite persistently_elim_absorbingly absorbingly_internal_eq. } + { by rewrite persistently_into_absorbingly absorbingly_internal_eq. } apply (internal_eq_rewrite' a b (λ b, <pers> (a ≡ b))%I); auto. rewrite -(internal_eq_refl emp%I a). apply persistently_emp_intro. Qed. diff --git a/theories/bi/plainly.v b/theories/bi/plainly.v index f343197cdc557d5fe8dad7d9d8624c32c8a5734f..dc97f4e88fe96777f6a09b16649ec326076ff089 100644 --- a/theories/bi/plainly.v +++ b/theories/bi/plainly.v @@ -121,16 +121,16 @@ Proof. intros P Q; apply plainly_mono. Qed. Lemma affinely_plainly_elim P : <affine> â– P ⊢ P. Proof. by rewrite plainly_elim_persistently /bi_affinely persistently_and_emp_elim. Qed. -Lemma persistently_plainly P : <pers> â– P ⊣⊢ â– P. +Lemma persistently_elim_plainly P : <pers> â– P ⊣⊢ â– P. Proof. apply (anti_symm _). - - by rewrite persistently_elim_absorbingly /bi_absorbingly comm plainly_absorb. + - by rewrite persistently_into_absorbingly /bi_absorbingly comm plainly_absorb. - by rewrite {1}plainly_idemp_2 plainly_elim_persistently. Qed. -Lemma persistently_if_plainly P p : <pers>?p â– P ⊣⊢ â– P. -Proof. destruct p; last done. exact: persistently_plainly. Qed. +Lemma persistently_if_elim_plainly P p : <pers>?p â– P ⊣⊢ â– P. +Proof. destruct p; last done. exact: persistently_elim_plainly. Qed. -Lemma plainly_persistently P : â– <pers> P ⊣⊢ â– P. +Lemma plainly_persistently_elim P : â– <pers> P ⊣⊢ â– P. Proof. apply (anti_symm _). - rewrite -{1}(left_id True%I bi_and (â– _)%I) (plainly_emp_intro True%I). @@ -139,22 +139,22 @@ Proof. - by rewrite {1}plainly_idemp_2 (plainly_elim_persistently P). Qed. -Lemma absorbingly_plainly P : <absorb> â– P ⊣⊢ â– P. -Proof. by rewrite -(persistently_plainly P) absorbingly_persistently. Qed. +Lemma absorbingly_elim_plainly P : <absorb> â– P ⊣⊢ â– P. +Proof. by rewrite -(persistently_elim_plainly P) absorbingly_elim_persistently. Qed. Lemma plainly_and_sep_elim P Q : â– P ∧ Q -∗ (emp ∧ P) ∗ Q. Proof. by rewrite plainly_elim_persistently persistently_and_sep_elim_emp. Qed. Lemma plainly_and_sep_assoc P Q R : â– P ∧ (Q ∗ R) ⊣⊢ (â– P ∧ Q) ∗ R. -Proof. by rewrite -(persistently_plainly P) persistently_and_sep_assoc. Qed. +Proof. by rewrite -(persistently_elim_plainly P) persistently_and_sep_assoc. Qed. Lemma plainly_and_emp_elim P : emp ∧ â– P ⊢ P. Proof. by rewrite plainly_elim_persistently persistently_and_emp_elim. Qed. -Lemma plainly_elim_absorbingly P : â– P ⊢ <absorb> P. -Proof. by rewrite plainly_elim_persistently persistently_elim_absorbingly. Qed. +Lemma plainly_into_absorbingly P : â– P ⊢ <absorb> P. +Proof. by rewrite plainly_elim_persistently persistently_into_absorbingly. Qed. Lemma plainly_elim P `{!Absorbing P} : â– P ⊢ P. Proof. by rewrite plainly_elim_persistently persistently_elim. Qed. Lemma plainly_idemp_1 P : â– â– P ⊢ â– P. -Proof. by rewrite plainly_elim_absorbingly absorbingly_plainly. Qed. +Proof. by rewrite plainly_into_absorbingly absorbingly_elim_plainly. Qed. Lemma plainly_idemp P : â– â– P ⊣⊢ â– P. Proof. apply (anti_symm _); auto using plainly_idemp_1, plainly_idemp_2. Qed. @@ -213,15 +213,15 @@ Proof. by rewrite plainly_and_sep_assoc (comm bi_and) plainly_and_emp_elim. Qed. -Lemma plainly_affinely P : â– <affine> P ⊣⊢ â– P. +Lemma plainly_affinely_elim P : â– <affine> P ⊣⊢ â– P. Proof. by rewrite /bi_affinely plainly_and -plainly_True_emp plainly_pure left_id. Qed. Lemma intuitionistically_plainly_elim P : â–¡ â– P -∗ â–¡ P. Proof. rewrite intuitionistically_affinely plainly_elim_persistently //. Qed. Lemma intuitionistically_plainly P : â–¡ â– P -∗ â– â–¡ P. Proof. - rewrite /bi_intuitionistically plainly_affinely affinely_elim. - rewrite persistently_plainly plainly_persistently. done. + rewrite /bi_intuitionistically plainly_affinely_elim affinely_elim. + rewrite persistently_elim_plainly plainly_persistently_elim. done. Qed. Lemma and_sep_plainly P Q : â– P ∧ â– Q ⊣⊢ â– P ∗ â– Q. @@ -236,7 +236,7 @@ Proof. by rewrite -plainly_and_sep plainly_and -and_sep_plainly. Qed. Lemma plainly_sep `{BiPositive PROP} P Q : â– (P ∗ Q) ⊣⊢ â– P ∗ â– Q. Proof. apply (anti_symm _); auto using plainly_sep_2. - rewrite -(plainly_affinely (_ ∗ _)%I) affinely_sep -and_sep_plainly. apply and_intro. + rewrite -(plainly_affinely_elim (_ ∗ _)%I) affinely_sep -and_sep_plainly. apply and_intro. - by rewrite (affinely_elim_emp Q) right_id affinely_elim. - by rewrite (affinely_elim_emp P) left_id affinely_elim. Qed. @@ -260,7 +260,7 @@ Lemma impl_wand_plainly_2 P Q : (â– P -∗ Q) ⊢ (â– P → Q). Proof. apply impl_intro_l. by rewrite plainly_and_sep_l_1 wand_elim_r. Qed. Lemma impl_wand_affinely_plainly P Q : (â– P → Q) ⊣⊢ (<affine> â– P -∗ Q). -Proof. by rewrite -(persistently_plainly P) impl_wand_intuitionistically. Qed. +Proof. by rewrite -(persistently_elim_plainly P) impl_wand_intuitionistically. Qed. Lemma persistently_wand_affinely_plainly P Q : (<affine> â– P -∗ <pers> Q) ⊢ <pers> (<affine> â– P -∗ Q). @@ -357,11 +357,11 @@ Lemma impl_persistent P Q : Absorbing P → Plain P → Persistent Q → Persistent (P → Q). Proof. intros. by rewrite /Persistent {2}(plain P) -persistently_impl_plainly - -(persistent Q) (plainly_elim_absorbingly P) absorbing. + -(persistent Q) (plainly_into_absorbingly P) absorbing. Qed. Global Instance plainly_persistent P : Persistent (â– P). -Proof. by rewrite /Persistent persistently_plainly. Qed. +Proof. by rewrite /Persistent persistently_elim_plainly. Qed. Global Instance wand_persistent P Q : Plain P → Persistent Q → Absorbing Q → Persistent (P -∗ Q). @@ -428,7 +428,7 @@ Qed. Global Instance impl_plain P Q : Absorbing P → Plain P → Plain Q → Plain (P → Q). Proof. intros. by rewrite /Plain {2}(plain P) -plainly_impl_plainly -(plain Q) - (plainly_elim_absorbingly P) absorbing. + (plainly_into_absorbingly P) absorbing. Qed. Global Instance wand_plain P Q : Plain P → Plain Q → Absorbing Q → Plain (P -∗ Q). @@ -445,7 +445,7 @@ Global Instance plainly_plain P : Plain (â– P). Proof. by rewrite /Plain plainly_idemp. Qed. Global Instance persistently_plain P : Plain P → Plain (<pers> P). Proof. - rewrite /Plain=> HP. rewrite {1}HP plainly_persistently persistently_plainly //. + rewrite /Plain=> HP. rewrite {1}HP plainly_persistently_elim persistently_elim_plainly //. Qed. Global Instance affinely_plain P : Plain P → Plain (<affine> P). Proof. rewrite /bi_affinely. apply _. Qed. @@ -468,7 +468,7 @@ Qed. Lemma plainly_alt P : â– P ⊣⊢ <affine> P ≡ emp. Proof. - rewrite -plainly_affinely. apply (anti_symm (⊢)). + rewrite -plainly_affinely_elim. apply (anti_symm (⊢)). - rewrite -prop_ext. apply plainly_mono, and_intro; apply wand_intro_l. + by rewrite affinely_elim_emp left_id. + by rewrite left_id. diff --git a/theories/proofmode/class_instances_bi.v b/theories/proofmode/class_instances_bi.v index bbe5c72bc98d348bad32c868aa8d02450be5c7dd..79a1f0ab04f796821c03c7fffe10381a753f49b3 100644 --- a/theories/proofmode/class_instances_bi.v +++ b/theories/proofmode/class_instances_bi.v @@ -64,13 +64,13 @@ Global Instance from_assumption_persistently_l_true P Q : FromAssumption true P Q → KnownLFromAssumption true (<pers> P) Q. Proof. rewrite /KnownLFromAssumption /FromAssumption /= =><-. - rewrite intuitionistically_persistently_persistently //. + rewrite intuitionistically_persistently_elim //. Qed. Global Instance from_assumption_persistently_l_false `{BiAffine PROP} P Q : FromAssumption true P Q → KnownLFromAssumption false (<pers> P) Q. Proof. rewrite /KnownLFromAssumption /FromAssumption /= =><-. - by rewrite intuitionistically_persistently. + by rewrite intuitionistically_into_persistently. Qed. Global Instance from_assumption_affinely_l_true p P Q : FromAssumption p P Q → KnownLFromAssumption p (<affine> P) Q. @@ -195,7 +195,7 @@ Global Instance from_pure_persistently P a φ : FromPure true P φ → FromPure a (<pers> P) φ. Proof. rewrite /FromPure=> <- /=. - by rewrite persistently_affinely affinely_if_elim persistently_pure. + by rewrite persistently_affinely_elim affinely_if_elim persistently_pure. Qed. Global Instance from_pure_affinely_true P φ : FromPure true P φ → FromPure true (<affine> P) φ. @@ -206,7 +206,7 @@ Proof. rewrite /FromPure /= affine_affinely //. Qed. Global Instance from_pure_intuitionistically_true P φ : FromPure true P φ → FromPure true (â–¡ P) φ. Proof. - rewrite /FromPure=><- /=. rewrite intuitionistically_affinely_affinely. + rewrite /FromPure=><- /=. rewrite intuitionistically_affinely_elim. rewrite {1}(persistent ⌜φâŒ%I) //. Qed. @@ -233,7 +233,7 @@ Proof. rewrite /IntoPersistent /= =><-. destruct p; simpl; eauto using persistently_mono, intuitionistically_elim, - intuitionistically_persistently_1. + intuitionistically_into_persistently_1. Qed. Global Instance into_persistent_embed `{BiEmbed PROP PROP'} p P Q : IntoPersistent p P Q → IntoPersistent p ⎡P⎤ ⎡Q⎤ | 0. @@ -259,7 +259,9 @@ Global Instance from_modal_intuitionistically P : Proof. by rewrite /FromModal. Qed. Global Instance from_modal_intuitionistically_affine_bi P : BiAffine PROP → FromModal modality_persistently (â–¡ P) (â–¡ P) P | 0. -Proof. intros. by rewrite /FromModal /= intuitionistically_persistently. Qed. +Proof. + intros. by rewrite /FromModal /= intuitionistically_into_persistently. +Qed. Global Instance from_modal_absorbingly P : FromModal modality_id (<absorb> P) (<absorb> P) P. @@ -356,7 +358,7 @@ Global Instance into_wand_intuitionistically p q R P Q : Proof. by rewrite /IntoWand intuitionistically_elim. Qed. Global Instance into_wand_persistently_true q R P Q : IntoWand true q R P Q → IntoWand true q (<pers> R) P Q. -Proof. by rewrite /IntoWand /= intuitionistically_persistently_persistently. Qed. +Proof. by rewrite /IntoWand /= intuitionistically_persistently_elim. Qed. Global Instance into_wand_persistently_false q R P Q : Absorbing R → IntoWand false q R P Q → IntoWand false q (<pers> R) P Q. Proof. intros ?. by rewrite /IntoWand persistently_elim. Qed. @@ -494,7 +496,7 @@ Global Instance into_and_affinely p P Q1 Q2 : IntoAnd p P Q1 Q2 → IntoAnd p (<affine> P) (<affine> Q1) (<affine> Q2). Proof. rewrite /IntoAnd. destruct p; simpl. - - rewrite -affinely_and !intuitionistically_affinely_affinely //. + - rewrite -affinely_and !intuitionistically_affinely_elim //. - intros ->. by rewrite affinely_and. Qed. Global Instance into_and_intuitionistically p P Q1 Q2 : @@ -509,7 +511,7 @@ Global Instance into_and_persistently p P Q1 Q2 : IntoAnd p (<pers> P) (<pers> Q1) (<pers> Q2). Proof. rewrite /IntoAnd /=. destruct p; simpl. - - rewrite -persistently_and !intuitionistically_persistently_persistently //. + - rewrite -persistently_and !intuitionistically_persistently_elim //. - intros ->. by rewrite persistently_and. Qed. Global Instance into_and_embed `{BiEmbed PROP PROP'} p P Q1 Q2 : @@ -746,7 +748,7 @@ Qed. Global Instance from_forall_intuitionistically `{BiAffine PROP} {A} P (Φ : A → PROP) : FromForall P Φ → FromForall (â–¡ P) (λ a, â–¡ (Φ a))%I. Proof. - rewrite /FromForall=> <-. setoid_rewrite intuitionistically_persistently. + rewrite /FromForall=> <-. setoid_rewrite intuitionistically_into_persistently. by rewrite persistently_forall. Qed. Global Instance from_forall_persistently {A} P (Φ : A → PROP) : diff --git a/theories/proofmode/class_instances_sbi.v b/theories/proofmode/class_instances_sbi.v index 61a838d9cbfbc33669e8567336877e729cc0de38..7504000d02c61d6651747681909130dd491cc0ba 100644 --- a/theories/proofmode/class_instances_sbi.v +++ b/theories/proofmode/class_instances_sbi.v @@ -36,7 +36,7 @@ Global Instance from_assumption_plainly_l_false `{BiPlainly PROP, BiAffine PROP} FromAssumption true P Q → KnownLFromAssumption false (â– P) Q. Proof. rewrite /KnownLFromAssumption /FromAssumption /= =><-. - rewrite plainly_elim_persistently intuitionistically_persistently //. + rewrite plainly_elim_persistently intuitionistically_into_persistently //. Qed. (* FromPure *) diff --git a/theories/proofmode/coq_tactics.v b/theories/proofmode/coq_tactics.v index af7262f9cbfca1a7a11abfed57145c2c8344b81a..3c0d2199b937cb166febae20aaf8bb66ece74752 100644 --- a/theories/proofmode/coq_tactics.v +++ b/theories/proofmode/coq_tactics.v @@ -375,7 +375,7 @@ Lemma env_spatial_is_nil_intuitionistically Δ : Proof. intros. unfold of_envs; destruct Δ as [? []]; simplify_eq/=. rewrite !right_id /bi_intuitionistically {1}affinely_and_r persistently_and. - by rewrite persistently_affinely persistently_idemp persistently_pure. + by rewrite persistently_affinely_elim persistently_idemp persistently_pure. Qed. Lemma envs_lookup_envs_delete Δ i p P : @@ -616,7 +616,7 @@ Proof. + rewrite -(affine_affinely P) (_ : P = <pers>?false P)%I // (into_persistent _ P) wand_elim_r //. + rewrite (_ : P = <pers>?false P)%I // (into_persistent _ P). - by rewrite -{1}absorbingly_intuitionistically + by rewrite -{1}absorbingly_intuitionistically_into_persistently absorbingly_sep_l wand_elim_r HQ. Qed. @@ -673,7 +673,7 @@ Proof. - rewrite -(affine_affinely P) (_ : P = <pers>?false P)%I // (into_persistent _ P) wand_elim_r //. - rewrite (_ : P = <pers>?false P)%I // (into_persistent _ P). - by rewrite -{1}absorbingly_intuitionistically + by rewrite -{1}absorbingly_intuitionistically_into_persistently absorbingly_sep_l wand_elim_r HQ. Qed. Lemma tac_wand_intro_pure Δ P φ Q R : @@ -769,7 +769,7 @@ Lemma tac_specialize_assert_pure Δ Δ' j q R P1 P2 φ Q : Proof. rewrite envs_entails_eq=> ????? <-. rewrite envs_simple_replace_singleton_sound //=. rewrite -intuitionistically_if_idemp into_wand /= -(from_pure _ P1) /bi_intuitionistically. - rewrite pure_True //= persistently_affinely persistently_pure + rewrite pure_True //= persistently_affinely_elim persistently_pure affinely_True_emp affinely_emp. by rewrite emp_wand wand_elim_r. Qed. @@ -787,7 +787,7 @@ Proof. rewrite -(idemp bi_and (of_envs (envs_delete _ _ _ _))). rewrite {2}envs_simple_replace_singleton_sound' //; simpl. rewrite {1}HP1 (into_absorbingly P1') (persistent_persistently_2 P1). - rewrite absorbingly_persistently persistently_and_intuitionistically_sep_l assoc. + rewrite absorbingly_elim_persistently persistently_and_intuitionistically_sep_l assoc. rewrite -intuitionistically_if_idemp -intuitionistically_idemp. rewrite (intuitionistically_intuitionistically_if q). by rewrite intuitionistically_if_sep_2 into_wand wand_elim_l wand_elim_r. @@ -804,7 +804,7 @@ Proof. rewrite envs_entails_eq => ? HR ? Hpos ? <-. rewrite -(idemp bi_and (of_envs Δ)) {1}HR. rewrite envs_replace_singleton_sound //; destruct q; simpl. - by rewrite (_ : R = <pers>?false R)%I // (into_persistent _ R) - absorbingly_persistently sep_elim_r persistently_and_intuitionistically_sep_l wand_elim_r. + absorbingly_elim_persistently sep_elim_r persistently_and_intuitionistically_sep_l wand_elim_r. - by rewrite (absorbing_absorbingly R) (_ : R = <pers>?false R)%I // (into_persistent _ R) sep_elim_r persistently_and_intuitionistically_sep_l wand_elim_r. Qed. @@ -848,7 +848,7 @@ Proof. rewrite /IntoIH envs_entails_eq. intros HP ? HPQ. rewrite (env_spatial_is_nil_intuitionistically Δ) //. rewrite -(idemp bi_and (â–¡ (of_envs Δ))%I) {1}HP // HPQ. - rewrite {1}intuitionistically_persistently_1 intuitionistically_elim impl_elim_r //. + rewrite {1}intuitionistically_into_persistently_1 intuitionistically_elim impl_elim_r //. Qed. Lemma tac_assert Δ Δ' j P Q : @@ -1407,6 +1407,6 @@ Proof. rewrite -(löb (<pers> Q)%I) later_persistently. apply impl_intro_l. rewrite envs_app_singleton_sound //; simpl; rewrite HQ. rewrite persistently_and_intuitionistically_sep_l -{1}intuitionistically_idemp. - rewrite intuitionistically_sep_2 wand_elim_r intuitionistically_persistently_1 //. + rewrite intuitionistically_sep_2 wand_elim_r intuitionistically_into_persistently_1 //. Qed. End sbi_tactics. diff --git a/theories/proofmode/frame_instances.v b/theories/proofmode/frame_instances.v index 68d2bfce78772b08acf1e261cec0fb36347dfc79..6326f2763403f87bcdff83bf489e4a1777bd3b57 100644 --- a/theories/proofmode/frame_instances.v +++ b/theories/proofmode/frame_instances.v @@ -229,8 +229,8 @@ Global Instance frame_persistently R P Q Q' : Proof. rewrite /Frame /MakePersistently=> <- <- /=. rewrite -persistently_and_intuitionistically_sep_l. - by rewrite -persistently_sep_2 -persistently_and_sep_l_1 persistently_affinely - persistently_idemp. + by rewrite -persistently_sep_2 -persistently_and_sep_l_1 + persistently_affinely_elim persistently_idemp. Qed. Global Instance frame_exist {A} p R (Φ Ψ : A → PROP) :