專利名稱:基于sat的命題投影時序邏輯限界模型檢測方法
技術領域:
本發明屬于計算機應用技術領域,主要涉及系統形式化驗證技術領域,尤其涉及命題投影時序邏輯(PPTL)和限界模型檢測(BMC),具體是一種基于SAT的命題投影時序邏輯限界模型檢測方法。主要應用于工業,軍事,農業,科研等領域設計的軟硬件系統正確性的形式化驗證,以及各類通信協議安全性,可靠性的形式化驗證。
背景技術:
隨著Internet的發展和工業界需求的不斷提高,各種計算機應用軟件,硬件電路的設計復雜度與日俱增,網絡通信技術也是日新月異,這些系統的正確性,安全性和可靠性已經受到科學界和工業界越來越多的關注。定義在嚴密的數學和邏輯基礎上的形式化方法成為解決這一問題的有力工具,與此同時,計算機技術的快速發展使得利用計算機來確保軟硬件系統及通信協議的正確性,安全性和可靠性成為一種有效的途徑,本發明正是在這 個領域進行的一些研究和創新。形式化驗證起源于20世紀60年代的軟件危機。80年代初,Pnueli將時態邏輯引入到反應式程序的驗證,美國的Clark和Emerson,法國的Quielle和Sifakis分別獨立提出了模型檢測(MC)方法,并實現了對并發系統的自動驗證,使得形式化驗證技術有了很大的進展。在形式化驗證發展的基礎上,形成了兩類主要的方法,一類是以邏輯推理為基礎的演繹驗證(Deductive Verification),另一類是以窮盡搜索為基礎的模型檢測(Model Checking)。模型檢測是將要驗證的系統表示成有限狀態機,將待驗證的性質用時序邏輯公式描述,然后,遍歷有限狀態機以驗證系統是否滿足性質的過程。有限狀態機模型通常采用Kripke結構。作為一種強大的可信自動化驗證技術,模型檢測已在很多領域得到了廣泛的應用。模型檢測的優點是全自動進行,無須人機交互。當斷定某性質不滿足時,模型檢測能提供反例,以便于定位設計錯誤。憑借時態邏輯強大的描述能力,模型檢測能夠對各種復雜的時序性質進行驗證。但是模型檢測也有自己的缺點一一狀態空間爆炸問題。所謂狀態空間爆炸問題,主要指的是系統狀態數隨著系統規模的增加呈指數增長的問題,所以本領域的研究人員不斷地采用各種方法減少搜索的狀態數。常用的方法有符號模型檢測,組合模型檢測及限界模型檢測等技術。限界模型檢測技術BMC是繼符號模型檢測后的又一重要進展,該技術是由Biere等在1999年提出。限界模型檢測的主要思想是在給定的步數k內,考察性質是否滿足。若不能確定性質是否存在,則提高k值,重新進行檢測。在每一個檢測周期內,限界模型檢測問題被轉化為命題可滿足性問題SAT。SAT問題雖然已被證明是NP-complete問題,但在實際應用中卻很有效。在模型檢測中,時序邏輯作為一種規范語言(Specification Language)已被廣泛地應用于數字電路系統,軟件工程,通信協議等領域的形式化驗證中。從時間的角度講,時序邏輯主要有三大分支線性時序邏輯(LTL),分支時序邏輯(CTL)以及區間時序邏輯(!TL)。作為模型檢測中常用的性質描述語言,CTL和LTL在表達能力上各有千秋,都能表達出一些對方無法表達的性質。事實上,CTL和LTL的描述能力都有一定的局限性,至少有兩種類型的性質是CTL和LTL都無法描述的(I)實時性相關性質,例如,性質P在第100個狀態成立或者P在第100個狀態之后,第200個狀態之前成立;(2)閉包性質P,進而導致使用模型檢測對系統的正則性質的驗證比較困難。投影時序邏輯(PTL)是一種用于描述離散區間或時段的邏輯系統,它是時序邏輯的一個分支,是區間時序邏輯(ITL)的擴展。命題投影時序邏輯(PPTL)作為擴展后的區間時序邏輯PTL的命題邏輯子集,是一種基于區間的時序邏輯,其表達能力等價于full正則語言。此外,PPTL可以方便地描述實時性相關的性質。命題投影時序邏輯強大的描述能力以及自身的語法結構特點,使得該邏輯適合被用作模型檢測中的性質描述語言。由于CTL和LTL的表達能力有限,模型檢測方法也存在狀態空間爆炸的問題,而現有的技術中沒有同時針對這兩個問題的解決方法,因此提出一種可以同時有效解決這兩個問題的方法刻不容緩。
發明內容
本發明針對規范語言CTL和LTL表達能力有限以及模型檢測中產生的狀態空間爆炸問題,提出了一種性質表達能力更強并且可有效緩解狀態空間爆炸的基于SAT的命題投影時序邏輯PPTL限界模型檢測BMC方法。本發明是一種基于SAT的命題投影時序邏輯限界模型檢測方法。具體檢測步驟包括步驟I.首先為待驗證的系統建立將要進行限界模型檢測的模型M,M是一個描述系統行為的有限狀態遷移系統,采用Kripke結構描述模型M。步驟2.使用規范語言PPTL公式描述待驗證系統的性質,得到PPTL描述的性質公式P,并將其等價轉換為正則形NF,得到性質公式P的正則形NF (P),進而得到性質非的正則形 NF(^P)。步驟3.設定限界模型檢測的界限k,k為一個不大于完整區間長度的正整數,用來限定進行限界模型檢測時的搜索長度,界限k的值在一個限界模型檢測周期內是不變的,在新的限界模型檢測周期內根據上一個周期的結果進行調整。步驟4.根據PPTL限界模型檢測到命題可滿足性問題SAT的轉換規則,結合設定的限界模型檢測界限k,對待驗證的系統模型M和性質的非I尸進行編碼,通過布爾編碼將限界模型檢測問題轉化為命題可滿足性SAT問題。步驟5.使用現有的SAT求解器對SAT問題進行求解有解,說明待驗證系統M不滿足性質P,給出相應的反例;無解,說明待驗證系統M k-有界滿足性質P,再增大界限k的值,跳至步驟3,進入下一個限界模型檢測周期,直到k的值足夠大并且在每個限界模型檢測周期內待驗證系統M都是K-有界滿足性質P的,認為待驗證系統M滿足性質P,結束限界模型檢測過程。、
本發明使用具有正則表達能力的命題投影時序邏輯PPTL作為限界模型檢測中的性質描述語言,通過限界模型檢測的方法對待驗證系統性質進行驗證,在驗證過程中將限界模型檢測問題轉化為SAT問題求解,根據SAT問題的解來判斷系統是否有界滿足性質。本發明將PPTL強大的表達能力和限界模型檢測能夠緩解模型檢測狀態空間爆炸問題的優勢相結合,從而使得系統正則性質及實時性相關性質的驗證易于進行,同時提高模型檢測的效率。本發明的實現還在于將PPTL限界模型檢測問題轉換為命題的可滿足性問題,具體步驟包括步驟4. I.根據待驗證系統Kripke結構模型M的標記函數L,用布爾向量表示待驗證系統中的狀態和遷移關系,完成待驗證系統約束條件的編碼過程,約束條件
def_
Mk = I(S0) a A^Tisl,sl+l),其中k為界限,I (S0)表示狀態S0是初始狀態,T (Si, si+1)表示從
狀態Si到狀態Sin的狀態遷移關系,A= T(H1)表示狀態序列(S(|,S1, ...,Sk)中從狀態Stl經過狀態S1, S2, . . . , Si, . . . , Sk^1到達狀態Sk的一系列狀態遷移,若狀態序列(S。,S1,, Sk)是從初始狀態出發的有效區間,存在一組賦值使得約束條件Mk為真;步驟4. 2.在界限k下,將待驗證的系統性質公式P轉換為等價的命題公式待驗證系統的性質約束條件義,-(-4 A(-P)(o,*))vvl0(L(k<n A(iP)(0,kJ)),Lk是在界限k下區間的循環條件,根據搜索區間的結構,確定區間結構相關部分Lk的真假值,區間為有循環的無窮區間時,Lk為真,區間為無循環的有窮區間時,Lk為假;根據限界模型檢測過程中PPTL性質公式P向命題公式的等價轉換規則對性質約束條件中性質相關部分和
進行等價轉換,進而得到約束條件Xk等價的命題公式,其中0為初始狀態S0下標,k為界
def
限,I為狀態S1下標,是無循環有窮區間下的性質約束條件,Zi =Vl0 L(k ^
錄所有可能的從狀態Sk到之前狀態的遷移,Lu)表示存在從狀態Sk到向前狀態S1 (I G N,O^l^k)的狀態遷移,循環的狀態序列段為(Sl,. . .,sk),表示在界限k內,該區間是無循環有窮的區間,是無循環有窮區間在界限k下的性質相關部分;仏,0 a(,P)(m /)是有循環無窮區間下的性質約束條件,(iP)(。, W是有循環無窮區間在界限k下的性質相關部分,vf=()(Z(M)婊示所有可能的循環及其相應的性質約束;步驟4. 3.將步驟4. I和步驟4. 2得到的約束條件Mk和Xk的等價命題公式合并,得到PPTL限界模型檢測問題的形式化描述[M,^P]t ^Mk AXk,及其等價命題公式F,W,^P\ =F,完成限界模型檢測問題向SAT問題的轉換。本發明將命題投影時序邏輯PPTL的限界模型檢測BMC問題轉換為一個可通過現有的SAT求解器進行求解的命題可滿足性問題。其實質在于用布爾表達式來隱式地表示待驗證系統的狀態,減少占用的狀態空間數,并通過給定的界限k限制限界模型檢測過程中的搜索長度,減少搜索狀態空間數,從而有效地緩解模型檢測中狀態空間爆炸的問題。本發明的實現還在于針對搜索區間的不同結構,給出限界模型檢測過程中邏輯公式向命題公式轉換的不同等價轉換規則,已知搜索區間分為兩種有循環的無窮區間;無循環的有窮區間,根據搜索區間的不同結構,首先定義狀態Si的下一狀態下標SUCC (i)如下
/' + I 如果 i < ksucc(i) = ^ I 如果i = k并且Cr是一個有循環的無窮區間是+ 1如果f = 并且<7是一個有窮區間
有循環無窮區間中邏輯公式到命題公式的等價轉換規則(I). Po k n =; (>,)如果P是一個原子命題,等價于sjp];
權利要求
1.一種基于SAT的命題投影時序邏輯限界模型檢測方法,其特征在于具體檢測步驟包括 步驟I.首先為待驗證系統建立模型M,M是一個描述待驗證系統行為的有限狀態遷移系統,采用Kripke結構描述模型M ; 步驟2.使用命題投影時序邏輯PPTL公式描述待驗證系統的性質,得到PPTL描述的性質公式P,并將其等價轉換為正則形NF,得到性質公式P的正則形NF (P),進而得到性質非的正則形
2.根據權利要求I所述的基于SAT的命題投影時序邏輯的限界模型檢測方法,其特征在于將PPTL限界模型檢測問題轉換為命題的可滿足性問題的具體步驟包括 步驟4. I.根據待驗證系統Kripke結構模型M的標記函數L,用布爾向量表示待驗證系統中的狀態和遷移關系,完成待驗證系統約束條件的編碼過程,約束條件
3.根據權利要求2所述的基于SAT的命題投影時序邏輯的限界模型檢測方法,其特征在于針對搜索區間的不同結構,給出限界模型檢測過程中PPTL邏輯公式向命題公式轉換的不同的等價轉換規則,即PPTL限界模型檢測向命題可滿足性問題SAT轉換的轉換規則, 已知搜索區間分為兩種有循環的無窮區間和無循環的有窮區間,根據搜索區間的不同結構,首先定義狀態Si的下一狀態下標succ (i)如下
4.根據權利要求I所述的基于SAT的命題投影時序邏輯的限界模型檢測方法,其特征在于步驟5中的SAT問題是否有解說明了系統是否有界滿足性質,具體描述如下 利用SAT求解器對F求解,有解,命題公式F可滿足,在搜索長度k以內,待驗證系統M中存在一條路徑使nP成立,即存在一條違反性質P的路徑,待驗證系統M不滿足性質P,根據命題公式F的解產生違反性質P的路徑;無解,命題公式F不可滿足,待驗證系統M有界滿足性質P ;在待驗證系統M有界滿足性質P的情況下,待驗證系統是否滿足性質是不確定的,再增大界限k的值,進入下一個限界模型檢測周期,尋找隱藏更深的錯誤,當k的值足夠大并且待驗證系統M總是k-有界滿足性質P,則認為待驗證系統滿足性質,結束限界模型檢 測的過程。
全文摘要
本發明是一種基于SAT的命題投影時序邏輯限界模型檢測方法,步驟是用Kripke結構描述待驗證系統模型M;用PPTL公式描述性質P;設定限界k;將PPTL限界模型檢測轉換為SAT問題;對SAT問題求解有解,系統M不滿足性質P,給出反例,無解,系統M有界滿足性質P,增大k值,進入下一個檢測周期,直到k值足夠大且在每個限界模型檢測周期內待驗證系統M都有界滿足性質P。本發明使用PPTL描述系統性質,解決了CTL和LTL表達能力有限的問題,并通過限制搜索長度減少搜索狀態數,緩解了狀態空間爆炸,融合了PPTL和BMC各自的優點,使系統復雜性質的驗證更方便有效。本發明適用于軟硬件系統以及通信協議的形式化驗證。
文檔編號G06F17/50GK102663191SQ20121010206
公開日2012年9月12日 申請日期2012年4月9日 優先權日2012年4月9日
發明者何佳, 段振華, 王小兵, 田聰 申請人:西安電子科技大學