根据 Alloy 4.2 的发行说明,存在与整数相关的语义更改。这些变化似乎对 Alloy 书的练习 A.1.6 产生了影响。
在本练习中,以以下代码为基础(我在最后添加了“Int”以显示我的问题)。当运行“show”谓词时,可视化器显示一个实例,但这个实例除了整数之外还包含两个原子“Univ0”和“Univ1”。
module exercises/spanning
pred isTree(r: univ->univ) {}
pred spans(r1, r2: univ->univ) {}
pred show(r, t1, t2: univ->univ) {
spans[t1,r] and isTree[t1]
spans[t2,r] and isTree[t2]
t1 != t2
}
run show for 3 Int
这两个原子“Univ0”和“Univ1”是什么意思?他们为什么在那里?它们与在 Alloy 4.1.10 上执行的代码不同。