#[global]
Hint Resolve andb_prop_elim: bool.
Notation andb_prop2 := andb_prop_elim (only parsing).

(* Specifications: *)
Lemma eq_bool_prop_intro :
forall b1 b2, (Is_true b1 <-> Is_true b2) -> b1 = b2.
Lemma eq_bool_prop_elim : forall b1 b2, b1 = b2 -> (Is_true b1 <-> Is_true b2).
Lemma negb_prop_elim : forall b, Is_true (negb b) -> ~ Is_true b.
Lemma negb_prop_intro : forall b, ~ Is_true b -> Is_true (negb b).
Lemma negb_prop_classical : forall b, ~ Is_true (negb b) -> Is_true b.
Lemma negb_prop_involutive : forall b, Is_true b -> ~ Is_true (negb b).
(** Rewrite rules about andb, orb and if (used in romega) *)
Lemma andb_if : forall (A:Type)(a a':A)(b b' : bool),
(if b && b' then a else a') =
(if b then if b' then a else a' else a').
Lemma negb_if : forall (A:Type)(a a':A)(b:bool),
(if negb b then a else a') =
(if b then a' else a).