Hi,
I am encountering a problem with using Multiplicity keywords within a subset constraint.
In the Software Abstractions Revised edition, on bottom page 275 it says
In either a declaration
decl ::= [disj] name,+ : [disj] expr
or a subset constraintexpr ::= expr in expr
the right-hand side expression may include multiplicities, and the keyword set that represents the omission of a multiplicity constraint.
and on top page 290 it says
As explained in section B.7.3, a boolean expression formed with the in keyword may, like a declaration, use multiplicity symbols to impose an additional constraint.
I think the above means that I can write something like this:
fact {
x in lone S
}
But this is recognized as a syntax error in the Alloy Analyzer.
It would be great if someone could explain the semantics of such a constraint too.
Thank you,
Jack