李先生:13691912091 QQ:1648252878
黃小姐:15012797976 QQ:1311044072
MSN:ltz52099@hotmail.com
最開始,系統可以處于9個狀態中的任意一個,MSM514400DL60SJ7DR1其中對于A和B的水位沒有任何限制,而pump的初始狀態假定為off。這樣,我們就可以利用有序元組
這 些狀態可以無限執行(或運算)樹狀結構的形式進行排列。如圖3所示,樹根為我們所選的初始狀態,任意狀態的分支均表示下一個可能的狀態,而每個系統執行都 是執行樹狀結構的一條路徑。總體上,系統可以具有無限多個這樣的執行路徑。模型校驗的目標就是檢驗執行樹狀結構是否滿足用戶指定的屬性要求。
現 在的問題在于,我們究竟該如何描述執行樹狀結構路徑(及路徑上的狀態)的屬性。MSM514400DL60SJ7DR1從技術的角度看,運算樹邏輯(Computation tree logic CTL)是時序邏輯(time temporal logic TTL)的一個分支,其簡單性和直觀性非常適合于本例。CTL是常用的布爾命題邏輯(Boolean propositional logic BPL)的擴展,除了支持包括“和(and)”、“或(or)”、“否(not)”、“蘊涵(implies)”在內的BPL邏輯連接操作外,還支持輔助 的時序連接操作。表2所示為 CTL 中的某些連接操作。
表1和圖4說明了CTL中一些基本時序連接操作的直觀意義。MSM514400DL60SJ7DR1一般地,E(就某個路徑而言)和A(就所有的路徑而言)表示從某個狀態開始的路徑數目。F(就某個狀態而言)和G(就所有狀態而言)表示某個路徑中的狀態數目。對 于指定的屬性以及對應于系統模型的運算樹T(可以是無限運算樹),模型校驗算法可以通過校驗T判斷T是否滿足該屬性。例如,考慮指定的屬性AF g,其中g表示與任何CTL連接無關的命題公式。圖4b給出了運算樹T的一個示例。如果屬性AF g在根狀態s0的值設定為true(即如果T中的每條路徑中有狀態開始于s0以使公式g為true),那么對于該運算樹TAF g的值為true。如果g在s0為true,那么就實現了預定目標,因為s0將會出現在從s0開始的每條路徑中。但如果g在s0狀態下不為true,由于 從s0開始的路徑要么是s0的左分支,要么是s0的右分支,因此如果在運算樹T中s0的兩個分支都為true(通過遞歸校驗),那么該屬性在s0處也為 true。
圖4b顯示,g在左分支根部為true(球體填充為黃色)。MSM514400DL60SJ7DR1因此從s0到左分支單元的所有路徑以及整個左分支樹都 滿足該屬性。現在假定g在s0的右分支根部不為true;因此對于所有的子單元都將遞歸檢驗該屬性。圖4b顯示,對于s0右分支的所有子單元,g都為 true(球體填充為黃色),因此對于s0的右分支樹該屬性為true。這樣,對于s0的所有子分支樹該屬性為true,從而s0也為true。