KodKod的传递封闭

时间:2017-04-14 08:49:49

标签: alloy

我在使用方法 closure()时遇到问题。如果有人能够解释传递闭包在KodKod中是如何工作的。

让我们举个例子:

Relation r1 = Relation.nary("r1",4);
Relation r2 = Relation.binary("r2");
Relation i = Relation.unary("i");
Relation j = Relation.unary("j");
Formula f = r.in(r2.product(i).product(j));

我想知道怎么说:变量k Oneof(j)不在关系r1的传递闭包中

1 个答案:

答案 0 :(得分:1)

示例中关系r1的Arity为4,传递闭包只能应用于二元关系。

假设r1是二进制的,类似于k.in(r1.closure()).not(),其中k是任何计算为二元关系的表达式都应该有效。