From ef6de2f9d21771a2ec77bcc40decc717099110bb Mon Sep 17 00:00:00 2001 From: Jacques-Henri Jourdan <jacques-henri.jourdan@normalesup.org> Date: Fri, 23 Dec 2016 19:40:39 +0100 Subject: [PATCH] New derived lemma : entails_equiv_and. --- theories/base_logic/derived.v | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/theories/base_logic/derived.v b/theories/base_logic/derived.v index 80f7d2e17..11772f13c 100644 --- a/theories/base_logic/derived.v +++ b/theories/base_logic/derived.v @@ -437,6 +437,12 @@ Proof. intros P; apply (anti_symm _); auto. Qed. Global Instance False_sep : RightAbsorb (⊣⊢) False%I (@uPred_sep M). Proof. intros P; apply (anti_symm _); auto. Qed. +Lemma entails_equiv_and P Q : (P ⊣⊢ Q ∧ P) ↔ (P ⊢ Q). +Proof. + split; first by intros ->; apply uPred.and_elim_l. intros PQ. + apply uPred.equiv_spec; split; + [by apply uPred.and_intro|apply uPred.and_elim_r]. +Qed. Lemma sep_and_l P Q R : P ∗ (Q ∧ R) ⊢ (P ∗ Q) ∧ (P ∗ R). Proof. auto. Qed. Lemma sep_and_r P Q R : (P ∧ Q) ∗ R ⊢ (P ∗ R) ∧ (Q ∗ R). -- GitLab