fact: Fixpoint BuildTuple {n} (attrs : Vector.t Attribute n) : ilist2 (B := Component) attrs -> @Tuple (BuildHeading attrs) := match attrs return ilist2 (B := Component) attrs -> @Tuple (BuildHeading attrs) with | Vector.nil => fun components => inil2 | Vector.cons attr n' attrs' => fun components => icons2 (B := id) (value (ilist2_hd components)) (BuildTuple attrs' (ilist2_tl components)) end.
imports: Coq.Lists.List Coq.Strings.String Coq.Logic.FunctionalExtensionality Coq.Sets.Ensembles Fiat.Common.ilist2 Fiat.Common.StringBound Coq.Program.Program Fiat.QueryStructure.Specification.Representation.Heading Fiat.Common.Ensembles.IndexedEnsembles Fiat.QueryStructure.Specification.Representation.Notations