fact: Record RawRelation (RelationSchema : RawSchema) := { rawRel : @IndexedEnsemble (@RawTuple (rawSchemaHeading RelationSchema)); rawAttrconstr : match (attrConstraints RelationSchema) with | Some Constr => forall tup, rawRel tup -> Constr (indexedRawTuple tup) | None => True end; rawTupleconstr : match (tupleConstraints RelationSchema) with | Some Constr => forall tup tup', elementIndex tup <> elementIndex tup' -> rawRel tup -> rawRel tup' -> Constr (indexedRawTuple tup) (indexedRawTuple tup') | None => True end }.
imports: Coq.Lists.List Coq.Strings.String Coq.Logic.FunctionalExtensionality Coq.Sets.Ensembles Fiat.Common.StringBound Fiat.Common.Ensembles.IndexedEnsembles Fiat.QueryStructure.Specification.Representation.Schema Fiat.QueryStructure.Specification.Representation.Heading Fiat.QueryStructure.Specification.Representation.Tuple