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)); } }
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)); } }
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)); } }