-
Key: SYSML21-711
-
Status: open
-
Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
-
Summary:
Definition::validateDefinitionVariationSpecialization: Variation check tests the element itself, so every variation fails Where: SysML 2.0 (formal/2026-03-02), §8.3.6.2 Definition (also 8.3.6.4 Usage), PDF p.300 (printed 268) Published OCL: isVariation implies not ownedSpecialization.specific->exists( oclIsKindOf(Definition) and oclAsType(Definition).isVariation) Correction proposed: isVariation implies not ownedSpecialization.general->exists( oclIsKindOf(Definition) and oclAsType(Definition).isVariation) Proof of fault: ownedSpecialization.specific is the Definition itself, so as written the rule refuses every variation, including every enum def (which must be a variation). general was meant. Likely cause: Original error, replicated across a family. The Usage rule is the Definition rule with "or Usage" added; both navigate specific. Nearest rule: Usage::validateUsageVariationSpecialization (SysML 2.0 PDF p.308 (printed 276)): isVariation implies not ownedSpecialization.specific->exists( oclIsKindOf(Definition) and oclAsType(Definition).isVariation or oclIsKindOf(Usage) and oclAsType(Usage).isVariation) Same defect in: Definition::validateDefinitionVariationSpecialization, Usage::validateUsageVariationSpecialization Basis of fix: Polarity fixed by KerML §8.3.1 (true = valid); with specific the rule is constant (always refuses, or never with the not removed), so only specific can be wrong. Interim fix checks direct generals; whether 'any other variation' also covers indirect supertypes is left for OMG to confirm. Question: Does 'any other variation' cover only direct generals (as corrected here) or all supertypes (allSupertypes())?
Provenance: found by deterministic checks of the OCL against the metamodel and OMG's reference implementation; the argument was reviewed and challenged by the reporter before filing. Further information on these methods is available on request.
Not blocking: we are proceeding with the correction above in our own implementation.
-
Reported: SysML 2.0 — Tue, 27 Oct 2026 18:42 GMT
-
Updated: Fri, 30 Oct 2026 21:29 GMT
SYSML21 — Variation check tests the element itself, so every variation fails
- Key: SYSML21-711
- OMG Task Force: Systems Modeling Language (SysML) 2.1 RTF