protected override GT makeAndEmbedNewGT(Function f, GTT gtt) { #region preconditions #if DEBUG Debug.Assert(upToDateGTTMM(gtt)); Debug.Assert(!gttData[gtt].sgfas.ContainsKey(f)); Debug.Assert(inScope(f)); Debug.Assert(gttDepth(gtt) < maxGTDepth); #endif #endregion preconditions var et = RMergeTemplateMaker.make(this, f, gtt); var gti = sources.gtts.getLTTD(gtt).getSGFA(f); #region consistency // Debug.Assert(et.checkSourcesBefore()); #endregion consistency et.getGTs(); embedTermStructure(et); #region consistency Debug.Assert(!isRefuted); #endregion consistency var gt = et.getLGT(gti); #region consistency Debug.Assert(gttData[gtt].sgfas[f].gt == gt); Debug.Assert(invariant()); #endregion consistency #region postconditions Debug.Assert(gt.gfasByFunction[f].ContainsKey(gtt)); #endregion postconditions return(gt); }
public static Universe.IEmbedTemplate make(RU universe, IEnumerable <ISet <GT> > canonicalSets) { var maker = new RMergeTemplateMaker(universe); return(maker.make(canonicalSets)); }
protected override IEmbedTemplate makeMergeTemplate(IEnumerable <ISet <GT> > canonicalSets) { var eTemplate = RMergeTemplateMaker.make(this, canonicalSets); return(eTemplate); }