(***********************************************)
(** * Alternative versions of [andb] and [orb] with lazy behavior (for vm_compute)        *)
(***********************************************)
Declare Scope lazy_bool_scope.
Notation "a &&& b" := (if a then b else false)
(at level 40, left associativity) : lazy_bool_scope.
Notation "a ||| b" := (if a then true else b)
(at level 50, left associativity) : lazy_bool_scope.
Local Open Scope lazy_bool_scope.

(* Specifications: *)
Lemma andb_lazy_alt : forall a b : bool, a && b = a &&& b.
Lemma orb_lazy_alt : forall a b : bool, a || b = a ||| b.
Notation reflect := Datatypes.reflect (only parsing).