Notation Zp := (Zp_zero Hp).Notation Op := (Zp_one Hp).Notation expoZp := (mscal (Zp_mult Hp) (Zp_one Hp)).Fact binomial_wo_p : φ K k0 * Ψ K * φ (N-K) (n0-k0) * Ψ (N-K) * binomial n k 
                       = binomial N K * φ N n0 * Ψ N.Fact binomial_with_p : fact K * fact (N-(K+1)) * φ K k0 * Ψ K * φ (N-(K+1)) (p-(k0-n0)) * Ψ (N-(K+1)) * binomial n k 
                         = p * fact N * φ N n0 * Ψ N.Fact binomial_with_p' : φ K k0 * Ψ K * φ (N-(K+1)) (p-(k0-n0)) * Ψ (N-(K+1)) * binomial n k 
                          = p * binomial N K * (N-K) * φ N n0 * Ψ N.

Theorem lucas_lemma : rem (binomial n k) p = rem (binomial N K * binomial n0 k0) p.