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