fact: Definition MySpec : ADT MySig := Def ADT { rep := QueryStructure MySchema, const "Empty" (_ : unit) : rep := empty,, update "AddDog" (dog : Dog) : bool := Insert dog into "Dog", query "YoungOwners'Breeds" ( ageLimit : nat ) : list string := For (d in "Dog") (o in "Person") Where (ageLimit > o!"Age") Where (d!"Name" = o!"Name") Return (d!"Breed"), query "BreedPopulation" ( breed : string ) : nat := Count (For (d in "Dog") Where (d!"Breed" = breed) Return ()) }.
imports: Fiat.QueryStructure.Specification.Representation.QueryStructureNotations Fiat.QueryStructure.Implementation.ListImplementation ComputationalADT AddCache ADTCache CacheADT