Set Implicit Arguments.

(* Specifications: *)
Lemma or_false :
forall P : Prop, P -> (P \/ False).
Lemma if_sum_bool_fun_comm :
forall A B C D (b : {A}+{B}) (c1 c2 : C) (f : C -> D),
f (if b then c1 else c2) = if b then f c1 else f c2.
Lemma if_decider_true :
forall A B (P : A -> Prop) (dec : forall x, {P x} + {~ P x}) a (b1 b2 : B),
P a ->
(if dec a then b1 else b2) = b1.
Lemma if_decider_false :
forall A B (P : A -> Prop) (dec : forall x, {P x} + {~ P x}) a (b1 b2 : B),
~ P a ->
(if dec a then b1 else b2) = b2.
Lemma leb_false_lt : forall m n, leb m n = false -> n < m.
Lemma leb_true_le : forall m n, leb m n = true -> m <= n.
Lemma ltb_false_le : forall m n, m <? n = false -> n <= m.
Lemma ltb_true_lt : forall m n, m <? n = true -> m < n.
induction m; intros; destruct n; try discriminate; auto with arith.