了解Alloy Visualizer显示使用箭头操作符创建的关系

时间:2016-11-11 21:24:34

标签: alloy

为了帮助我理解箭头(产品)操作符,我创建了一个WhitePages模型。每个白页都有一个从名称到地址的映射(此名称/地址映射使用箭头运算符)。我创建了一个谓词来显示白页 w 的名称/地址映射。在我指定的谓词中,名称/地址关联的数量是3.参见下面的模型。

根据箭头运算符的定义,Name-> Address关系包含名称和地址的所有组合。所以,正如我所看到的,只有一个可能的例子:

enter image description here

令人惊讶的是,Visualizer并没有这样做:

enter image description here

对我来说,这看起来不是一个有效的实例。名称/地址映射在哪里?

sig WhitePages {
    address: Name->Address
}

sig Name {}

sig Address {}

pred Show (w: WhitePages) {#w.address = 3}

run Show

1 个答案:

答案 0 :(得分:1)

您将它投影到地址上,因此您现在每个地址都有一个快照。您将在底部看到一个UI控件,让您选择地址。请注意,您的约束表示名称 - 地址关系中有3对,因此它们可以分布在不同的地址中。