Join Alloy中的关系连接与算子

Join Alloy中的关系连接与算子,join,operators,relational-algebra,alloy,Join,Operators,Relational Algebra,Alloy,我已经对合金进行了全面的研究,发现了一些需要澄清的概念 首先,这是一个问题。(点连接)。我了解了它在一些小例子中的工作原理,但在这样的情况下: sig B {} sig A { rel: B -> C } sig C { rel1: B -> A } rel = {(a1,b1,c1), (a2,b2,c2)} rel1 = {(c1,b1,a1),(c2,b2,a2)} rel.rel1 = {(a1,b1,b1,a1),(a2,b2,b2,a2)} rel1.rel = {(c1

我已经对合金进行了全面的研究,发现了一些需要澄清的概念

首先,这是一个问题。(点连接)。我了解了它在一些小例子中的工作原理,但在这样的情况下:

sig B {}
sig A {
rel: B -> C
}
sig C {
rel1: B -> A
}
rel = {(a1,b1,c1), (a2,b2,c2)}
rel1 = {(c1,b1,a1),(c2,b2,a2)}
rel.rel1 = {(a1,b1,b1,a1),(a2,b2,b2,a2)}
rel1.rel = {(c1,b1,b1,c1),(c2,b2,b2,c2)
我没有得到rel.rel1或rel1.rel的结果。 有人能解释一下它是怎么工作的吗

我也有问题:操作员


提前感谢。

在我的书(软件摘要,麻省理工学院出版社,2012年)中有很多例子详细解释了这一点

此外,您可能会发现,从一个古老的谈话中,以下内容很有帮助:


从幻灯片80开始,有一个各种点连接的扩展示例。

在我的书(软件摘要,麻省理工学院出版社,2012年)中用大量示例详细解释了这一点

此外,您可能会发现,从一个古老的谈话中,以下内容很有帮助:


从幻灯片80开始,有一个各种点连接的扩展示例。

感谢您的回答,它非常有用@丹尼尔·杰克逊我刚刚开始在布朗大学学习系统逻辑课程中的合金。很高兴看到您在SO上的回复。:)另外,读这本书,我喜欢它清晰的风格。谢谢你的回答,它很有帮助@丹尼尔·杰克逊我刚刚开始在布朗大学学习系统逻辑课程中的合金。很高兴看到您在SO上的回复。:)另外,读这本书,我喜欢它清晰的风格。