Remark non_empty_dep :
   forall n m : nat,
   m = S n ->
   forall l : list (S n),
   {h : A &  {t : list n | eq_list (S n) l (S n) (cons n h t)}}.

Lemma non_empty : forall (n : nat) (l : list (S n)), {a : A & {t : list n | l = cons n a t}}.