Local Lemma wmultZ_helper: forall a b k1 k2 p,
((a - k1 * p) * (b - k2 * p) = a * b - (k1 * b + k2 * a - k1 * k2 * p) * p)%Z.

Lemma wminus_wminusZ: forall (sz : nat) (w1 w2 : word sz), w1 ^- w2 = wminusZ w1 w2.
Local Lemma wminusZ_helper: forall a b k1 k2 p,
((a - k1 * p) - (b - k2 * p) = a - b - (k1 - k2) * p)%Z.