Definition Zp_zmodMixin := ZmodMixin Zp_addA Zp_addC Zp_add0z Zp_addNz.

(* Specifications: *)
Lemma Zp_mul1z : left_id Zp1 Zp_mul.
Lemma Zp_mulC : commutative Zp_mul.
Lemma Zp_mulz1 : right_id Zp1 Zp_mul.
Lemma Zp_mulA : associative Zp_mul.
Lemma Zp_mul_addr : right_distributive Zp_mul Zp_add.
Lemma Zp_mul_addl : left_distributive Zp_mul Zp_add.
Lemma Zp_mulVz x : coprime p x -> Zp_mul (Zp_inv x) x = Zp1.
Lemma Zp_mulzV x : coprime p x -> Zp_mul x (Zp_inv x) = Zp1.
Lemma Zp_intro_unit x y : Zp_mul y x = Zp1 -> coprime p x.
Lemma Zp_inv_out x : ~~ coprime p x -> Zp_inv x = x.