Пример #1
0
        /// <summary>
        /// Constructs the automaton. The formula must be closed.
        /// </summary>
        public Automaton <T> GetAutomaton(IBooleanAlgebra <T> elementAlgebra)
        {
            var css = elementAlgebra as CharSetSolver;

            if (css != null)
            {
                var ws1s = this.ToWS1S();
                var aut  = ws1s.GetAutomatonBDD(css, (int)css.Encoding) as Automaton <T>;
                return(aut);
            }
            else
            {
                var ws1s = this.ToWS1S();
                var aut  = ws1s.GetAutomaton(new BDDAlgebra <T>(elementAlgebra));
                return(BasicAutomata.Restrict(aut));
            }
        }