2016-11-29 53 views
0

我正在使用NuSMV,我試圖寫一個實時CTL屬性。
我想知道是否有設置從一個狀態的步驟的方式,如:
((s.state = on) ABG (0..5 s.state = off))NuSMV實時CTL

讀爲:if (s.state=on) is true,從該國和其他5個步驟物業(s.state= off) is true
我試圖寫這樣的東西,但它不起作用。你可以幫我嗎?

否則,是否可以檢查從不是第一個狀態開始的相同屬性?

回答

0

問題。if (s.state=on) is true,從該狀態和其他5個步驟的屬性(s.state= off) is true.

CTL。

CTLSPEC AG ((s.state = on) -> 
      ((AX s.state = off) & 
      (AX AX s.state = off) & 
      (AX AX AX s.state = off) & 
      (AX AX AX AX s.state = off) & 
      (AX AX AX AX AX s.state = off) 
      )); 

有了這個公式,你測試它是否是真的,每一次你打s.state = on條件s.state = off將是真正的至少5個州遵循目前的一個,不管你的路徑選擇。

最初的AG確保此屬性必須保存在執行路徑上的任何位置,而不僅僅是初始狀態。

實時CTL。

nusmv郵件列表

((s.state = on) ABG (1..5 s.state = off)) 

注:你的問題的其餘部分我也不清楚,所以請仍存在一些懸而未決的部分只需編輯你的問題,並澄清一點。

+0

這是一個CTL公式,我必須在實時CTL中編寫它,其中步數被指定爲:'int_number..int_number' 如果我這樣寫:'EBF 0..49 b效率= 50'我正在檢查從狀態0到狀態49的效率是50.但是,我想知道是否有辦法檢查屬性不是來自狀態(如0,1,2 ... ),但是來自條件爲真的狀態,如: 'EBF(s.state = on).. 49 b.efficiency = 50'並在接下來的49個步驟中,'b.efficiency = 50' 我希望現在很清楚 – Desmond

+0

@Desmond你可以編輯你的問題並添加你所指的模型嗎? –