fact: Fixpoint ith {m : nat} {As : Vector.t A m} (il : ilist As) (n : Fin.t m) : B (Vector.nth As n) := match n in Fin.t m return forall (As : Vector.t A m), ilist As -> B (Vector.nth As n) with | Fin.F1 k => fun As => Vector.caseS (fun n As => ilist As -> B (Vector.nth As (@Fin.F1 n))) (fun h n t => ilist_hd) As | Fin.FS k n' => fun As => Vector_caseS' Fin.t (fun n As n' => ilist As -> B (Vector.nth As (@Fin.FS n n'))) (fun h n t m il => ith (ilist_tl il) m) As n' end As il.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common Fiat.Common.VectorFacts