理解合金中复杂的特征

时间:2012-11-22 04:55:19

标签: alloy

在下面

sig building{
    abv: Man -> Man
 }
 {
 all m:Man | Above(m,m.abv)
 }

以下是什么意思?它与签名定义有什么关系?这是签名的关系吗?

 {
 all m:Man | Above(m,m.abv)
 }

1 个答案:

答案 0 :(得分:1)

这被称为“附加事实”,意思是它必须保持相应信号的所有原子。因此,您的模型的等效事实将是

fact {
  all b: building |
    all m: Man | Above[m, m.(b.abv)]
}

在附加事实中,您可以使用this关键字来引用相应sig的当前原子,因此更清楚地编写附加事实的方法是显式写m.(this.abv),而不是依赖abv隐式扩展为this.abv