aboutsummaryrefslogtreecommitdiff
path: root/src/Util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/Option.v7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Util/Option.v b/src/Util/Option.v
index 5d53223c2..7a9923d69 100644
--- a/src/Util/Option.v
+++ b/src/Util/Option.v
@@ -116,6 +116,13 @@ Global Instance Proper_option_rect_nd_changevalue
: Proper (RB ==> option_eq RA ==> RB) (@option_rect A (fun _ => B) some).
Proof. cbv; repeat (intro || break_match || f_equiv || intuition congruence). Qed.
+Lemma bind_zero_l {A B} f : @bind A B None f = None.
+Proof. reflexivity. Qed.
+Lemma bind_zero_r {A B} v : @bind A B v (fun _ => None) = None.
+Proof. destruct v; reflexivity. Qed.
+Lemma bind_zero_r_ext {A B} v f : (forall v, f v = None) -> @bind A B v f = None.
+Proof. destruct v; cbn; auto. Qed.
+
Lemma option_rect_false_returns_true_iff
{T} {R} {reflexiveR:Reflexive R}
(f:T->bool) {Proper_f:Proper(R==>eq)f} (o:option T) :