Alloy的新功能 - 在运行命令的上下文中int意味着什么?

时间:2015-09-20 03:31:53

标签: alloy

以下是我们班上的例子的合金代码:

abstract sig Airport {
    flight: set Airport
}
one sig CMX, DTW, MSP, BRD, CDG extends Airport {}

fact {
--  flight = CMX->DTW + DTW->MSP + MSP->CMX + DTW->CDG + CDG->DTW + MSP->BRD + BRD->MSP
}

fun flight2: Airport->Airport {flight.flight}
fun flight3: Airport->Airport {flight.flight2}
fun flight4: Airport->Airport {flight.flight3}
fun flight5: Airport->Airport {flight.flight4}

pred show {
    flight5 in flight2
    flight2 not in flight5
--  #flight = 10
}

run show for 5 Airport, 6 Int

我想知道最后一行的含义。具体来说," 6 Int"意思?

1 个答案:

答案 0 :(得分:3)

最后一行定义了一个上限(称为范围),表示在运行此命令时要查找的任何令人满意的实例中符合给定概念的原子数。

在您的示例中,您将查找最多包含5个机场原子的实例。 Int是Alloy中的内置类型。由于您没有声明任何Int类型字段,因此第6部分Int不会对实例查找过程产生重大影响。

与作用域中的Int关联的数字与要查找的实例中的Int原子的最大数量不对应,而是与用于表示整数的位宽相对应。 位宽为6时,您的实例将包含从-32到31的整数。