| 1040 | // signature: { |
| 1041 | // domain: 'Predicates', |
| 1042 | // canonical: (args, { engine: ce }) => |
| 1043 | // ce._fn('Not', [ce.function('SubsetEqual', args)]), |
| 1044 | // }, |
| 1045 | // }, |
| 1046 | |
| 1047 | // |
| 1048 | // Functions |
| 1049 | // |
| 1050 | |
| 1051 | // Note: `Intersection`, `Union`, `SetMinus` and `NotElement` tolerate |
| 1052 | // *label operands* (see `isLabelOperand`) where a set is expected: |
| 1053 | // olympiad geometry uses `P = AC \cap BD` (lines through points) and group |
| 1054 | // theory uses `x \in G \setminus H`, `|H \cap xH|`. Such expressions stay |
| 1055 | // inert instead of flagging `incompatible-type`. |
| 1056 | |
| 1057 | // |
| 1058 | // Ring constructions (inert, v1) |