我想了解如何在Alloy中訂購。我有一個我用來實例化排序模塊的時間簽名。我希望謂詞addPage在時間t'添加一個頁面到書中,其中t'= t.next。 (基本上在下一次添加頁面到圖書)然而,它不按預期工作,而是Time2的頁面數量少於Time1。有人可以向我解釋爲什麼會發生這種情況嗎?謝謝。使用util訂購合金使用/訂購
open util/ordering[Page] as P0
open util/ordering[Time] as T0
sig Page {}
sig Time {}
sig Book
{
pages: Page -> Time
}
pred addPage(b:Book, p:Page, t: Time)
{
t != T0/last implies
{
let t' = t.next |
b.pages.t' = b.pages.t + p
}
}
run addPage {} for 3
我試過這個,但它仍然沒有工作。我也更新了問題以顯示生成的實例的圖像。正如您在時間$ 2中看到的那樣,Book $ 0的頁面少了一頁。謝謝。 – Kevin