fact: Definition BuildMostlySharpenedcADT Sig (DelegateIDs : nat) (DelegateSigs : Fin.t DelegateIDs -> ADTSig) (rep : (Fin.t DelegateIDs -> Type) -> Type) (cConstructors : forall (DelegateReps : Fin.t DelegateIDs -> Type) (DelegateImpls : forall idx, pcADT (DelegateSigs idx) (DelegateReps idx)) idx, cConstructorType (rep DelegateReps) (ConstructorDom Sig idx)) (cMethods : forall (DelegateReps : Fin.t DelegateIDs -> Type) (DelegateImpls : forall idx, pcADT (DelegateSigs idx) (DelegateReps idx)) idx, cMethodType (rep DelegateReps) (fst (MethodDomCod Sig idx)) (snd (MethodDomCod Sig idx))) (DelegateReps : Fin.t DelegateIDs -> Type) (DelegateImpls : forall idx, pcADT (DelegateSigs idx) (DelegateReps idx)) : cADT Sig := existT _ (rep DelegateReps) {| pcConstructors := cConstructors DelegateReps DelegateImpls; pcMethods := cMethods DelegateReps DelegateImpls |}.
imports: Coq.Lists.List Coq.Strings.String Fiat.Common Fiat.Common.ilist Fiat.Common.BoundedLookup Fiat.ADT.Core Fiat.ADT.ComputationalADT Fiat.ADTRefinement.Core Fiat.ADTRefinement.SetoidMorphisms