Definition mkseq f n : seq T := map f (iota 0 n).

(* Specifications: *)
Lemma size_mkseq f n : size (mkseq f n) = n.
Lemma eq_mkseq f g : f =1 g -> mkseq f =1 mkseq g.
Lemma nth_mkseq f n i : i < n -> nth x0 (mkseq f n) i = f i.
Lemma mkseq_nth s : mkseq (nth x0 s) (size s) = s.
Lemma mkseq_uniq (f : nat -> T) n : injective f -> uniq (mkseq f n).
Lemma perm_eq_iotaP {s t : seq T} x0 (It := iota 0 (size t)) : reflect (exists2 Is, perm_eq Is It & s = map (nth x0 t) Is) (perm_eq s t).