Definition in_Mset (M : Z) := 1 <= M <= 2 ^ (w - 1).Definition Mset := sig in_Mset.Coercion Z_from_Mset (M : Mset) := proj1_sig (P := in_Mset) M.

(* Specifications: *)
Lemma Mset_l : forall M : Mset, 1 <= M.
Lemma Mset_r : forall M : Mset, M <= 2 ^ (w - 1).
Lemma logsuplew : forall (M : Mset), Zlog_sup M <= w.
Lemma xhex : forall (M : Mset) (x : Z_ (2 ^ (Zlog_sup M + w))), in_Z_ (2 ^ w) (x / 2 ^ w).
Lemma xlex : forall x : Z, in_Z_ (2 ^ w) (x mod 2 ^ w).
Lemma M'ex : forall M : Mset, in_Z_ (2 ^ w) (2 ^ (Zlog_sup M + w) / M - 2 ^ w).
Lemma p1ex_2le : forall M : Mset, in_Z_ w (Zlog_sup M).
Lemma pex : forall M : Mset, in_Z_ w (Zlog_sup M).
Lemma tex : forall M : Mset, in_Z_ w (w - Zlog_sup M - 1 / M).
Lemma in_Z__if_in_Mset : forall M : Mset, in_Z_ (2 ^ w) M.