In 19.8.8.4 rule 4, it is stated that for the union, intersect, and except expressions, if X and Y are both striding, then X op Y is crawling.
This is fine for union: given A/B union A/B/C, both operands are striding, but the result can contain nodes whose ancestors are also in the result, so the result must be crawling.
However, with intersect and except, the result is always a subset of the first operand, so if the first operand is striding, then the result must also be striding.
In 19.8.8.4 rule 4, it is stated that for the union, intersect, and except expressions, if X and Y are both striding, then X op Y is crawling.
This is fine for union: given
A/B union A/B/C
, both operands are striding, but the result can contain nodes whose ancestors are also in the result, so the result must be crawling.However, with intersect and except, the result is always a subset of the first operand, so if the first operand is striding, then the result must also be striding.