(** Some nice boolean stuff... *)

Definition istrue (b : bool) := if b then True else False.

(* Specifications: *)
Lemma beq_nat_ok : forall n m : nat, n = m <-> istrue (beq_nat n m).
Lemma beq_nat_eq : forall n m : nat, n = m <-> beq_nat n m = true.
Lemma beq_nat_neq : forall n m : nat, n <> m <-> beq_nat n m = false.
Lemma zeq_bool_eq : forall x y : Z, x = y <-> Zeq_bool x y = true.
Lemma zeq_bool_neq : forall x y : Z, x <> y <-> Zeq_bool x y = false.