コード例 #1
0
        internal override Automaton <BDD> getAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits)
        {
            var aut = phi.getAutomatonBDD(variables, alg, nrOfLabelBits);
            var res = aut.Determinize(alg).Complement(alg).Minimize(alg);

            foreach (var x in phi.EnumerateFreeVariablesPossiblyWithDuplicates())
            {
                if (x.IsFirstOrder)
                {
                    var sing = new WS1SSingleton <T>(x).getAutomatonBDD(variables, alg, nrOfLabelBits);
                    res = res.Intersect(sing, alg).Determinize(alg).Minimize(alg);
                }
            }
            return(res);
        }
コード例 #2
0
 internal override IEnumerable <Variable> EnumerateFreeVariablesPossiblyWithDuplicates()
 {
     foreach (var v in phi.EnumerateFreeVariablesPossiblyWithDuplicates())
     {
         if (!var.Equals(v))
         {
             yield return(v);
         }
     }
 }
コード例 #3
0
 internal override IEnumerable <Variable> EnumerateFreeVariablesPossiblyWithDuplicates()
 {
     foreach (var v in phi1.EnumerateFreeVariablesPossiblyWithDuplicates())
     {
         yield return(v);
     }
     foreach (var v in phi2.EnumerateFreeVariablesPossiblyWithDuplicates())
     {
         yield return(v);
     }
 }