試してみるよ。 とりあえず商品をまとめたセット商品についての仕様を書いてみる。 まず商品の定義 module exec/shohin sig Shohin{} pred show{ } run show sigはJavaとかのclassだと思えばだいたいOK。 なんか商品がみっつ出た。 じゃあ、セット商品を定義してみる。 sig SetShohin{ bundle: set Shohin } おー、同じ商品が3つのセットに含まれてしまった。Alloyさんイヤらしいとこついてくる。 ということで、ひとつの商品は多くてもひとつのセットにしか含まれない、っていう制約を加えます。 fact { all s: Shohin | lone bundle.s } 書き下ろすと「すべての商品について、商品をbundleとして持つのはたかだか1つ」になるんですけど、この、フィールドを左に書く書き方は通常のプ