如何将一组实例传递给 Alloy 分析器的求值器中的函数或谓词?

How can I pass a set of instances to a function or predicate in Alloy Analyzer's Evaluator?

BLUF:我有一个谓词,它将一个签名实例和一组具有相同签名的实例作为参数。在生成模型的实例时,我想将签名的实例传递给谓词,但我不知道如何传递一组实例,如果可能的话。

Alloy 的 Evaluator 似乎没有详细记录,除非我错过了它。我有 Daniel Jackson 的书,完成了教程,并在网上找到了各种其他资源,但似乎没有人真正解决如何使用 Evaluator 的问题。

我试过这样的符号:

myPred[instance[=11=],set(instance,instance)]

myPred[instance[=12=],set[instance,instance]]

myPred[instance[=13=],(instance,instance)]

myPred[instance[=14=],[instance,instance]]

评估员不喜欢其中任何一个。是否可以传递一组实例?如果是这样,我该怎么做?感谢您的帮助!

所以,对我来说,以通常的方式,几乎在我问这个问题的同时,我就想到了答案(或者至少是一种做我想做的事情的方法)。我只是简单地使用联合运算符“+”来传递集合。

myPred[instance[=10=], instance + instance]

对于给您带来的不便,我们深表歉意,但这也许会对其他人有所帮助!