簡體   English   中英

合金的簡單狀態機

[英]Simple State Machine in Alloy

我是合金及其功能的新手。 最近,我有一個關於簡單狀態機的作業:begin_state-> normal_state-> end_state。 只有一個begin_state,但有一個normal_state和一些end_state。 然后我無法使實例視圖與以下合金代碼一起正確運行:

abstract sig state
{
    prev : some state,
    next : some state
}

one sig begin extends state{}
some sig end extends state{}
sig mid extends state{}

//There is no state after end state, and there is no state before begin state

pred dosomething
{
    no s : state | s in begin.prev and s in end.next
}

run{dosomething}

所以基本上我只希望開始狀態之前沒有狀態,結束狀態之后沒有狀態,實例示例可以是這樣的:

開始->正常->結束

要么

開始->正常->結束
|
正常->正常->結束
|
正常-正常
| |
結束<--------

...類似的東西。 謝謝

考慮以下命題:

  • 每個狀態都指向先前的狀態。
  • 起始狀態是一種狀態。
  • 開始狀態不指向先前狀態。

如果(我希望)您認為這三個命題相互矛盾,那么請問自己(a)這些命題是否類似於您的Alloy模型中給出的規則? (b)您如何將它們重新表述為有意義,而不互相矛盾? (c)您如何將其改寫為Alloy?

我希望這有幫助。

注意量詞! 公式

no s : state | s in begin.prev and s in end.next

說沒有國家既是begin的前任,又是end的后繼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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