fact: Record RawQueryStructure (QSSchema : RawQueryStructureSchema) := { rawRels : ilist2 (B := RawRelation) (qschemaSchemas QSSchema); crossConstr : forall (idx idx' : _), match (BuildQueryStructureConstraints QSSchema idx idx') with | Some CrossConstr => forall (tup : @IndexedRawTuple (GetNRelSchemaHeading (qschemaSchemas QSSchema) idx)), idx <> idx' -> (rawRel (ith2 rawRels idx )) tup -> CrossConstr (indexedElement tup) (rawRel (ith2 rawRels idx')) | None => True end }.
imports: Coq.Lists.List Coq.Strings.String Coq.Logic.FunctionalExtensionality Coq.Sets.Ensembles Coq.Arith.Arith Fiat.Computation.Core Fiat.ADT.ADTSig Fiat.ADT.Core Fiat.Common.StringBound Fiat.Common.ilist2 Fiat.Common.ilist Fiat.ADTNotation.BuildADT Fiat.ADTNotation.BuildADTSig Fiat.Common.Ensembles.IndexedEnsembles Fiat.QueryStructure.Specification.Representation.Notations Fiat.QueryStructure.Specification.Representation.Heading Fiat.QueryStructure.Specification.Representation.Tuple Fiat.QueryStructure.Specification.Representation.Schema Fiat.QueryStructure.Specification.Representation.Relation Fiat.QueryStructure.Specification.Representation.QueryStructureSchema