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