Hint Rewrite @app_nil_l @app_nil_r : sublist.

Lemma Zfirstn_app:
forall {A} n m (al: list A),
0 <= n -> 0 <= m ->
firstn (Z.to_nat n) al ++ firstn (Z.to_nat m) (skipn (Z.to_nat n) al) =
firstn (Z.to_nat (n+m)) al.