Ltac shatterer := simpl; intuition;
match goal with
| [ w : _ |- _ ] => rewrite (shatter_word w); simpl
end; f_equal; auto.

(* Specifications: *)
Theorem combine_split : forall sz1 sz2 (w : word (sz1 + sz2)),
combine (split1 sz1 sz2 w) (split2 sz1 sz2 w) = w.