fact: Fixpoint imap2 {n} (As : Vector.t A n) : ilist2 As -> ilist2 As := match As return ilist2 As -> ilist2 As with | [] => fun il => inil2 | a :: As' => fun il => icons2 (@f a (ilist2_hd il)) (imap2 As' (ilist2_tl il)) end.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common.ilist Fiat.Common Fiat.Common.VectorFacts