Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        protected override IEmbedTemplate makeMergeTemplate(IEnumerable <ISet <GT> > canonicalSets)
        {
            var eTemplate = RMergeTemplateMaker.make(this, canonicalSets);

            return(eTemplate);
        }