【发布时间】:2017-08-29 23:02:15
【问题描述】:
abstract sig S {}
one sig S1, S2 in S {}
fact {S1 != S2}
run {-1 < S1.(S2 -> 1)}
当我打开实例时,我得到了
integers={-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7}
univ={-1, -2, -3, -4, -5, -6, -7, -8, 0, 1, 2, 3, 4, 5, 6, 7, S$0, S$1}
Int={-1, -2, -3, -4, -5, -6, -7, -8, 0, 1, 2, 3, 4, 5, 6, 7}
seq/Int={0, 1, 2, 3}
String={}
none={}
this/S={S$0, S$1}
this/S1={S$1}
this/S2={S$0}
来自评估者,
(1) S1.(S2 -> 1) 评估为 {}
(2) none = S1.(S2 -> 1) 评估为真
(3) -1 1) 计算结果为真 // 为什么整数小于 比空集?
(4) -1
(5) 0 1) 评估为真
(6) 0 >= S1.(S2->1) 计算结果为真
(7) 0 = S1.(S2->1) 评估为假 // 给定 (5) (6),看起来 S1.(S2->1) 计算结果为 0,但不是。
(8) 0 = 没有评估为假
(9) 0
谁能解释为什么 (1) - (9) 会发生?有bug吗?
【问题讨论】:
标签: alloy