fact: Definition ilist_hd {As : list A} (il : ilist As) : match As return ilist As → Type with | a :: As' => fun il => B a | [] => fun _ => unit end il := match As return ∀ (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 => fst il | [] => fun il => tt end il.
imports: Coq.Unicode.Utf8 Coq.Lists.List Equations(Equations)