【问题标题】:Transitive closure in KodKodKodKod 中的传递闭包
【发布时间】:2017-04-14 08:49:48
【问题描述】:

我在使用 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 的传递闭包中

【问题讨论】:

    标签: alloy


    【解决方案1】:

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

    假设r1 是二进制的,类似于k.in(r1.closure()).not(),其中k 是计算结果为二进制关系的任何表达式,应该可以工作。

    【讨论】:

    • 是的,我已经完成了,通过添加一些连接来使我的关系二进制化时遇到了一些麻烦,但它确实有效,所以还是谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多