fact: Definition TupleDefs' {n'} (HeadingTypes : Vector.t Type n') (HeadingNames : Vector.t string n') : (forall (attr : Fin.t n'), cMethDef (Rep := @Tuple heading) (GetTupleSig (Vector.nth HeadingNames attr) (Vector.nth HeadingTypes attr))) -> (forall (attr : Fin.t n'), cMethDef (Rep := @Tuple heading) (SetTupleSig (Vector.nth HeadingNames attr) (Vector.nth HeadingTypes attr))) -> ilist (B := cMethDef (Rep := @Tuple heading)) (TupleSigs' HeadingTypes HeadingNames) := Vector.rect2 (fun n HeadingTypes HeadingNames => (forall (attr : Fin.t n), cMethDef (Rep := @Tuple heading) (GetTupleSig (Vector.nth HeadingNames attr) (Vector.nth HeadingTypes attr))) -> (forall (attr : Fin.t n), cMethDef (Rep := @Tuple heading) (SetTupleSig (Vector.nth HeadingNames attr) (Vector.nth HeadingTypes attr))) -> ilist (n := n * 2) (B := cMethDef (Rep := @Tuple heading)) (TupleSigs' HeadingTypes HeadingNames)) (fun _ _ => ()) (fun n HeadingTypes HeadingNames TupleDefs' aType id GetTupleDef' SetTupleDef' => icons (GetTupleDef' Fin.F1) (icons (SetTupleDef' Fin.F1) (TupleDefs' (fun n => GetTupleDef' (Fin.FS n)) (fun n => SetTupleDef' (Fin.FS n))))) HeadingTypes HeadingNames.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Coq.ZArith.ZArith Fiat.Common.ilist2 Fiat.Common.StringBound Fiat.ADT Fiat.ADT.ComputationalADT Fiat.ADTNotation Fiat.ADTRefinement Fiat.ADTRefinement.BuildADTRefinements Fiat.QueryStructure.Specification.Representation.Heading Fiat.QueryStructure.Specification.Representation.Tuple