扩展签名时实例出现两次

时间:2019-02-22 10:49:38

标签: alloy

当我使用Alloy(无论是v4.2还是v5)执行以下示例时,我得到的实例在解决方案空间中出现两次。

sig A {}
sig B extends A { }
pred P { }
run P for 2

生成的实例:

1:A={}, B={}
2:A={A$0}, B={}
3:A={B$0}, B={B$0}
4:A={A$0, B$0}, B={B$0}
5:A={A$0, A$1}, B={}
6:A={A$0, B$0}, B={B$0} // same as instance 4
7:A={B$0, B$1}, B={B$0, B$1}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试为每个签名指定不同的范围 例如:

针对2 A,4 B运行P