Module Dec2Bool (E:DecidableType) <: BooleanDecidableType
 := E <+ HasEqDec2Bool.Module Bool2Dec (E:BooleanEqualityType) <: BooleanDecidableType
 := E <+ HasEqBool2Dec.(** [eqb] is compatible with [eq] *)

#[global]
Instance eqb_compat : Proper (E.eq ==> E.eq ==> Logic.eq) eqb.

(* Specifications: *)
Lemma eqb_spec x y : reflect (x==y) (x =? y).
Lemma eqb_neq x y : (x =? y) = false <-> x ~= y.
Lemma eqb_refl x : (x =? x) = true.
Lemma eqb_sym x y : (x =? y) = (y =? x).