Hint Rewrite firstn_app_L firstn_app_R firstn_all firstn_0 firstn_cons using omega : list_rw.

(* Specifications: *)
Lemma skipn_app_R : forall T n (a b : list T),
length a <= n ->
skipn n (a ++ b) = skipn (n - length a) b.
Lemma skipn_app_L : forall T n (a b : list T),
n <= length a ->
skipn n (a ++ b) = (skipn n a) ++ b.
Lemma skipn_0 : forall T n (a : list T),
n = 0 ->
skipn n a = a.
Lemma skipn_all : forall T n (a : list T),
length a <= n ->
skipn n a = nil.
Lemma skipn_cons : forall T n a (b : list T),
0 < n ->
skipn n (a :: b) = skipn (n - 1) b.