如何克服断言表达式中的斯科雷姆化问题

时间:2019-02-22 08:36:20

标签: alloy

我有一个简单的例子。

sig B {}
pred P2 {some x1, x2: lone B | x1 != x2}
run P2 for 2

我的问题是如何在断言中重写pred约束而不会出现skolemization错误?

assert S { some x1, x2: lone B | x1 != x2} 
check S for 2

1 个答案:

答案 0 :(得分:0)

删除断言中多余的量词即可解决此问题。

assert S { some x1, x2:  B | x1 != x2} 

您想评估什么?我怀疑使用lone B是您要执行的操作。