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 split1_combine_existT: (* Note: not axiom free *)
forall sz n (w: word (n + sz)) sl (wl: word (n + sl)) su (wu: word su),
existT word _ w = existT word _ (combine wl wu) ->
split1 n _ w = split1 n _ wl.