AlloyのFact
常に成り立つと仮定する制約を記述する
常に真であるとみなされる
Invariant(不変条件)
を記述する感じ
モデル全体に適用される
Overconstraintに注意する
FactとAssetionの違い
https://alloytools.org/tutorials/online/sidenote-format-fact.html
https://alloytools.org/tutorials/online/sidenote-alternative-static-appended.html
code:alloy
fact { ... }
fact { F }
fact 名前 { F }
sig S { hogehoge }{ F }
factの中に
AlloyのPredicate
を含めても良い
試行錯誤の段階ではPredicateにしておいて、確定したらfactに持ち上げる感じかな
mrsekut.icon
他には、
runの実行結果を見やすくする
AlloyのRun
で解析する際のスコープを狭めることができる
などの補助的な目的で用いることもある
『形式手法入門』.icon
p.20
/mrsekut-book-4274068587/133 (4.5 ファクト、述語、関数、アサーション)