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