fact: Definition Iterate_Equiv_For_UnConstrQuery_In_body {m : nat} {qs_schema : RawQueryStructureSchema} {ResultT} (schemaIdx : Fin.t _) (body : @RawTuple _ -> Comp (list ResultT)) (attrIdx : Fin.t _) (a : Vector.t Type m) (a_proj_index : Vector.nth (AttrList (GetNRelSchemaHeading (qschemaSchemas qs_schema) schemaIdx)) attrIdx -> Fin.t m) (a_proj : forall (attr : Vector.nth _ attrIdx), a[@a_proj_index attr]) (a_inj : forall idx, Vector.nth a idx -> Vector.nth (AttrList (GetNRelSchemaHeading (qschemaSchemas qs_schema) schemaIdx)) attrIdx) (r_n : UnConstrQueryStructure (DecomposeRawQueryStructureSchema qs_schema schemaIdx attrIdx a)) : Comp (list ResultT) := (fix Iterate_Equiv_For_UnConstrQuery_In_body' (m : nat) := match m return (Fin.t m -> Comp (list ResultT)) -> _ with | 0 => fun results => ret nil | S n'' => fun results => res <- results Fin.F1; res' <- Iterate_Equiv_For_UnConstrQuery_In_body' n'' (fun idx => results (Fin.FS idx)); ret (List.app res res') end) _ (fun idx => For (UnConstrQuery_In r_n idx (fun tup => body (Tuple_DecomposeRawQueryStructure_inj' _ _ a a_inj idx tup)))).
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Vectors.Vector Coq.Strings.Ascii Coq.Bool.Bool Coq.Lists.List Fiat.Common.SumType Fiat.Computation.ListComputations Fiat.QueryStructure.Automation.AutoDB Bedrock.Word Bedrock.Memory