fact: Fixpoint imap {n} (As : Vector.t A n) : ilist As -> ilist As := match As return ilist As -> ilist As with | [] => fun il => inil | a :: As' => fun il => icons (@f a (ilist_hd il)) (imap As' (ilist_tl il)) end.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common Fiat.Common.VectorFacts