fact: Definition CacheSpec : ADT _ := (Def ADT { rep := Ensemble (Key * Value), Def Constructor0 "EmptyCache" : rep := ret (Empty_set _) ,, Def Method2 "AddKey" (r : rep) (k : Key) (v : Value) : rep * bool := { r' | (SubEnsembleInsert (k, v) r (fst r')) /\ ((usedKey r k /\ snd r' = false) \/ (~ usedKey r k /\ snd r' = true))} }%ADTParsing) : ADT _.
imports: Coq.Sets.Ensembles Coq.Lists.List Coq.Strings.String Fiat.Common Fiat.Computation Fiat.ADT.ADTSig Fiat.ADT.Core Fiat.ADT.ComputationalADT Fiat.Common.BoundedLookup Fiat.Common.ilist Fiat.ADTNotation.BuildADTSig Fiat.Common.Coq__8_4__8_5__Compat