0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

模型檢查綜述

上??匕?/a> ? 來源:上海控安 ? 作者:上??匕?/span> ? 2023-03-10 09:49 ? 次閱讀

作者 |李建文華東師范大學(xué)軟件工程學(xué)院博導(dǎo)

版塊 |鑒源論壇 · 觀模

01模型檢查的歷史

模型檢查是一種起源于20世紀(jì)70年代末的形式化驗(yàn)證技術(shù)。該技術(shù)最初由Edmund M. Clarke、E. Allen Emerson和Joseph Sifakis提出,他們因在模型檢查領(lǐng)域的貢獻(xiàn)而獲得了2007年的圖靈獎(jiǎng)。模型檢查的提出最初是為了對并發(fā)和分布式系統(tǒng)做自動(dòng)化驗(yàn)證,這些系統(tǒng)越來越復(fù)雜,手動(dòng)驗(yàn)證則變得越來越困難。模型檢查涉及系統(tǒng)地探索系統(tǒng)的所有可能狀態(tài),并檢查每個(gè)狀態(tài)是否滿足某些屬性。

在早期階段,模型檢查可以通過顯示地計(jì)算Kripke結(jié)構(gòu)上的不動(dòng)點(diǎn)(針對CTL描述的性質(zhì)) [1]或者是在由模型和LTL性質(zhì)構(gòu)造的乘積自動(dòng)機(jī)上做狀態(tài)搜索 [2]來完成。盡管這些技術(shù)非常直觀且易于理解,但它們處理大型系統(tǒng)的能力非常有限,現(xiàn)在它們已經(jīng)被以BDD [3]和SAT求解器 [4]為計(jì)算核心的符號模型檢查技術(shù)所取代。事實(shí)上,基于SAT求解器的模型檢查技術(shù)是目前最有前景的自動(dòng)化驗(yàn)證技術(shù)。目前最先進(jìn)的基于SAT求解器的模型檢查技術(shù)包括BMC [5],IMC [6],IC3/PDR [7],和CAR [8]。

模型檢查已被應(yīng)用于各種系統(tǒng),包括硬件電路、通信協(xié)議、操作系統(tǒng)和軟件程序。它已被用于在部署之前檢測系統(tǒng)中的錯(cuò)誤和缺陷,這可以在開發(fā)過程中節(jié)省時(shí)間和金錢。今天,模型檢查是一個(gè)活躍的研究和開發(fā)領(lǐng)域,研究人員正在不斷努力,以提高其拓展性、準(zhǔn)確性和可用性。

02模型檢查問題描述

模型檢查問題是說:給定一個(gè)模型M,或者說一個(gè)狀態(tài)遷移系統(tǒng),如何判斷M是否滿足安全性質(zhì)P。在具體算法實(shí)現(xiàn)中,我們往往是從初始狀態(tài)I出發(fā),判斷┐P代表的狀態(tài)是否可達(dá),即是否所有I可達(dá)的狀態(tài)都是滿足安全性質(zhì)P的。如果我們在算法中找到了反例,即從I出發(fā),經(jīng)過一系列狀態(tài),可以到達(dá)┐P,則我們返回反例,用以說明安全性質(zhì)P不成立;如果我們找到了一個(gè)不變式,即證明了從I出發(fā),所有可達(dá)的范圍都在一個(gè)滿足P的狀態(tài)集合中,則我們返回驗(yàn)證通過,安全性質(zhì)P成立。下面我們先簡要介紹幾個(gè)常見的模型檢查算法。

poYBAGQKix-AckgsAABtZqBzNWo829.png

圖1 模型檢查問題示例圖

03模型檢查算法介紹

3.1 Bounded Model Checking (BMC)

BMC是一個(gè)簡單但是高效的模型檢查算法,類似于圖搜索中的廣度優(yōu)先搜索。BMC從初始狀態(tài)出發(fā),先判斷是否可以直接一步轉(zhuǎn)移到┐P,也就是不安全的狀態(tài)中,若可以,則找出了一個(gè)長度為1的反例;若不行,則說明在初始狀態(tài)一步的范圍內(nèi),安全性質(zhì)成立,接著,BMC增大步數(shù),判定從初始狀態(tài)出發(fā),是否可以兩步轉(zhuǎn)移到┐P,同樣地,若可達(dá)則返回反例,若不可達(dá),則繼續(xù)增大步數(shù),直到找到反例或者達(dá)到限定的時(shí)間為止。

如下圖所示,從S0出發(fā),先確定一步可達(dá)的S1和S2滿足性質(zhì),接著增大步數(shù),確定兩步可達(dá)的S3滿足性質(zhì),再確定三步可達(dá)的S4和S5滿足性質(zhì),最終步數(shù)為4時(shí),檢查出四步可達(dá)的S6不滿足性質(zhì),從而得到反例。

使用BMC算法可以很快地找到長度最短的反例,但是它的局限性也很大,假設(shè)BMC在k步之內(nèi)找不到反例,這只能說明初始狀態(tài)k步可達(dá)的狀態(tài)滿足安全性質(zhì),而不能證明初始狀態(tài)可達(dá)的狀態(tài)都是滿足安全性質(zhì)的,也就是說,BMC只適用于反例的尋找,而不適合證明模型滿足安全性質(zhì)。

pYYBAGQKi2iALx0fAAGEu0IISnw473.png

圖2:BMC算法示例圖

3.2 Interpolation Model Checking (IMC)

IMC是在BMC的基礎(chǔ)上改進(jìn)來的模型檢查算法,它不僅可以查找反例,也可以證明模型是滿足安全性質(zhì)P的,彌補(bǔ)了BMC算法的缺陷。

簡要地說,在查找反例上,IMC和BMC一樣,都是靠確定從初始狀態(tài)出發(fā),┐P代表的非安全狀態(tài)是否是k步可達(dá)的,如果是,則找到了反例,若不是,則繼續(xù)增大k的值。和BMC不同的是,對于每一個(gè)步數(shù)k,IMC都維持了一個(gè)初始狀態(tài)k步之內(nèi)可達(dá)的狀態(tài)的超集R,即R里面也包含了一些其他的狀態(tài),且R里面的元素都滿足安全性質(zhì),在尋找反例的過程中,IMC不斷擴(kuò)大集合R,若在某個(gè)時(shí)刻,R不能被擴(kuò)大,即R里面的元素只能轉(zhuǎn)移到R里面,則我們找到了一個(gè)不變式,即證明了從初始狀態(tài)出發(fā),可達(dá)的所有狀態(tài)都是滿足安全性質(zhì)的,從而證明了模型是滿足安全性質(zhì)P的。

如下圖所示,從初始狀態(tài)S0出發(fā),我們找到了一個(gè)狀態(tài)集合R,使得S0可達(dá)的狀態(tài)S1、S2和S3都在集合R中,且R中的元素都滿足安全性質(zhì),因此我們證明了模型是滿足安全性質(zhì)的,集合R就是證據(jù)。

poYBAGQKi6CAfaVBAAET-7LjxBc743.png

圖3 IMC算法示例圖

3.3 Property Directed Reachability (PDR)

PDR是一個(gè)較為復(fù)雜的模型檢查算法,簡要地說,它維持了一個(gè)滿足安全性質(zhì)P的狀態(tài)集合的序列F,其中F(0)是初始狀態(tài)I,而F(1)則是初始狀態(tài)一步之內(nèi)可達(dá)的集合的超集,即它里面除了有初始狀態(tài)一步之內(nèi)可達(dá)的狀態(tài),也包含了一些其他的狀態(tài),以此類推,后面每一個(gè)F(i)集合都是前一個(gè)F(i-1)集合的一步之內(nèi)可達(dá)的集合的超集,PDR算法不斷地在F(i)集合中尋找那些可以一步轉(zhuǎn)移到┐P的元素S,若F(i)中的其他元素可以一步轉(zhuǎn)移到S,則PDR接著判斷F(i-1)中的元素可不可以兩步轉(zhuǎn)移到S,以此類推,若在F(0),即初始狀態(tài)中,有元素可以多步轉(zhuǎn)移到S,則找到了一個(gè)反例,即性質(zhì)P不成立,如果在這個(gè)過程中,我們找到一個(gè)F(i)集合,使得它里面的元素都不能轉(zhuǎn)移到S,則我們可以把S從這個(gè)集合及它之前的集合中刪除,我們不斷重復(fù)這個(gè)過程,如果在某一步,存在某個(gè)F(i)使得F(i)=F(i-1),即F(i-1)里面的狀態(tài)只能轉(zhuǎn)移到F(i-1)里面時(shí),我們就找到了一個(gè)不變式,即所有初始狀態(tài)可達(dá)的狀態(tài)都滿足了性質(zhì)P,證明了性質(zhì)P成立。

如下圖所示,在集合F(i+1)中,狀態(tài)S4可以一步轉(zhuǎn)移到非安全狀態(tài)S6,但是集合F(i+1)中的其他集合不能轉(zhuǎn)移到S4,因此我們把S4從Fi+1及其之前的集合中刪除,刪除S4后,我們發(fā)現(xiàn)集合F(i+1)和F(i)相等,即此時(shí)F(i)里面的狀態(tài)只能轉(zhuǎn)移到F(i)里面,因?yàn)镕(i)是初始狀態(tài)可達(dá)的狀態(tài)的超集,從而初始狀態(tài)可達(dá)的元素都在F(i)中,因此模型的安全性質(zhì)就得到了滿足,F(xiàn)(i)就是證據(jù)。

pYYBAGQKi8qAbH2QAAEZieLW3rQ357.png

圖4 PDR算法示例圖

3.4 Complementary Approximate Reachability (CAR)

CAR算法也是一個(gè)較為復(fù)雜的模型檢查算法,可以有兩個(gè)搜索方向(Forward CAR和Backward CAR),后續(xù)我們以Backward CAR為例。CAR維護(hù)了兩個(gè)序列,B序列和F序列,F(xiàn)序列是從初始狀態(tài)I出發(fā)可達(dá)的狀態(tài)的子集的集合,B序列則是可以到達(dá)非安全狀態(tài)的!P的狀態(tài)的超集的集合,且F(0)= I , B(0)= !P。維護(hù)子集與超集的原因是F序列和B序列都是動(dòng)態(tài)的,F(xiàn)i的元素會(huì)隨著算法運(yùn)行不斷增多,子集會(huì)越來越接近原集。而B(i)的元素則會(huì)不斷減少,超集也會(huì)越來越接近原集。CAR算法就是不斷地去做類似的SAT調(diào)用,然后根據(jù)結(jié)果去更新F和B序列。例如CAR算法會(huì)不斷地通過SAT來判斷某個(gè)狀態(tài)s能否一步轉(zhuǎn)移到B(i),若成立,則可以拿到s的一個(gè)后繼狀態(tài)s'并把其加入到F序列,隨后CAR則遞歸詢問s'是否可以轉(zhuǎn)移到B(i-1);若不成立,CAR則會(huì)拿到一個(gè)uc(最小不滿足核),并把這個(gè)uc來更新B(i+1)。

若存在某個(gè)B(i),其是所有B(j) (j < i) 的并集的子集,那么模型是安全的。安全性條件生效表明B序列不會(huì)再擴(kuò)大,即使繼續(xù)擴(kuò)展B序列,新的B(i+1)中的元素,只會(huì)是下標(biāo)更小的B(i)中出現(xiàn)過的元素,這意味著初始狀態(tài)I不可能到達(dá)B(0),因此模型是安全的。此時(shí)從B0至B(i)的并集構(gòu)成了一個(gè)不變式。如果某一個(gè)狀態(tài)空間F(i)中,存在一個(gè)狀態(tài)s,此狀態(tài)屬于非安全狀態(tài)!P,則得到一條以I為起點(diǎn),狀態(tài)s為終點(diǎn)路徑,這條路徑是待驗(yàn)證性質(zhì)的反例,將被返回。

如下圖所示,我們發(fā)現(xiàn)集合B(i+1)包含在所有B(j) (j < i+1) 的并集中,因此安全性條件生效,B(j) (j < i+1) 的并集就是我們要找的不變式(安全性證明)。

pYYBAGQKi_KAA_wfAAE7C2LqmKM331.png

圖5 CAR算法示例圖

參考文獻(xiàn):

[1] E. Clarke and H. Schlingloff, “Model checking,” in Handbook of Automated Reasoning, A. Robinson and A. Voronkov, Eds. MIT Press, 2001, pp. 1635–1790.

[2] O. Kupferman, N. Piterman, and M. Y. Vardi, “An automata-theoretic approach to infinite-state systems,” in Time for Verification: Essays in Memory of Amir Pnueli, Z. Manna and D. A. Peled, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, pp. 202–259.

[3] K. L. McMillan, Symbolic Model Checking. Boston, MA: Springer US, 1993.

[4] Y. Vizel, G. Weissenbacher, and S. Malik, “Boolean satisfiability solvers and their applications in model checking,” Proceedings of the IEEE, vol.103, no. 11, pp. 2021–2035, 2015.

[5] A. Biere, A. Cimatti, E. Clarke, and Y. Zhu, “Symbolic model checking without BDDs,” in Tools and Algorithms for the Construction and Analysis of Systems (TACAS), W. R. Cleaveland, Ed. Berlin, Heidelberg: Springer Berlin Heidelberg, 1999, pp. 193–207.

[6] K. L. McMillan, “Interpolation and SAT-based model checking,” in Computer Aided Verification, W. A. Hunt and F. Somenzi, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2003, pp. 1–13.

[7] A. R. Bradley, “SAT-based model checking without unrolling,” in Verification, Model Checking, and Abstract Interpretation, R. Jhala and D. Schmidt, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2011, pp. 70–87.

[8] J. Li, R. Dureja, G. Pu, K. Y. Rozier, and M. Y. Vardi, “Simplecar: An efficient bug-finding tool based on approximate reachability,” in Computer Aided Verification, H. Chockler and G. Weissenbacher, Eds. Cham: Springer International Publishing, 2018, pp. 37–44.

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4552

    瀏覽量

    92027
  • PDR
    PDR
    +關(guān)注

    關(guān)注

    1

    文章

    7

    瀏覽量

    12349
收藏 人收藏

    評論

    相關(guān)推薦

    安寶特產(chǎn)品 安寶特3D Evolution:高效準(zhǔn)確的CAD質(zhì)量檢查工具

    安寶特3D Evolution質(zhì)量檢查器可基于多種規(guī)則對CAD圖形質(zhì)量進(jìn)行檢測,是唯一通過SASIG和VDA規(guī)范認(rèn)證的轉(zhuǎn)換工具。 它可以自動(dòng)且準(zhǔn)確地識別、檢查模型中存在的錯(cuò)誤,并提供特定自動(dòng)修復(fù)和交互式清理功能,可以對
    的頭像 發(fā)表于 08-21 18:06 ?456次閱讀
    安寶特產(chǎn)品  安寶特3D Evolution:高效準(zhǔn)確的CAD質(zhì)量<b class='flag-5'>檢查</b>工具

    快恢復(fù)橋檢查方法有哪些?

    快恢復(fù)橋作為現(xiàn)代電力電子設(shè)備中的重要組成部分,其性能和可靠性直接影響整個(gè)系統(tǒng)的效率和穩(wěn)定性。快恢復(fù)橋具有較快的恢復(fù)時(shí)間,廣泛應(yīng)用于各種高頻電力轉(zhuǎn)換場合。因此,定期對快恢復(fù)橋進(jìn)行檢查和維護(hù)至關(guān)重要
    的頭像 發(fā)表于 07-11 10:38 ?194次閱讀
    快恢復(fù)橋<b class='flag-5'>檢查</b>方法有哪些?

    圖像分割與語義分割中的CNN模型綜述

    圖像分割與語義分割是計(jì)算機(jī)視覺領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個(gè)具有特定語義含義的區(qū)域或?qū)ο?。卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在圖像分割與語義分割中發(fā)揮著至關(guān)重要的作用。本文將從CNN模型的基本原理、在圖像分割與語義分割中的應(yīng)用、以及具體的
    的頭像 發(fā)表于 07-09 11:51 ?340次閱讀

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型與Stage模型應(yīng)用組件互通綜述

    FA模型與Stage模型是兩套不同的應(yīng)用模型,他們擁有各自的組件。FA模型提供三種應(yīng)用組件,分別是PageAbility、ServiceAbility和DataAbility。Stag
    的頭像 發(fā)表于 06-24 16:43 ?337次閱讀
    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA<b class='flag-5'>模型</b>與Stage<b class='flag-5'>模型</b>應(yīng)用組件互通<b class='flag-5'>綜述</b>

    【大語言模型:原理與工程實(shí)踐】核心技術(shù)綜述

    其預(yù)訓(xùn)練和微調(diào),直到模型的部署和性能評估。以下是對這些技術(shù)的綜述模型架構(gòu): LLMs通常采用深層的神經(jīng)網(wǎng)絡(luò)架構(gòu),最常見的是Transformer網(wǎng)絡(luò),它包含多個(gè)自注意力層,能夠捕捉輸入數(shù)據(jù)中
    發(fā)表于 05-05 10:56

    腦機(jī)接口電極界面材料與改性技術(shù)進(jìn)展綜述

    近期,華東理工大學(xué) 材料科學(xué)與工程學(xué)院 屈雪教授等人在期刊Biomaterials Translational上發(fā)表綜述文章:Advances in electrode interface
    的頭像 發(fā)表于 03-12 09:39 ?790次閱讀
    腦機(jī)接口電極界面材料與改性技術(shù)進(jìn)展<b class='flag-5'>綜述</b>

    關(guān)于大模型在軟件測試領(lǐng)域應(yīng)用的全面綜述

    模型(LLM)由于其卓越的自然語言理解、推理等能力,已經(jīng)被應(yīng)用于各種場景,取得了前所未有的效果。
    的頭像 發(fā)表于 01-18 09:33 ?4882次閱讀
    關(guān)于大<b class='flag-5'>模型</b>在軟件測試領(lǐng)域應(yīng)用的全面<b class='flag-5'>綜述</b>

    基于LLM的表格數(shù)據(jù)的大模型推理綜述

    面向表格數(shù)據(jù)的推理任務(wù),在計(jì)算機(jī)領(lǐng)域,特別是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的研究中扮演著重要角色[1]。該任務(wù)要求模型在給定一個(gè)或多個(gè)表格的情況下,按照任務(wù)要求,生成相應(yīng)的結(jié)果作為答案(例如:表格問答、表格事實(shí)判斷)。
    發(fā)表于 01-08 09:56 ?1317次閱讀
    基于LLM的表格數(shù)據(jù)的大<b class='flag-5'>模型</b>推理<b class='flag-5'>綜述</b>

    AD539沒有spice模型,該如何仿真?

    的正弦波,VX增益用的是1V的直流電,但輸出端Vw處始終沒有波形,檢查不出原因,誰能指導(dǎo)一下,或者告訴我可以在哪個(gè)軟件上仿真,或者給我一個(gè)AD539的spice模型文件,謝謝了。根據(jù)下面這個(gè)電路圖連接的電路。
    發(fā)表于 11-21 08:03

    500篇論文!最全代碼大模型綜述

    經(jīng)典 Transformer 使用不可學(xué)習(xí)的余弦編碼,加在模型底層的詞向量輸入上。GPT、BERT將其改為可學(xué)習(xí)的絕對位置編碼,并沿用到了RoBERTa、BART、GPT-2、GPT-3等經(jīng)典模型
    的頭像 發(fā)表于 11-17 17:31 ?1066次閱讀

    什么是電氣規(guī)則的檢查

    對于Altium Designer來說,在所有的布局,布線,鋪銅都完成之后,也就完成了初步的設(shè)計(jì)工作,接下來就是進(jìn)行電氣規(guī)則的檢查了。 什么是電氣規(guī)則的檢查呢? 電氣規(guī)則檢查包括很多內(nèi)容,比如說絲印
    的頭像 發(fā)表于 11-06 15:17 ?1851次閱讀
    什么是電氣規(guī)則的<b class='flag-5'>檢查</b>

    驅(qū)動(dòng)電機(jī)的檢查與維護(hù)

    檢查電機(jī)的潤滑和冷卻系統(tǒng)是否正常運(yùn)行。定期更換潤滑油和冷卻液,并檢查油液和液位是否達(dá)到標(biāo)準(zhǔn)要求。
    的頭像 發(fā)表于 10-23 14:50 ?3833次閱讀

    【KV260視覺入門套件試用體驗(yàn)】Vitis AI 構(gòu)建開發(fā)環(huán)境,并使用inspector檢查模型

    FFT運(yùn)算(Vivado) 四、硬件加速之—使用PL加速矩陣乘法運(yùn)算(Vitis HLS) 五、Vitis AI 構(gòu)建開發(fā)環(huán)境,并使用inspector檢查模型 六、Vitis AI 進(jìn)行模型校準(zhǔn)和來
    發(fā)表于 10-14 15:34

    網(wǎng)絡(luò)安全評估技術(shù)綜述

    電子發(fā)燒友網(wǎng)站提供《網(wǎng)絡(luò)安全評估技術(shù)綜述.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 11:05 ?1次下載

    模型壓縮首篇綜述來啦

    模型壓縮涉及將大型資源密集型模型轉(zhuǎn)化為適合在受限移動(dòng)設(shè)備上存儲(chǔ)的緊湊版本。此外,它還可以優(yōu)化模型以實(shí)現(xiàn)更快的執(zhí)行速度和最小的延遲,或在這些目標(biāo)之間取得平衡。
    的頭像 發(fā)表于 09-26 17:12 ?879次閱讀
    大<b class='flag-5'>模型</b>壓縮首篇<b class='flag-5'>綜述</b>來啦