ここんとこハイペースで更新してますが、仕事が忙しいことからの逃避です。 一郎、二郎、三郎の三人で駆けっこをして、その結果を次のように言っています。 一郎:「僕は一番じゃない」 二郎:「僕は一番だ」 三郎:「僕は二番だ」 三人のなかで一人だけウソをついています。それは誰でしょう? 引用元のコメントにも書きましたが、 モデルの存在/非存在に基づいて公理系(あるいはセオリー)の充足可能性をチェックするって話 ならば、モデル発見器の出番です*1。ということで、書いてみます。 ただまぁ、パズルとしては頭で考えたほうが明らかに&圧倒的に速そうなくらいシンプルな問題なので、Alloy Analyzerのモデル発見器としての使い方に重点をおいて、Alloyでの仕様の作り方を順を追って説明してみます。 まずは、3人が駆けっこする状況をぱぱっと書いてみます。 one sig FootRace { runner