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 sext_wplus_wordToZ_distr_existT: (* Note: not axiom free *)
forall sz (w1 w2: word sz) ssz (sw1 sw2: word ssz) n,
existT word _ w1 = existT word _ (sext sw1 n) ->
existT word _ w2 = existT word _ (sext sw2 n) ->
n <> 0 -> wordToZ (w1 ^+ w2) = (wordToZ w1 + wordToZ w2)%Z.