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

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