OCL 2.5 RTF Avatar
  1. OMG Issue

OCL25 — How does Set distinguish duplicate values?

  • Key: OCL25-23
  • Legacy Issue Number: 19020
  • Status: open  
  • Source: Model Driven Solutions ( Ed Willink)
  • Summary:

    In 11.6.2: "It [Set] contains elements without duplicates."

    What is a duplicate?

    In SetTypeValue
    "All elements belonging to a set value have unique values.
    self.element->isUnique(e : Element | e.value)"

    >From isUnique, the basis of comparison is <>:
    forAll (x, y | (x.iter <> y.iter) implies (x.value <> y.value))

    But what is the Element::value to which "<>" is applied. It is far from clear that the semantics of the Element in Section 10 which is completely unrelated to MOF::Element leads to the obvious answer.

    Suggest adding the obvious WFR.

    context Set
    inv: forAll(x | self->count = 1)

    (count is already defined using "=")

    [And chnage isUnique to use this much more readable formulation.]

  • Reported: OCL 2.3.1 — Wed, 23 Oct 2013 04:00 GMT
  • Updated: Thu, 8 Oct 2015 14:11 GMT