From abe0ec66a188c48cd6f86565e6fc5cfc784727bd Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Mon, 4 Jan 2021 23:11:44 +0100 Subject: [PATCH] Add lemma `bind_Some_equiv`. --- theories/option.v | 3 +++ 1 file changed, 3 insertions(+) diff --git a/theories/option.v b/theories/option.v index cd88494a..f2eed50f 100644 --- a/theories/option.v +++ b/theories/option.v @@ -225,6 +225,9 @@ Proof. intros. by apply option_bind_ext. Qed. Lemma bind_Some {A B} (f : A → option B) (mx : option A) y : mx ≫= f = Some y ↔ ∃ x, mx = Some x ∧ f x = Some y. Proof. destruct mx; naive_solver. Qed. +Lemma bind_Some_equiv {A} `{Equiv B} (f : A → option B) (mx : option A) y : + mx ≫= f ≡ Some y ↔ ∃ x, mx = Some x ∧ f x ≡ Some y. +Proof. destruct mx; (split; [inversion 1|]); naive_solver. Qed. Lemma bind_None {A B} (f : A → option B) (mx : option A) : mx ≫= f = None ↔ mx = None ∨ ∃ x, mx = Some x ∧ f x = None. Proof. destruct mx; naive_solver. Qed. -- GitLab