≺
, ≻
, ≼
, ≽
Suppose X and Y are positions with the main pgn file. If the position Y is reached from X by making a nonempty sequence of moves in the pgn file, we say that position X is an ancestor of Y and write this as:
X≺Y
In ASCII, we would write X[<]Y
.
A position is not an ancestor of itself:
X≺X
is always false.
If either X is an ancestor of Y or X is equal to Y, we write
X≼Y
(ASCII: X[<=]Y
.)
If X is an ancestor of Y then we say that Y is a descendant of X.
The expression
Y≻X
means that Y is a descendant of X. (ASCII: Y[>]X
).
Naturally,
Y≽X
means that either Y is a descendant of X or Y is equal to X. (ASCII: Y[>=]X
).
comparison to <
Recall that if X and Y are positions, then
X<Yis true if the positionid of X is smaller than the position id of Y.
On the other hand,
X≺Y
is true if X is an ancestor of Y .
The positionid
of a position is chosen so that any position has a smaller position id than its descendants. Thus, if X≺Y
is true, then so is X<Y
.
The converse is not necessarily true however. If variations
is set in the CQL header, then it might be the case that X<Y
is true but X<Y
is false. However, if variations
is not set in the CQL header, so that only mainline positions are considered, then <
and ≺
are identical.
The value of ≺
The value of the positional relational symbols ≺, ≻, ≼, ≽
follows the precedence and conventions of the other relational symbols.
Thus, if X≺Y
is true, then its value is equal to X
.
Similarly,
X≺Y≺Zhas value equal to
X
when the expression is true.