fact: Definition ilist_hd {n} {As : Vector.t A n} (il : ilist As) : match As return ilist As -> Type with | a :: As' => fun il => B a | [] => fun _ => unit end il := match As return forall (il : ilist As), match As return ilist As -> Type with | a :: As' => fun il => B a | [] => fun _ => unit end il with | a :: As => fun il => prim_fst il | [] => fun il => tt end il.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common Fiat.Common.VectorFacts