AlloyはRelationを順序付けられたタプルの集合として表現する
AlloyはRelationを順序付けられたタプルの集合として表現する
a ↦ b ↦ cという関数がある時(a,b,c)と表現できる
集合なので、集合上の演算や->や.も得られる
例えば、2つのタプルが以下のようにある時
code:_
a = {(1, X), (2, Y)}
b = {(X, A), (Y, B)}
code:_
a.b = {(1, A), (2, B)}
1 ↦ XとX ↦ Aを結合したら、1 ↦ Aになっている
単に全ての組み合わせになる
code:_
a->b = {(1, X, X, A), (1, X, Y, B), (2, Y, X, A), (2, Y, Y, B)}
(1 ↦ X) ↦ (X ↦ A)なので、当然(1,X,X,A)が得られる
したがって、集合もスカラも関係も内部では同じ表現なので、同じ演算子を適用できる