From d402a6d1e63d0a47d2019071343a2920297e4115 Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Sun, 10 Jun 2018 11:00:10 +0200 Subject: [PATCH] Move `into_forall_wand_pure` to the right file. --- theories/proofmode/class_instances_bi.v | 22 +++++++++++++++++++--- theories/proofmode/class_instances_sbi.v | 13 ------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/theories/proofmode/class_instances_bi.v b/theories/proofmode/class_instances_bi.v index cf4a2743c..d01313641 100644 --- a/theories/proofmode/class_instances_bi.v +++ b/theories/proofmode/class_instances_bi.v @@ -806,14 +806,30 @@ Proof. rewrite /IntoForall=> HP. by rewrite HP persistently_forall. Qed. Global Instance into_forall_embed `{BiEmbed PROP PROP'} {A} P (Φ : A → PROP) : IntoForall P Φ → IntoForall ⎡P⎤ (λ a, ⎡Φ a⎤%I). Proof. by rewrite /IntoForall -embed_forall => <-. Qed. -(* These instances must be used only after [into_forall_wand_pure] in -[class_instances_sbi] failed. *) -Global Instance into_forall_wand P Q : IntoForall (P -∗ Q) (λ _ : bi_emp_valid P, Q) | 10. + +(* These instances must be used only after [into_forall_wand_pure] and +[into_forall_wand_pure]. *) +Global Instance into_forall_wand P Q : + IntoForall (P -∗ Q) (λ _ : bi_emp_valid P, Q) | 10. Proof. rewrite /IntoForall. apply forall_intro=><-. rewrite emp_wand //. Qed. Global Instance into_forall_impl `{!BiAffine PROP} P Q : IntoForall (P → Q) (λ _ : bi_emp_valid P, Q) | 10. Proof. rewrite /IntoForall. apply forall_intro=><-. rewrite -True_emp True_impl //. Qed. +Global Instance into_forall_impl_pure φ P Q : + FromPureT false P φ → IntoForall (P → Q) (λ _ : φ, Q). +Proof. + rewrite /FromPureT /FromPure /IntoForall=> -[φ' [-> <-]]. + by rewrite pure_impl_forall. +Qed. +Global Instance into_forall_wand_pure φ P Q : + FromPureT true P φ → IntoForall (P -∗ Q) (λ _ : φ, Q). +Proof. + rewrite /FromPureT /FromPure /IntoForall=> -[φ' [-> <-]] /=. + apply forall_intro=>? /=. + by rewrite -(pure_intro _ True%I) // /bi_affinely right_id emp_wand. +Qed. + (* FromForall *) Global Instance from_forall_forall {A} (Φ : A → PROP) : FromForall (∀ x, Φ x)%I Φ. diff --git a/theories/proofmode/class_instances_sbi.v b/theories/proofmode/class_instances_sbi.v index 0d0029412..fc089dcaf 100644 --- a/theories/proofmode/class_instances_sbi.v +++ b/theories/proofmode/class_instances_sbi.v @@ -343,19 +343,6 @@ Proof. rewrite /IntoForall=> HP. by rewrite HP later_forall. Qed. Global Instance into_forall_except_0 {A} P (Φ : A → PROP) : IntoForall P Φ → IntoForall (◇ P) (λ a, ◇ (Φ a))%I. Proof. rewrite /IntoForall=> HP. by rewrite HP except_0_forall. Qed. -Global Instance into_forall_impl_pure φ P Q : - FromPureT false P φ → IntoForall (P → Q) (λ _ : φ, Q). -Proof. - rewrite /FromPureT /FromPure /IntoForall=> -[φ' [-> <-]]. - by rewrite pure_impl_forall. -Qed. -Global Instance into_forall_wand_pure φ P Q : - FromPureT true P φ → IntoForall (P -∗ Q) (λ _ : φ, Q). -Proof. - rewrite /FromPureT /FromPure /IntoForall=> -[φ' [-> <-]] /=. - apply forall_intro=>? /=. - by rewrite -(pure_intro _ True%I) // /bi_affinely right_id emp_wand. -Qed. Global Instance into_forall_plainly `{BiPlainly PROP} {A} P (Φ : A → PROP) : IntoForall P Φ → IntoForall (■P) (λ a, ■(Φ a))%I. -- GitLab