public WhereClause(BooleanExpression ex)
        {
            CNF = new ConjunctiveNormalForm();
            var disj = new Disjunction();

            disj.OR.Add(ex);
            CNF.AND.Add(disj);
        }
        public ConjunctiveNormalForm(ConjunctiveNormalForm other)
        {
            AND = new List <Disjunction>(other.AND.Count);

            foreach (var disj_copy in other.AND.Select(disj => new Disjunction(disj)))
            {
                AND.Add(disj_copy);
            }
        }
 public WhereClause(WhereClause other)
 {
     CNF = new ConjunctiveNormalForm(other.CNF);
 }
 public WhereClause()
 {
     CNF = new ConjunctiveNormalForm();
 }