Local Hint Resolve le_M_2pp le_1_p lt_0_p le_0_pm1 : a.

(* Specifications: *)
Lemma lt_2pm1_M : 2 ^ (p - 1) < M \/ M = 1.
elim (Zle_lt_or_eq 1 M). intro H. rewrite p_M. generalize le_1_M. case M. intro. absurd (2 <= 0); omega.