From a9f6c350ac1fe40ca27f11cf0cfb54a47a5f568e Mon Sep 17 00:00:00 2001
From: Hoang-Hai Dang <haidang@mpi-sws.org>
Date: Tue, 13 Apr 2021 14:43:10 +0200
Subject: [PATCH] Add included lemmas for frac_agree

---
 iris/algebra/lib/frac_agree.v | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/iris/algebra/lib/frac_agree.v b/iris/algebra/lib/frac_agree.v
index 8355f3aec..ee08f73cb 100644
--- a/iris/algebra/lib/frac_agree.v
+++ b/iris/algebra/lib/frac_agree.v
@@ -48,6 +48,22 @@ Section lemmas.
     apply to_agree_op_invN. done.
   Qed.
 
+  Lemma frac_agree_included q1 a1 q2 a2 :
+    to_frac_agree q1 a1 ≼ to_frac_agree q2 a2 →
+    (q1 < q2)%Qp ∧ a1 ≡ a2.
+  Proof. by intros [?%frac_included ?%to_agree_included]%pair_included. Qed.
+  Lemma frac_agree_included_L `{!LeibnizEquiv A} q1 a1 q2 a2 :
+    to_frac_agree q1 a1 ≼ to_frac_agree q2 a2 →
+    (q1 < q2)%Qp ∧ a1 = a2.
+  Proof. unfold_leibniz. apply frac_agree_included. Qed.
+  Lemma frac_agree_includedN q1 a1 q2 a2 n :
+    to_frac_agree q1 a1 ≼{n} to_frac_agree q2 a2 →
+    (q1 < q2)%Qp ∧ a1 ≡{n}≡ a2.
+  Proof.
+    by intros [?%cmra_discrete_included_iff%frac_included
+               ?%to_agree_includedN]%pair_includedN.
+  Qed.
+
   (** No frame-preserving update lemma needed -- use [cmra_update_exclusive] with
   the above [Exclusive] instance. *)
 
-- 
GitLab