fact: Fixpoint i3list2 {n} {l : Vector.t A n} : ilist3 (B := B) l -> Type := match l return ilist3 (B := B) l -> Type with | [] => fun _ => unit | a :: l' => fun il => @prim_prod (C (ilist3_hd il)) (i3list2 (ilist3_tl il)) end.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common.ilist Fiat.Common.ilist3