1
该签名包含两个字段,每个保持的整数:当隐含的约束与AND运算时,必须限制明确相与?
sig Test {
a: Int,
b: Int
}
该断言包含一系列约束:
pred Show (t: Test) {
t.a = 0
t.b = 1
}
这些约束被隐式AND关系结合在一起。所以,这谓词相当于这个谓词:
pred Show (t: Test) {
t.a = 0 and
t.b = 1
}
这一论断包含后跟一个蕴涵算一系列的限制条件:
assert ImplicationTest {
all t: Test {
t.a = 0
t.b = 1 => plus[t.a, t.b] = t.b
}
}
但是,在这种情况下,约束不是隐含AND关系结合在一起。如果我要他们AND'ED在一起,我必须明确地与他们:
assert ImplicationTest {
all t: Test {
t.a = 0 and
t.b = 1 => plus[t.a, t.b] = t.b
}
}
这是为什么?为什么有时一系列的限制条件都隐含AND关系结合在一起,而其他时间我必须明确地和限制?
好极了!谢谢彼得柯瑞恩斯! –