-
Key: SYSML21-713
-
Status: open
-
Source: Diversitas Systems Engineering Ltd ( Geoffrey Tullener)
-
Summary:
TransitionFeatureMembership::validateTransitionFeatureMembershipGuardExpression: Guard check binds a Boolean to an Expression variable Where: SysML 2.0 (formal/2026-03-02), ยง8.3.18.8 TransitionFeatureMembership, PDF p.372 (printed 340) Published OCL: kind = TransitionFeatureKind::guard implies transitionFeature.oclIsKindOf(Expression) and let guard : Expression = transitionFeature.oclIsKindOf(Expression) in guard.result.specializesFromLibrary('ScalarValues::Boolean') and guard.result.multiplicity <> null and guard.result.multiplicity.hasBounds(1,1) Correction proposed: kind = TransitionFeatureKind::guard implies transitionFeature.oclIsKindOf(Expression) and let guard : Expression = transitionFeature.oclAsType(Expression) in guard.result.specializesFromLibrary('ScalarValues::Boolean') and guard.result.multiplicities()->exists(m | m.allSupertypes()->including(m)->selectByKind(MultiplicityRange)->exists(r | r.hasBounds(1, 1))) Proof of fault: (a) A Boolean is bound to a variable declared Expression and then navigated as one. (b) Guard results never own a multiplicity, so the rule refuses every guard the library allows. Likely cause: Original authoring error (no similar rule). No rule in KerML or SysML is similar (best match 25%): a wrong operator (test instead of cast), plus a multiplicity test that the library never satisfies. Basis of fix: (a) is determined (the cast). (b) is an interpretation: owned-or-inherited multiplicity.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:46 GMT
-
Updated: Fri, 30 Oct 2026 21:23 GMT
SYSML21 — Guard check binds a Boolean to an Expression variable
- Key: SYSML21-713
- OMG Task Force: Systems Modeling Language (SysML) 2.1 RTF