/// <summary>
        /// Creates a boolean slot for expression that comes from originalCellNum, i.e.,
        /// the value of the slot is <paramref name="expr"/> and the name is "_from{<paramref name="originalCellNum"/>}", e.g., _from2
        /// </summary>
        internal BooleanProjectedSlot(BoolExpression expr, CqlIdentifiers identifiers, int originalCellNum)
        {
            m_expr         = expr;
            m_originalCell = new CellIdBoolean(identifiers, originalCellNum);

            Debug.Assert(!(expr.AsLiteral is CellIdBoolean) ||
                         BoolLiteral.EqualityComparer.Equals((CellIdBoolean)expr.AsLiteral, m_originalCell), "Cellid boolean for the slot and cell number disagree");
        }
 internal BooleanProjectedSlot(
     BoolExpression expr,
     CqlIdentifiers identifiers,
     int originalCellNum)
 {
     this.m_expr         = expr;
     this.m_originalCell = new CellIdBoolean(identifiers, originalCellNum);
 }