Пример #1
0
        internal override Automaton <IMonadicPredicate <BDD, T> > getAutomaton(SimpleList <Variable> variables, ICartesianAlgebraBDD <T> ca)
        {
            var k = variables.IndexOf(var);

            if (k < 0)
            {
                throw new AutomataException(AutomataExceptionKind.InvalidWS1Sformula_UnknownVariable);
            }

            if (var.IsFirstOrder)
            {
                return(BasicAutomata.MkLabelOfPosition(k, pred, ca));
            }
            else
            {
                return(BasicAutomata.MkLabelOfSet(k, pred, ca));
            }
        }
Пример #2
0
        internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits)
        {
            var k = variables.IndexOf(var);

            if (k < 0)
            {
                throw new ArgumentOutOfRangeException("variables", string.Format("does not contain variable: {0}", var));
            }

            k = k + nrOfLabelBits;

            if (var.IsFirstOrder)
            {
                return(BasicAutomata.MkLabelOfPosition2(k, pred as BDD, alg));
            }
            else
            {
                return(BasicAutomata.MkLabelOfSet(k, pred as BDD, alg));
            }
        }
Пример #3
0
        internal override Automaton <IMonadicPredicate <BDD, T> > GetAutomatonX(SimpleList <Variable> variables, ICartesianAlgebraBDD <T> alg, bool singletonSetSemantics)
        {
            var k = GetVarIndex(var, variables);

            if (var.IsFirstOrder)
            {
                if (singletonSetSemantics)
                {
                    return(BasicAutomata.MkLabelOfPosition1 <T>(k, pred, alg));
                }
                else
                {
                    return(BasicAutomata.MkLabelOfPosition2 <T>(k, pred, alg));
                }
            }
            else
            {
                return(BasicAutomata.MkLabelOfSet <T>(k, pred, alg));
            }
        }
Пример #4
0
        internal override Automaton <BDD> getAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits)
        {
            var k = variables.IndexOf(var);

            if (k < 0)
            {
                throw new AutomataException(AutomataExceptionKind.InvalidWS1Sformula_UnknownVariable);
            }

            k = k + nrOfLabelBits;

            if (var.IsFirstOrder)
            {
                return(BasicAutomata.MkLabelOfPosition1(k, pred as BDD, alg));
            }
            else
            {
                return(BasicAutomata.MkLabelOfSet(k, pred as BDD, alg));
            }
        }
Пример #5
0
        internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits, bool singletonSetSemantics)
        {
            var k = GetVarIndex(var, variables);

            k = k + nrOfLabelBits;

            if (var.IsFirstOrder)
            {
                if (singletonSetSemantics)
                {
                    return(BasicAutomata.MkLabelOfPosition1(k, pred as BDD, alg));
                }
                else
                {
                    return(BasicAutomata.MkLabelOfPosition2(k, pred as BDD, alg));
                }
            }
            else
            {
                return(BasicAutomata.MkLabelOfSet(k, pred as BDD, alg));
            }
        }