抽象によるソフトウェア設計 第3章 論理系 その9

ようやく第3章を終えます。今日は 3.7 「濃度制約と整数」。

  • 関係に演算子 # を適用すると、タプルの数が得られる
  • 整数の演算には plus, minus, mul, div, rem が利用できる
    • Alloy では集合(関係)のほうが主役なので、整数の演算はアルファベットの演算子なんですね
  • 比較演算子は記号 : = < > =< >= (>= は C などと記号の順番が逆)
  • sum
    • e.sum は整数の集合 e の総和
    • sum x : e | ie は e の各要素について ie を評価した結果の整数の総和
  • 整数は関係のアトムとして使える
    • S =< T は S, T が整数の集合なら (S.sum) =< (T.sum) と解釈される
    • ただし = は集合としての比較の意味のままなのでちょっとややこしい

長かった第3章も終わり、次は第4章「言語」に入ります。 Alloy の言語仕様についてですね。