fact: Fixpoint Update_Iterate_Dep_Type (n : nat) (k : Fin.t n) (P : Dep_Type (Fin.t n)) (X0 : Iterate_Dep_Type_BoundedIndex P) (a' : P k ) {struct k} : Iterate_Dep_Type_BoundedIndex P := match k in Fin.t n return forall (P : Fin.t n -> Type), Iterate_Dep_Type_BoundedIndex P -> P k -> Iterate_Dep_Type_BoundedIndex P with | Fin.F1 _ => fun P X0 a' => Build_prim_prod a' (ilist.prim_snd X0) | Fin.FS i k' => fun P X0 a' => Build_prim_prod (ilist.prim_fst X0) (Update_Iterate_Dep_Type k' (fun i => P (Fin.FS i)) (ilist.prim_snd X0) a') end P X0 a'.
imports: Coq.Arith.Arith Coq.Lists.List Coq.Sets.Ensembles Coq.Strings.String Fiat.Common Fiat.Common.ilist Fiat.Common.BoundedLookup Fiat.Common.DecideableEnsembles