not

The not filter takes a single filter as argument. It matches a position exactly when its argument does not match the position. For example,
not check
matches a position in which neither side is in check.

If its argument filter is a set, then so is the not filter. The not filter represents all the squares not in the set represented by its argument at the position. For example,

not [Pp]
represents all the squares on which there is no pawn.

Like all CQL filters, not tries to make its argument as long as possible. Thus

 not K or R
means
 not {K or R}
that is, the squares on which there is neither a King nor a Rook. It does not mean
 {not K} or R

Examples