Fixpoint containsList_upto_n (n m:nat): n <= m -> seq.seq (sigT (fun i => i < m)):=
      match n with
      | O => fun _ => nil
      | S n' => fun (H: S n' <= m) =>
                 (existT (fun i => i < m) (m-(S n')) (lt_sub H)) ::
                 (containsList_upto_n n' m) (leq_stepdown H)                                  
      end.

(* Specifications: *)
Lemma containsList_upto_n_spec: forall m n (H: n <= m) i (cnti: (fun i => i < m) (m - n + i)), i < n -> nth_error (containsList_upto_n n m H) i = Some (existT _ (m - n + i) (cnti)).
Lemma leq_refl: forall n, n <= n.