rewrite p_M. generalize le_1_M. case M. intro. absurd (2 <= 0); omega. intros q H.
elim (Zlog_sup_correct2 (Zpos q)). omega. omega. intros q H. absurd (2 <= Zneg q). apply Zlt_not_le.
unfold Zlt. trivial. assumption. Qed.

(* Specifications: *)
Lemma le_1_p : 1 <= p \/ M = 1.
clear x_i_in_Z_ x_i.