fact: Fixpoint imap3 {n} (As : Vector.t A n) : ilist3 (B:=B) As -> ilist3 (B:=B') As := match As return ilist3 As -> ilist3 As with | [] => fun il => inil3 | a :: As' => fun il => icons3 (f (ilist3_hd il)) (imap3 As' (ilist3_tl il)) end.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common.ilist Fiat.Common