Possible typo or error in symbolic notation
-
Key: OCL25-228
-
Status: open
-
Source: Nanjing University ( Zhuo Cao)
-
Summary:
Issue Description
1. In *Definition A.22*, the following symbolic condition appears to be incorrect:
{if } n > 2 \ \text{or } M_j - {0,1} = \emptyset \ \text{ then }
[
\text
r_{j(as;ri)} : t_{ci} \rightarrow Set, t_{cj} \in \Omega_{nav}(c)
]
Based on the intended semantics of multiplicities, the condition should instead be:
[
\text{if }n > 2 \ \text
{or }M_j -
{0,1} \neq \emptyset \ \text{ then }
r_{j(as;ri)} : t_{ci} \rightarrow Set(t_{cj}) \in \Omega_{nav}(c)
]
That is, the set difference ( M_j - {0,1}) should be *non-empty*, rather than empty, in order for the navigation to yield a set-valued result.
2. In Definition A.23, the symbolic notation appears to be incorrect.
{c}_i) = { \underline{c}
The definition currently states:
[
L(as)(\underline_j \mid (\underline
{c}_1, \ldots, \underline{c}_i, \ldots, \underline
{c}_j, \ldots, \underline{c}n) \in \sigma{\text{CLASS}}(c) }
{c}_i) = { \underline{c}
]
However, since ( L(as) ) is defined over an association ( as ), the tuple should range over the association relation rather than a class relation. Therefore, the definition should instead be:
[
L(as)(\underline_j \mid (\underline
{c}_1, \ldots, \underline{c}_i, \ldots, \underline
{c}_j, \ldots, \underline{c}n) \in \sigma{\text{ASSOC}}(as) }
] -
Reported: OCL 2.4 — Wed, 14 Jan 2026 08:14 GMT
-
Updated: Thu, 29 Jan 2026 08:54 GMT