(******************************)
(******************************)
(* Custom lemmas about arrays *)
(******************************)
(******************************)
Definition indx {I : finType} (x : I) := index x (enum I).
Prenex Implicits indx.
(***********************************)
(* Arrays indexed by a finite type *)
(***********************************)
Section Array.
Variables (p : ptr) (I : finType).
(* helper lemmas *)

Lemma enum_split k :
enum I = take (indx k) (enum I) ++ k :: drop (indx k).+1 (enum I).