intro. unfold in_Z_. split. apply le_0__Z. apply lt_z__Z. Qed.

(* Specifications: *)
(* <KEEP TOGETHER - modred_equality2 *)
Theorem ModRed_eq2 : forall (M : Mset) (v : Z_ (2 ^ Zlog_sup M)) (u : Z_ (2 ^ w)),
ModRed M
(C M)
(exist (in_Z_ (2 ^ w)) v (xheex M v))
(exist (in_Z_ (2 ^ w)) u (xleex u))     =
(2 ^ w * v + u) mod M.