私には2つのクラスがAあり、それらBのクラスの追加データとの関係がありRます。
したがって、AとBはを介して相互に関連付けられていRます。
sig A {}
sig B {}
sig R {
a : A,
b : B,
data : Bool
}
ここで、Boolは次のように定義されます。
sig Bool {}
sig True, False extends Bool {}
今、私はAこのように拡張します:
sig A{
allb : some B
}
これには、これとそれBの間に関係があり、データがタイプであるすべてのインスタンスが含まれます。ABTrue
次の論理ステートメントをAlloyファクトとして表現したいと思います。

(ソース:dropproxy.com)
ここでTrue == 1、とは、とのすべてのインスタンスをそれぞれセットし、含むとFalse != 1仮定Aします。RAR
私がこれまでに試したことは、fun trueR(a : A)すべてRの'を返す必要があるR.a = a and r.data = Trueaとfact allbIsRTrue、それぞれに対して。によって返される'のA allb合計である必要があることを示すaを定義することです。R.btrueR
ただし、ここで行き詰まり、参照内のセットを合計するための適切な構成が見つからず、試行するとsum構文エラーが発生します。
正式な制約をAlloyファクトとして指定するにはどうすればよいですか?