我试图让Alloy实例化一组完全有序的节点,但似乎无法做我想做的事情。这是一个简单的案例:
open util/ordering[S]
sig S {
rel : set S
}
pred show {}
run show for 4
我期待看到链中最多4个节点,但我看到4个节点彼此无关。杰克逊的书第6.1.1节建议使用util / ordering来定义这些东西,但我必须在这里遗漏一些东西。
答案 0 :(得分:1)
库模块在S上提供了一个排序关系,可以通过next和prev等函数访问(只需打开utils文件夹中的代码即可查看)。如果您愿意,也可以明确地访问该排序关系(但最好使用这些函数)。
您定义的关系rel不受影响,并且不受打开库模块的限制。如果你考虑一下,对于rel来说是没有意义的,因为在open语句中没有提到实例化排序(因此分析器必须猜测哪个关系是排序)。