alloy

    0熱度

    2回答

    我想了解如何在Alloy中訂購。我有一個我用來實例化排序模塊的時間簽名。我希望謂詞addPage在時間t'添加一個頁面到書中,其中t'= t.next。 (基本上在下一次添加頁面到圖書)然而,它不按預期工作,而是Time2的頁面數量少於Time1。有人可以向我解釋爲什麼會發生這種情況嗎?謝謝。 open util/ordering[Page] as P0 open util/ordering[T

    1熱度

    1回答

    該簽名包含兩個字段,每個保持的整數: sig Test { a: Int, b: Int } 該斷言包含一系列約束: pred Show (t: Test) { t.a = 0 t.b = 1 } 這些約束被隱式AND關係結合在一起。所以,這謂詞相當於這個謂詞: pred Show (t: Test) { t.a = 0 and

    1熱度

    1回答

    是否約束爲了在這個pred件事: pred Example { A B C } A,B,C表示約束。 那是pred與此相同pred: pred Example { B A C } 處於IF-THEN-ELSE下令限制?例如,是ReadMemory和WriteMemory在此IF-THEN-ELSE下令: pred Exampl

    0熱度

    2回答

    頁Software Abstractions 293說,這兩者是等價的: all x: X, y: Y | F all x: X | all y: Y | F 但是這兩個是不相等的: one x: X, y: Y | F one x: X | one y: Y | F 爲什麼是後兩者並不等同? 我用最具體的例子來學習,所以我們舉一個具體的例子。 上週我乘坐郵輪去了阿拉斯加。晚餐時,

    0熱度

    1回答

    我經常聽到類似這樣的論點:傳統測試的一個缺點是它是不完整的,而Alloy分析是詳盡而完整的(在一個界限內)。但是,第一個是談論軟件,第二個是談論模型。這不是一個蘋果與橘子的比較嗎? 更新:我錯了。比較不是這樣的:testing code versus analyzing models。這是一個蘋果與橙子的比較。相反,比較是這些: Testing models versus analysis of

    1熱度

    1回答

    簽名Test的蘊涵算有兩個字段,a和b: sig Test { a: lone Value, b: lone Value } sig Value {} 注意a和b可能會或可能不會有一個值。 一個Test是唯一有效的,如果它滿足這個相互依賴:如果a有一個值,那麼b還必須有一個值: pred valid (t: Test) { one t.a => one t.

    1熱度

    2回答

    我想一羣人分成更小的子組,洗牌組多次爲歷屆會議之後,讓所有的人滿足對方在至少一次。 在每個會話中,人們被劃分爲固定數量的小組。每個人都必須加入一個小組。 組的大小應該是最接近於(人數)/(組數)。不應該有一羣人太少或太多人。 會議持續進行,直到每對人至少遇見一次。 優選地,同一對彼此相遇的次數應該被最小化。 以下是11人(編號0-10)和3組(3列)的此問題的答案。它需要5個會話。 Session

    2熱度

    1回答

    我用合金寫過模型。但是,對於運行謂詞來查找實例的某些條件失敗,它說沒有找到實例。我嘗試增加約16個實例的綁定,但它沒有找到任何實例。 有沒有什麼辦法可以調試這個,這樣我就可以看到哪些事實失敗,導致Alloy無法找到實例? 謝謝!

    1熱度

    1回答

    中一套的所有子集我正在努力如何定義一個事件可以發佈每個步驟,但多個刪除的狀態更改。我有這樣的模式: open util/ordering[State] sig Event {} sig State { queue : set Event } pred State.post(next' : State, event : Event) { next'.queue = th

    0熱度

    1回答

    考慮一下: sig A{} 那是什麼? 答:這是簽名聲明。 它是做什麼的? 答案:它介紹了一組原子。 (請參見軟件抽象的第93頁) 是聲明和介紹標準術語在輕量級形式化建模社區? 爲什麼不是這個術語: 這是什麼?答:這是簽名定義。 它是做什麼的?答案:它創建了一組原子。 或其他一些術語。