omega. exact r'_small. omega. apply Zle_lt_trans with (_Z r'). omega. apply lt_z__Z. fold M. assumption. rewrite ltw_true.
apply Zlt_le_trans with M. assumption. exact le_M_2pp. fold M. assumption. Qed.

(* Specifications: *)
(* <KEEP TOGETHER - r''_eq *)
Lemma r''_eq : _Z r'' = x mod M \/ _Z r'' = x mod M + M.
unfold r''. elim (Zle_or_lt M r'); intro H. rewrite ltw_false. simpl. fold M. rewrite modred. elim r'_x. intro H0.