Print Assumptions alpha_nat_divisibility_1.
Section divisibility_2.
Variable (b : nat) (Hb : 2 <= b) (k : nat) (Hk : k <> 0).
Let Hak : alpha_nat b k <> 0.
Section equation.
Variable (m l : nat) (Hm : m = l*k) (Hl : l <> 0).
(* ⊕  ⊗  ∸    ⊞ ⊠ ⊟ *)
Infix "⊕" := (Zp_plus Hak2) (at level 50, left associativity).
Infix "⊗" := (Zp_mult Hak2) (at level 40, left associativity).
Notation expoZp := (mscal (Zp_mult Hak2) (Zp_one Hak2)).
Hint Resolve Zle_0_nat.
Section in_Zp.
Notation "〚 x 〛" := (Z2Zp Hak2 x).  (* congruence class modulo alpha_nat b k *)
Let Z2Zp_morph := Z2Zp_morphishm Hak2.
Open Scope Z_scope.
Let Zmult_monoid : monoid_theory Zmult 1.

(* Specifications: *)
Lemma alpha_Z_ml_eq : 〚 alpha_Z b (S m) 〛
= expoZp (l-1) 〚-1〛
⊗ nat2Zp Hak2 l
⊗〚 alpha_Z b (S k) 〛
⊗ expoZp (l-1)〚 alpha_Z b k 〛.