[英]New to Alloy - what does int mean in the context of a run command?
這是我們在課堂上討論的示例的合金代碼:
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”是什么意思?
最后一行定義了在運行此命令時找到的任何令人滿意的實例中,符合給定概念的原子數的上限(稱為作用域)。
在您的示例中,您將查找最多包含5個Airport原子的實例。 Int是Alloy中的內置類型。 由於您沒有聲明任何Int類型的字段,因此第6部分Int對實例查找過程不會產生重大影響。
在范圍內與Int相關聯的數字與要發現的實例中Int原子的最大數目不對應,而是與用於表示Integer的位寬相對應。 位寬為6時,您的實例將包含-32到31之間的整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.