Beispiel #1
0
 public CsPred <T> MkAnd(params CsPred <T>[] preds)
 {
     if (preds.Length == 0)
     {
         return(__true);
     }
     else
     {
         var bdd = preds[0].pred;
         int i   = 1;
         while (NodeAlgebra.IsSatisfiable((BDD)bdd) && i < preds.Length)
         {
             bdd = (BDD <T>)NodeAlgebra.MkAnd((BDD)bdd, preds[i++].pred);
         }
         return(new CsPred <T>(this, bdd));
     }
 }
Beispiel #2
0
 /// <summary>
 /// Remove the element from this part.
 /// </summary>
 /// <param name="elem">element to be removed</param>
 public void Remove(int elem)
 {
     elems = solver.MkAnd(elems, solver.MkNot(solver.MkSetFrom((uint)elem, maxbit)));
 }