| 260 | | Let `s1` and `s2` be expressions of [#scope-type type $scope]. The following are all CIVL-C expressions of boolean type: |
| 261 | | |
| 262 | | * `s1 == s2` holds iff `s1` and `s2` refer to the same dynamic scope. |
| 263 | | * `s1 != s2` holds iff `s1` and `s2` refer to different dynamic scopes. |
| 264 | | * `s1 <= s2` holds iff `s1` is equal to or a descendant of `s2`, i.e., `s1` is equal to or contained in `s2`. |
| 265 | | * `s1 < s2` holds iff `s1` is a strict descendant of `s2`, i.e., `s1` is contained in `s2` and is not equal to `s2`. |
| 266 | | * `s1 > s2` is equivalent to `s2 < s1`. |
| 267 | | * `s1 >= s2` is equivalent to `s2 <= s1`. |
| 268 | | |
| 269 | | Each of these expressions is erroneous if `s1` or `s2` is undefined. |
| | 260 | Let ''s,,1,,'' and ''s,,2,,'' be expressions of [#scope-type type $scope]. The following are all CIVL-C expressions of boolean type: |
| | 261 | |
| | 262 | * ''s,,1,,''`==`''s,,2,,'' holds iff ''s,,1,,'' and ''s,,2,,'' refer to the same dynamic scope. |
| | 263 | * ''s,,1,,''`!=`''s,,2,,'' holds iff ''s,,1,,'' and ''s,,2,,'' refer to different dynamic scopes. |
| | 264 | * ''s,,1,,''`<=`''s,,2,,'' holds iff ''s,,1,,'' is equal to or a descendant of ''s,,2,,'', i.e., ''s,,1,,'' is equal to or contained in ''s,,2,,''. |
| | 265 | * ''s,,1,,''`<`''s,,2,,'' holds iff ''s,,1,,'' is a strict descendant of ''s,,2,,'', i.e., ''s,,1,,'' is contained in ''s,,2,,'' and is not equal to ''s,,2,,''. |
| | 266 | * ''s,,1,,''`>`''s,,2,,'' is equivalent to ''s,,2,,''`<`''s,,1,,''. |
| | 267 | * ''s,,1,,''`>=`''s,,2,,'' is equivalent to ''s,,2,,''`<=`''s,,1,,''. |
| | 268 | |
| | 269 | Each of these expressions is erroneous if ''s,,1,,'' or ''s,,2,,'' is undefined. |