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