簡體   English   中英

Alloy的新手-int在運行命令的上下文中是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM