【发布时间】:2018-02-22 22:42:16
【问题描述】:
All men are mortals.
Socrates is a man.
Therefore, Socrates is a mortal.
在合金模型下方表达推理规则。这是表达推理规则的好方法吗?你能提供更好的表达方式吗?
abstract sig man {}
// Socrates is a man
one sig Socrates extends man{}
one sig Plato extends man{}
one sig Aristotle extends man{}
one sig Earthly {
mortals: set man
}
// All men are mortal
fact All_men_are_mortal {
all m: man | m in Earthly.mortals
}
// Therefore, Socrates is mortal
assert Socrates_is_mortal {
Socrates in Earthly.mortals
}
check Socrates_is_mortal
【问题讨论】:
-
我投票决定将此问题作为离题结束,因为它要求进行代码审查(因此这太宽泛/基于意见)。它可能会被调整为the code review stackexchange 的主题。
标签: alloy