【发布时间】:2014-10-21 07:44:40
【问题描述】:
我面前有一个由不同模块(文件)组成的合金模型。 主模块(包含命令的模块)不包含任何签名声明,只有一个命令和一些事实。
该模型强制只有一个实例可能是可满足的,但经过分析,会找到几个可满足的实例。 我调查了生成的实例之间的差异,发现 Univ 签名神奇地出现了(除了内置的 univ 签名)。 生成的每个实例之间的差异来自于属于那个神秘添加物的原子数量。
在主模块添加签名后,Univ签名消失了。 当在包含执行命令的模块中找不到签名声明时,Alloy 分析器似乎会自行添加此签名。 这种行为是普遍需要的吗?如果是,为什么?
重现此行为的最简单方法是让模块仅包含:run {}
【问题讨论】:
标签: alloy