Definition pos_el (X : eqType) (x : X) (A : list X) (H : x el A) := proj1_sig (pos_el' H).Definition index (X : finType) (x : X) := pos_el (elem_spec x).

(* Specifications: *)
Lemma map_app_inv X Y (f : X -> Y) x y z : map f x = y ++ z -> exists x' x'', x = x' ++ x'' /\ map f x' = y /\ map f x'' = z.
Lemma pos_inj (X : eqType) (x y : X) (A : list X) n : pos x A = Some n -> pos y A = Some n -> x = y.
Lemma inj_index (X : finType) : Injective (@index X).