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

Theorem split2_split1 : forall n1 n2 n3 Heq w, split2 n1 n2 (split1 (n1+n2) n3 w) = split1 n2 n3 (split2 n1 (n2+n3) (match Heq in _ = N return word N with | refl_equal => w end)).