fact: Definition FiniteSetCImpl : cADT FiniteSetSig := cADTRep FSMSet.t { Def Constructor sEmpty (_ : unit) : rep := FSMSet.empty, Def Method sAdd (fs : rep , w : W) : unit := (FSMSet.add w fs, tt), Def Method sRemove (fs : rep , w : W) : unit := (FSMSet.remove w fs, tt), Def Method sIn (fs : rep , w : W) : bool := (fs, FSMSet.mem w fs), Def Method sSize (fs : rep , _ : unit) : W := (fs, from_nat (FSMSet.cardinal fs)) }.
imports: Fiat.FiniteSetADTs.FiniteSetADT Coq.Strings.String Coq.Sets.Ensembles Coq.Sets.Finite_sets Coq.Lists.List Coq.Sorting.Permutation Coq.MSets.MSetInterface Coq.MSets.MSetAVL Coq.MSets.MSetList Coq.MSets.MSetRBT Fiat.ADT Fiat.ADT.ComputationalADT Fiat.ADTRefinement.Core Fiat.ADTNotation Fiat.ADTRefinement.GeneralRefinements Fiat.Common.IterateBoundedIndex Fiat.Common.Ensembles.EnsembleListEquivalence