You are on page 1of 23

Kӻ thuұt BMC(Bounded Model Checking)

MӨC LӨC

MӨC LӨC ................................ ................................ ................................ ............. 1


p  KÝ HIӊU ................................ ................................ ................................ ... 2
PHҪ I: IӞI THIӊU ................................ ................................ ......................... 3
i i 
 
i   
i  i 
    
i       
i     
PHҪ II: ĐҺC ĐIӆM CӪA KӺ THUҰT pMC ................................ .................. 8
 i   !  i
  "  " #"   $ %  i&
  i  i
    i
     !"#$%&%& i'
PHҪ III:KӂT QU & HƯӞ HIÊ CӬU TIӂP THEO ...................... 19
 i '!() i*
  '!+  i
TÀI LIӊU THAM KH O................................ ................................ ................... 23

Nhóm VI 1 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

p  KÝ HIӊU

BDD Binary Decision Diagrams

BMC Bounded Model Checking

CTL Computation Tree Logic

DAG Directed Acyclic Graph

LTL Linear Temporal Logic

NNF Negation Normal Form

NSF National Science Foundation

OBDD Ordered BDD

QBF Quantified Boolean Formula

SAT Boolean Satisfiability

SRC Semiconductor Research Corporation

Nhóm VI 2 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

PHҪ I: IӞI THIӊU


1.1. Model Checking
Model Checking (kiӇm tra mô hình) là mӝt kӻ thuұt mҥnh cho viӋc kiӇm tra
các hӋ thӕng tác đӝng lүn nhau. Khҧ năng tìm kiӃm lӛi tinh vi trong các thiӃt kӃ
thương mҥi thӵc, nó đưӧc chҩp nhұn rӝng rãi trong công nghiӋp. So sánh tӟi các
hình thӭc kӻ thuұt kiӇm tra khác (ví dө, chӭng minh đӏnh lý) kiӇm tra mô hình có
tính tӵ đӝng rӝng rãi.
KiӇm tra tương đương giӳa hai mҥch, chҩp nhұn hay bác bӓ rҵng hai mҥch là
tương đương vӅ mһt chӭc năng, là mӝt khía cҥnh cӫa kiӇm tra hình thӭc. NӃu hai
mҥch tuҫn tӯ và ánh xҥ giӳa các trҥng thái cӫa chúng không có sҹn, các kӻ thuұt
thҧo luұn phía trên vô tác dөng, và kӻ thuұt kiӇm tra mô hình đưӧc yêu cҫu. Thông
thưӡng, kiӇm tra mô hình đưӧc yêu cҫu khi kiӇm tra các đһc điӇm kӻ thuұt cөc bӝ
hoһc trӯu tưӧng hóa. KiӇm tra mô hình, vҩn đӅ chính cӫa kiӇm tra hình thӭc, thӵc
hiӋn nhiӅu vҩn đӅ chung hơn kiӇm tra tương đương và mөc đích cӫa nó là chҩp
nhұn hay bác bӓ rҵng mӝt mҥch điӅu khiӇn mӝt đһc tính mà đһc tính là mӝt phҫn
cӫa đһc điӇm kӻ thuұt. KiӇm tra mô hình tìm kiӃm trӑn vҽn không gian trҥng thái
nguyên, bҳt buӝc hoһc không bҳt buӝc, và xác đӏnh tính phù hӧp cӫa đһc tính trong
không gian. Các thành phҫn cơ bҧn cӫa kiӇm tra mô hình bao gӗm mӝt mô hình
mҥch, biӇu diӉn đһc tính, và kiӇm tra tình phù hӧp cӫa đһc tính. Mҥch đưӧc mô
hình hóa như máy tӵ đӝng trҥng thái hӳu hҥn và cҩu trúc Kripke, mà không giӕng
như máy tӵ đӝng, không có các ký hiӋu vào đưӧc dán nhãn trên sӵ chuyӇn tiӃp và
có nhӳng trҥng thái là các mӋnh đӅ không thӇ phân chia.

1.2. p và pMC


1.2.1. pp (pinary eciion iagram)
BDD là biӇu đӗ có hưӟng không tuҫn hoàn (DAG) biӇu diӉn mӝt hàm
Boolean. Mӝt nút trong BDD đưӧc gán vӟi mӝt biӃn Boolean và nó có hai cҥnh đi.
Mӝt cҥnh biӇu diӉn giá trӏ đúng cӫa biӃn (1). Còn cҥnh khác cho giá trӏ sai (0). Hai
cҥnh đi cӫa nút này sӁ chӍ vào các nút khác cӫa BDD. Giҧ sӱ nút đưӧc chӍ ra bӣi
cҥnh không là j  và nút đưӧc chӍ ra bӣi cҥnh mӝt là i  . Nhӟ quy ưӟc này,
cҥnh bên trái thӇ hiӋn giá trӏ 1 cӫa biӃn và cҥnh bên phҧi đҥi điӋn cho giá trӏ 0. Nút

Nhóm VI 3 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

mà không có cҥnh vào ( nói cách khác nút mà không đưӧc chӍ vào) đưӧc gӑi là (
cӫa BDD. Mӝt nút lá hoһc nút cuӕi, biӇu hiӋn bҵng mӝt hình vuông, không đưӧc
gán biӃn và nút không đәi đưӧc đһt bҵng giá trӏ 0 hoһc 1. Đӝ lӟn cӫa BDD đưӧc
biӇu hiӋn bҵng |BDD| là tәng sӕ nút trong BDD. ĐӇ đánh giá mӝt hàm đưӧc đҥi
diӋn bӣi mӝt BDD vӟi giá trӏ cӫa các đҫu vào cho trưӟc cӫa nó, ta phҧi bҳt đҫu tӯ
nút gӕc ( và đi theo các cҥnh đӇ theo dõi các đưӡng dүn đưӧc xác đӏnh bӣi các
giá trӏ biӃn. Khi mӝt nút đưӧc gһp, liӋu cҥnh bên phҧi hoһc trái đưӧc thӵc hiӋn hay
không cũng phҧi đưӧc xác đӏnh bӣi giá trӏ biӃn cӫa nút. Ví dө, tҥi nút x, cҥnh phҧi
đưӧc xét tiӃp nӃu x lҩy giá trӏ 0, ngưӧc lҥi thì cҥnh trái đưӧc xét tiӃp. NӃu đưӡng
dүn đi đӃn nút cuӕi 0, thì hàm đư ӧc đánh giá vӅ 0. NӃu đưӡng đi đӃn nút cuӕi 1 thì
hàm đưӧc đánh giá vӅ giá trӏ 1.

1.2.2. pMC (pounded Model Checking)


Trong mô hình kiӇm tra giӟi hҥn, chung ta xây dӵng mӝt biӇu thӭc Boolean
thӓa mãn khi và chӍ khi hӋ thӕng chuyӇn tiӃp trҥng thái cơ bҧn có thӇ nhұn ra mӝt
chuӛi hӳu hҥn cӫa sӵ chuyӇn tiӃp trҥng thái mà đҥt tӟi các trҥng thái quan tâm hiӋn
tҥi. Mô hình BMC dӵa trên các thӫ tөc SAT không phҧi BDD, do đó viӋc tìm kiӃm
thông minh DFS cӫa SAT sӁ có thӇ nhanh hơn tӟi chuӛi thӓa mãn (bӝ đӃm mүu) và
không có không gian hàm mũ.
BiӇu thӭc mӋnh đӇ cӫa kiӇm tra mô hình giӟi hҥn
Cho M là hӋ thӕng chuyӇn tiӃp, f là biӇu thӭc logic thӡi gian và k là giӟi hҥn
ngưӡi dùng cung cҩp
 ä1
Quan hӋ chuyӇn tiӃp là Ÿ  : )  0      ,  1
 

 0

1.3. Ưu điӇm cӫa pMC


Trong kiӇm tra mô hình, đһc điӇm kӻ thuұt đưӧc biӇu diӉn trong logic thӡi
gian và hӋ thӕng đưӧc mô hình hóa như mӝt máy trҥng thái hӳu hҥn. Vӟi nhӳng
thiӃt kӃ thӵc tӃ, sӕ trҥng thái cӫa hӋ thӕng có thӇ rҩt rӝng và sӵ giao thoa cӫa không
gian trҥng thái trӣ nên không thӇ thӵc hiӋn đưӧc. KiӇm tra mô hình tưӧng trưng vӟi
mã hóa Boolean cӫa máy trҥng thái hӳu hҥn, có thӇ điӅu khiӇn hơn 10 trҥng thái.
BDDs, mӝt dҥng chính tҳc cӫa biӇu thӭc Boolean, thưӡng đưӧc sӱ dөng như sӵ
biӇu biӉn cơ bҧn cӫa bӝ kiӇm tra mô hình tưӧng trưng. Bӝ kiӇm tra mô hình dӵa
trên BDDs thưӡng có khҧ năng điӅu khiӇn hӋ thӕng vӟi hàng trăm biӃn trҥng thái.
Tuy nhiên, vӟi các mô hình lӟn hơn BDDs phát ra trong suӕt sӵ kiӇm tra mô hình

Nhóm VI 4 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

trӣ nên quá lӟn cho khҧ năng tính toán hiӋn tҥi. Thêm nӳa, lӵa chӑn theo thӭ tӵ tӯ
bên phҧi cӫa các biӃn BDD là rҩt quan trӑng. Sӵ hình thành cӫa mӝt thӭ tӵ biӃn mà
kӃt quҧ trong BDDs nhӓ thưӡng chi phӕi thӡi gian hoһc cҫn sӵ can thiӋp bҵng tay.
Vӟi nhiӅu ví dө, không tӗn tҥi không gian thӭ tӵ biӃn hiӋu dөng.
Các thӫ tөc quyӃt đӏnh mӋnh đӅ (SAT) cũng hoҥt đӝng trên các biӇu thӭc
Boolean nhưng không sӱ dөng các dҥng chính tҳc. Chúng không chӏu ҧnh hưӣng tӯ
sӵ bùng nә không gian giӟi hҥn cӫa BDDs và có thӇ điӅu khiӇn các vҩn đӅ thӓa mãn
mӋnh đӅ vӟi hàng nghìn biӃn. SAT dӵa trên kӻ thuұt đưӧc áp dөng thành công
trong nhiӅu miӅn khác nhau như kiӇm tra phҫn cӭng, phương thӭc logics, kiӇm tra
hình thӭc cӫa các hӋ thӕng điӅu khiӇn đưӡng ray, và các hӋ thӕng quy hoҥch AI.
Mӝt sӕ quá trình thӵc thi hiӋu quҧ là khҧ dөng. Các ví dө đáng kӇ là công cө
PROVE dӵa trên phương pháp Satlmarck và SATO d ӵa trên thӫ tөc Davis &
Putnam.
Ta giӟi thiӋu mӝt kӻ thuұt kiӇm tra mô hình tưӧng trưng dӵa trên thӫ tөc SAT.
Ý tưӣng là xét bӝ đӃm mүu cӫa chiӅu dài riêng k và phát ra mӝt biӇu thӭc mӋnh đӅ
mà thӓa mãn ** như mӝt bӝ bӝ đӃm mүu tӗn tҥi. Thông thưӡng, ta giӟi thiӋu khái
niӋm cӫa kiӇm tra mô hình giӟi hҥn, nơi giӟi hҥn là chiӅu dài tӕi đa cӫa mӝt bӝ đӃm
mүu. Ta thҩy rҵng kiӇm tra mô hình giӟi hҥn cho logic thӡi gian tuyӃn tính (LTL)
có thӇ đưӧc giҧm tӟi sӵ thӓa mãn mӋnh đӅ trong biӇu thӭc thӡi gian. ĐӇ chӭng
minh tính đúng đҳn và toàn vҽn cӫa kӻ thuұt, ta thiӃt lұp mӝt đáp ӭng giӳa kiӇm tra
mô hình hӋ thӕng và kiӇm tra mô hình nói chung. Không giӕng nhӳng cách tiӃp cұn
trưӟc tӟi kiӇm tra mô hình LTL, phương pháp không yêu cҫu xây dӵng hoҥt cҧnh
hoһc thiӃt bӏ tӵ đӝng.
Sӵ tiӋn lӧi chính cӫa công nghӋ như sau: Đҫu tiên, kiӇm tra mô hình hӋ thӕng
tìm kiӃm bӝ đӃm mүu rҩt nhanh. ĐiӅu này là do chiӅu sâu bұc đҫu tiên cӫa các thӫ
tөc tìm kiӃm SAT. Ngưӡi ta cho rҵng tìm kiӃm các bӝ đӃm mүu là đһc tính quan
trӑng nhҩt cӫa kiӇm tra mô hình. Thӭ hai, nó tìm kiӃm các bӝ đӃm mүu trong chiӅu
dài tӕi thiӇu. Đһc tính này giúp ngưӡi dùng hiӇu bӝ đӃm mүu đơn giҧn hơn. Thӭ ba,
kiӇm tra mô hình giӟi hҥn sӱ dөng ít không gian hơn BDD dӵa trên các tiӋm cұn.
Cuӕi cùng, không giӕng BDD dӵa trên các tiӋm cұn, kiӇm tra mô hình giӟi hҥn
không cҫn mӝt thӭ tӵ biӃn đưӧc lӵa chӑn bҵng tay hoһc sҳp xӃp lҥi thӡi gian chi
phӕi đӝng. Sӵ phӓng đoán phân chia mһc đӏnh thưӡng là đҫ y đӫ.
Đánh giá các ý kiӃn, ta hoàn thiӋn mӝt công cө BMC dӵa trên kiӇm tra mô
hình giӟi hҥn. Đưa ra các ví dө trong đó SAT dӵa trên kiӇm tra mô hình có ý nghĩa
tӕt hơn BDD dӵa trên kiӇm tra mô hình. Trong mӝt sӕ trưӡng hӧp kiӇm tra mô hình

Nhóm VI 5 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

giӟi hҥn phát hiӋn lӛi ngay lұp tӭc, trong khi BDD cho các trҥng thái ban đҫu có thӇ
không đưӧc tҥo ra.
á dө
Xét máy trҥng thái đơn giҧn M bao gӗm mӝt thanh ghi dӏch 3 bit vӟi các bit
riêng ký hiӇu x[0], x[1], và x[2]. Thuӝc tính T(x, x¶) ký hiӇu quan hӋ chuyӇn tiӃp
giӳa các giá trӏ x hiӋn tҥi và các giá trӏ trҥng thái x¶ tiӃp theo và tương đương vӟi:
Trong trҥng thái ban đҫu nӝi dung cӫa thanh ghi x có thӇ tùy chӑn. Thuӝc tính
I(x) ký hiӋu tұp các trҥng thái ban đҫu là True.

r i + ,-. 


/(012%&34 %561 
Thanh ghi dӏch này đưӧc gán rӛng ( tҩt cҧ các bít thiӃt lұp bҵng 0) sau 3 thanh
ghi liên tiӃp. Nhưng ta giӟi thiӋu mӝt lӛi trong quan hӋ chuyӇn tiӃp cho giá trӏ trҥng
thái tiӃp theo cӫa x[2], nơi mӝt giá trӏ không đúng 1 đưӧc sӱ dөng thay thӃ 0. Do
đó, đһc tính mà cuӕi cùng thanh ghi sӁ rӛng ( viӃt x=0) sau mӝt sӕ bưӟc đҫy đӫ là
không đúng. Đһc tính này có thӇ đưӧc phát biӇu khi biӇu thӭc LTL F(x=0). Ta dӏch
vҩn đӅ kiӇm tra mô hình phә biӃn AF vào trong vҩn đӅ kiӇm tra mô hình tӗn tҥi bӣi
phӫ đӏnh biӇu thӭc. Sau đó, ta kiӇm tra nӃu có mӝt chuӛi thӵc hiӋn mà thi hành G.
Thay cho tìm kiӃm vӟi mӝt đưӡng bҩt kǤ, ta giӟi hҥn các đưӡng có k+1 trҥng thái,
chҵng hҥn chӑn k=2. Gӑi 3 trҥng thái đҫu tiên cӫa đưӡng x0, x1, và x2 và lҩy x0 là
trҥng thái ban đҫu ( xem hình 1). Khi nӝi dөng ban đҫu cӫa x có thӇ bҩt kǤ, ta không
có bҩt cӭ giӟi hҥn cӫa x0. Ta mӣ quan hӋ trao đәi hai lҫn và suy ra biӇu thӭc mӋnh
đӅ fm đưӧc đӏnh nghĩa như )  70    70 , 71    71, 7 2  . Ta mӣ rӝng đӏnh nghĩa
cӫa T và I, và có biӇu thӭc sau:

71 Ÿ0  70 Ÿ1  71 Ÿ1  70 Ÿ2  70 Ÿ2  1 bưӟc đҫu tiên

72 Ÿ0  71 Ÿ1  72 Ÿ1  71 Ÿ2  72 Ÿ2  1 bưӟc thӭ hai

Nhóm VI 6 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Bҩt kǤ đưӡng nào vӟi 3 trҥng thái là chӭng thӵc cho ¦  7 ] 0  phҧi bao gӗm
mӝt vòng lһp. Do đó, ta yêu cҫu rҵng có mӝt sӵ chuyӇn đәi tӯ x 2 vӅ trҥng thái ban
đҫu, tӟi trҥng thái thӭ hai, hoһc tӟi chính nó ( cũng xem ӣ hình 1). Ta biӇu diӉn sӵ
chuyӇn đәi này khi Li đưӧc đӏnh nghĩa như T(x 2, x1) mà tương đương vӟi biӇu thӭc
sau:

7 Ÿ0 ) 72 Ÿ1  7 Ÿ1 ) 72 Ÿ2  7 Ÿ2 ) 1

Cuӕi cùng, ta phҧi chҳc chҳn rҵng đưӡng này sӁ thӵc hiӋn các ràng buӝc giӟi
hҥn bӣi biӇu thӭc ¦  7 ] 0  . Trong trưӡng hӧp này, đһc tính Si đӏnh nghĩa như
7 ] 0 phҧi đưӧc giӳ tҥi mӛi trҥng thái. Si tương đương vӟi biӇu thӭc sau

7 Ÿ0  1 7 Ÿ1  1  7 Ÿ2  1

Đһt cái này vào cùng tҩt cҧ, ta suy ra biӇu thӭc mӋnh đӅ sau

2
2
*? 8 (1)
)0
 
)0

BiӇu thӭc này thӓa mãn khi và chӍ khi có mӝt bӝ đӃm mүu cӫa chiӅu dài 2 cho
biӇu thӭc gӕc F(x=0). Trong ví dө, ta tìm kiӃm mӝt phép gán thӓa mãn cho biӇu
thӭc 1 bҵng cách thiӃt lұp 7 Ÿ 9 :) 1 cho tҩt cҧ i, j=0,1,2

Nhóm VI 7 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

PHҪ II: ĐҺC ĐIӆM CӪA KӺ THUҰT pMC


ACTL đưӧc đӏnh nghĩa như mӝt tұp con cӫa các biӇu thӭc cӫa CTL mà trong
dҥng phӫ đӏnh thông thưӡng và bao gӗm chӍ các bӝ lưӧng tӱ hóa đưӡng phә biӃn.
Mӝt biӇu thӭc là dҥng phӫ đӏnh thông thưӡng (NNF) nӃu sӵ phӫ đӏnh chӍ xuҩt hiӋn
trưӟc các mӋnh đӅ phҫn tӱ. ECTL đưӧc đӏnh nghĩa cùng mӝt cách, nhưng chӍ các
bӝ lưӧng tӱ đưӡng tӗn tҥi đưӧc cho phép. Ta xét toán tӱ lưӧt tiӃp theo X, toán tӱ
kӃt quҧ F, toán tӱ tәng thӇ G và toán tӱ tӟi khi U. Ta giҧ thiӃt rҵng các biӇu thӭc là
trong NNF. Ta có thӇ luôn biӃn đәi mӝt biӇu thӭc trong NNF mà không cҫn tăng
kích thưӟc gӗm toán tӱ ngҳt R  * ®  i** m m* m . Trong mӝt biӇu thӭc LTL
không có bӝ lưӧng tӱ dүn (E hoһc A) đưӧc phép. Trong bài báo này, ta tұp trung
vào kiӇm tra mô hình LTL. Kӻ thuұt có thӇ đưӧc mӣ rӝng đӇ điӅu khiӇn trӑn vҽn
ACTL*.

Đӏnh nghĩa 1. Mӝt cҩu trúc Kripke là mӝt tұp hӧp    , ) ,  , l  vӟi mӝt bӝ
trҥng thái hӳu hҥn S, tұp hӧp các trҥng thái ban đҫu ) 6 , mӕi quan hӋ chuyӇn đәi
giӳa các trҥng thái  6 , và nhãn cӫa các trҥng thái l : ! :  ;  vӟi mӋnh đӅ
phҫn tӱ A
Ta sӱ dөng các cҩu trúc Kripke như các mô hình đӇ đưa ra các phát biӇu logic.
Ta chӍ xét các cҩu trúc Kripke mà ta có mã hóa Boolean. Ta yêu cҫu rҵng

) M0,1 , và mӛi trҥng thái đó có thӇ đưӧc biӇu diӉn bӣi mӝt vecto cӫa các biӃn
trҥng thái   1,...,   vӟi s(i), cho i=1,«, n là các biӃn mӋnh đӅ.

Ta đӏnh nghĩa các biӇu thӭc mӋnh đӅ * )   , *ë  , (  và * 1   khi

* )   iff s ë I, * )  , (  **  , ( ë  , %à * 1   ** s ë l   . ĐӇ đơn giҧn ta sӱ dөng


T(s,t) thay cho *ë  , (  «Thêm nӳa, ta yêu cҫu rҵng mӑi trҥng thái có mӝt trҥng
thái kӃ tiӃp. Vӟi mӑi phҫn tӱ ë có mӝt phҫn tӱ ( ë  , ( ë ë . Vӟi
vӟi
 , ( ë ë ta cũng viӃt ! ( . Vӟi mӝt chuӛi các trҥng thái vô hҥn    0 , 1 ,... , ta
đӏnh nghĩa    )  và   )   ,  1 ,...%  ë )< . Mӝt chuӛi trҥng thái vô hҥn là

mӝt đưӡng nӃu    !   1 vӟi mӑi  ë )

Đӏnh nghĩa 2 (phát biӇu)

Nhóm VI 8 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Giҧ sӱ M là mӝt cҩu trúc Kripke, là đưӡng cӫa  và * là mӝt biӇu thӭc
LTL. Sau đó ʌ |= *(f là đúng trên ) đưӧc đӏnh nghĩa như sau:

Đӏnh nghĩa 3 (Tính phù hӧp)


Mӝt biӇu thӭc LTL * là hoàn toàn đúng trong mӝt cҩu trúc Kripke  (trong

các ký hiӋu M |= *** ʌ |= *  tҩt cҧ các đưӡng vӟi ë 0 ë ) . Mӝt biӇu thӭc
LTL * là tӗn tҥi đúng trong mӝt cҩu trúc Kripke M ( trong các ký hiӋu M |=E*) nӃu
tӗn tҥi mӝt đưӡng trong M vӟi ʌ|=* và ë 0 ë )

Xác đӏnh mӝt biӇu thӭc LTL là tӗn tҥi đúng trong cҩu trúc Kripke cho trưӟc
đưӧc gӑi là mӝt bài toàn kiӇm tra mô hình tӗn tҥi.
Trong sӵ tương thích tӟi các phát biӇu cӫa CTL*, dӉ hiӇu rҵng mӝt biӇu thӭc
LTL * là hoàn toàn đúng trong cҩu trúc Kripke ** m* không phҧi tӗn tҥi đúng.
ĐӇ giҧi quyӃt bài toán kiӇm tra mô hình phә biӃn, ta khҧo sát biӇu thӭc và thҩy rҵng
bài toán kiӇm tra mô hình tӗn tҥi cho biӇu thӭc đưӧc phӫ đӏnh không có giҧi pháp.
Bҵng trӵc giác ta thӱ tìm kiӃm mӝt bӝ đӃm mүu, và nӃu ta không thành công thì
biӇu thӭc là hoàn toàn đúng. Do đó, ta chӍ xem xét bài toán kiӇm tra mô hình tӗn
tҥi.
Ý tưӣng cơ bҧn cӫa kiӇm tra mô hình giӟi hҥn là chӍ xem xét mào đҫu giӟi hҥn
cӫa đưӡng mà có thӇ là mӝt giҧi pháp vӟi bài toán kiӇm tra mô hình tӗn tҥi. Ta giӟi
hҥn chiӅu dài cӫa mào đҫu bӣi giӟi hҥn  nào đó. Trong thӵc tӃ ta tăng dҫn giӟi hҥn,
tìm kiӃm các bӝ đӃm mүu dài hơn có thӇ.
Mһc dù mào đҫu cӫa đưӡng là hӳu hҥn, nó vүn có thӇ biӇu diӉn mӝt đưӡng vô
hҥn nӃu có mӝt vòng lһp ngưӧc tӯ trҥng thái cuӕi cùng cӫa mào đҫu tӟi bҩt kǤ trҥng
thái nào trưӟc đó ( hình 2b). NӃu không có vòng lһp ngưӧc (hình 2a), thì mào đҫu
không nó bҩt cӭ gì vӅ trҥng thái vô hҥn cӫa đưӡng. Ví dө, chӍ mӝt mào đҫu vӟi mӝt
vòng lһp ngưӧc có thӇ biӇu diӉn bҵng chӭng cho G1. Mһc dù 1 giӳ trên tҩt cҧ các
trҥng thái tӯ s0 tӟi sk, nhưng không có vòng lһp ngưӧc tӯ sk tӟi trҥng thái trưӟc đó,

Nhóm VI 9 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

nên ta không thӇ kӃt thúc, ta phҧi tìm mӝt bҵng chӭng cho G1 khi 1 không thӇ giӳ
tҥi sk+1.

r  r( =>?1 @3=# #$ 


Đӏnh nghĩa 4.

Vӟi l ” k ta gӑi mӝt đưӡng ʌ mӝt vòng (k,l) nӃu ʌ(k) ĺʌ(l) và    %á vӟi
 ) ë 0 ,..., ë   1 và % ) ë  ,..., ë  . Ta gӑi ʌ đơn giҧn mӝt vòng k nӃu
có mӝt  ë )< vӟi  ÷  thay cho ʌ là mӝt vòng (k, l).
Ta cho mӝt phát biӇu giӟi hҥn là mӝt phép xҩp xӍ tӟi pháp biӇu không giӟi hҥn
cӫa đӏnh nghĩa 2. Nó cho phép ta đӏnh nghĩa bài toán kiӇm tra mô hình giӟi hҥn và
trong mөc tiӃp theo ta sӁ cho mӝt sӵ chuyӇn đәi cӫa bài toán kiӇm tra mô hình giӟi
hҥn thành bài toán thӵc hiӋn đưӧc.
Trong các phát biӇu giӟi hҥn ta chӍ xét mào đҫu hӳu hҥn cӫa mӝt đưӡng. thông
thưӡng, ta chӍ sӱ dөng các trҥng thái k+1 đҫu tiên (s 0,«,sk) cӫa mӝt đưӡng đӇ xác
đӏnh giá trӏ cӫa biӇu thӭc trên đưӡng đó. NӃu mӝt đưӡng là mӝt vòng  thì ta dӉ
dàng duy trì các phát biӇu LTL, khi tҩt cҧ thông tin tӯ đưӡng hӳu hҥn này đưӧc suy
ra trong mào đҫu cӫa chiӅu dài .
Đӏnh nghĩa 5. (Phát biӇu giӟi hҥn cho mӝt vòng)

Giҧ sӱ  ë ) và ʌ là mӝt vòng lһp . Khi đó biӇu thӭc LTL * là đúng trên
đưӡng ʌ vӟi giӟi hҥn k ( ký hiӋu ʌ |= k f) **ʌ |= *.
Giҧ thiӃt rҵng ʌ không phҧi là mӝt vòng. BiӇu thӭc f ip là đúng trên ʌ trong

các phát biӇu không giӟi hҥn nӃu ta có thӇ tìm kiӃm mӝt hӋ sӕ  ë ) mà 1 là đúng
trên hұu tӕ ë  cӫa ʌ. Trong các phát biӇu giӟi hҥn trҥng thái (k+1)
Đӏnh nghĩa 6: ( Phát biӇu giӟi hҥn không có vòng lһp)

Giҧ sӱ  ë ) và ʌ là mӝt đưӡng không phҧi là vòng lһp . Khi đó biӇu thӭc
LTL * là đúng trên ʌ vӟi giӟi hҥn k ( ký hiӋu ʌ |= k *) iff ʌ|=0k * vӟi

Nhóm VI 10 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Chú ý rҵng nӃu ʌ không là vòng lһp k, khi đó ta nói rҵng * không đúng trên ʌ
trong các phát biӇu giӟi hҥn vӟi giӟi hҥn k khi f không thӇ giӳ trên ë  1 . Tương tӵ,
trưӡng hӧp cho * ® vӟi g thưӡng giӳ và f không bao giӡ đưӧc thӵc thi phҧi bӏ loҥi
bӓ. Nhӳng ràng buӝc này có nghĩa rҵng trong các phát biӇu giӟi hҥn tính hai mһt
cӫa G và F mF* Gm* và tính hai mһt cӫa R và U m  * U   m * R m 
không còn nҳm giӳ.
Các bài toán kiӇm tra mô hình giӟi hҥn phә biӃn và tӗn tҥi đưӧc đӏnh nghĩa
trong cùng phương pháp như trong đӏnh nghĩa 3. Bây giӡ ta mô tҧ bài toán kiӇm tra
mô hình tӗn tҥi ( M |= *) A thӇ làm giҧm như thӃ nào tӟi mӝt bài toán kiӇm tra mô
hình tӗn tҥi giӟi hҥn ( M |= k *)
p đӅ 7. Giҧ sӱ  là mӝt biӇu thӭc LTL và ʌ là đưӡng, khi đó ʌ |= kh ĺ ʌ |=h
Chӭng minh NӃu ʌ là mӝt vòng lһp k khi đó kӃt luұn theo đӏnh nghĩa. Trong
trưӡng hӧp khác ta giҧ thiӃt ʌ không phҧi là vòng lһp. Khi đó ta chӭng minh bҵng
quy nҥp trên cҩu trúc cӫa * và B đһc điӇm chҳc chҳn hơn ʌ |= ik h ĺʌi |=h. Ta chӍ
xét trưӡng hӧp phӭc tҥp nhҩt h =* ® 

Trong bұc áp chót, ta sӱ dөng cơ sӣ sau:

Giҧ thiӃt rҵng  là sӕ nhӓ nhҩt như ʌ m |= * và ʌl |= cho tҩt cҧ l vӟi B.Trong
trưӡng hӧp đҫu tiên ta xét C. Dӵa trên giҧ thiӃt, tӗn tҥi 9D như ʌi |= * (chӑn

Nhóm VI 11 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

9E). Trưӡng hӧp thӭ hai B. Bӣi vì ʌl |= cho tҩt cҧ B ta có ʌn |=  cho tҩt cҧ
B. Do đó, vӟi tҩt cҧ  ta chӭng minh rҵng phép tuyӇn trên miӅn bên phҧi đưӧc
thӵc hiӋn.
p đӅ 8. Giҧ sӱ * là mӝt biӇu thӭc LTL * và  là cҩu trúc Kripke. NӃu M |= E*

tӯ đó tӗn tҥi  ë ) vӟi M |=k E*


Mӝt bài toán kiӇm tra mô hình tӗn tҥi cho mӝt biӇu thӭc LTL * có thӇ bӏ suy
giҧm tӟi kiӇm tra mô hình CTL phҷng cӫa biӇu thӭc Egtrue trong cҩu trúc tích
Kripke nào đó. Cҩu trúc Kripke này là tích cӫa cҩu trúc Kripke gӕc vӟi mӝt hoҥt
cҧnh là hàm mũ trong kích thưӟc biӇu thӭc * trong trưӡng hӧp xҩu nhҩt. NӃu biӇu
thӭc LTL * là tӗn tҥi đúng trong M sau đó tӗn tҥi mӝt đưӡng trong cҩu trúc tích mà
bҳt đҫu vӟi mӝt trҥng thái ban đҫu và kӃt thúc vӟi mӝt chu trình trong thành phҫn
kӃt nӕi mҥnh cӫa các trҥng thái hӧp lý. Đưӡng này có thӇ đưӧc chӑn là mӝt vòng 
*
vӟi  đưӧc giӟi hҥn bӣi 2 mà là kích thưӟc cӫa cҩu trúc tích. NӃu ta chiӃu
đưӡng này lên trên thành phҫn đҫu tiên cӫa nó. Cҩu trúc Kripke gӕc, sau đó ta có
mӝt đưӡng ʌ là mӝt vòng k và cũng thӵc hiӋn ʌ |= *. Bҵng đӏnh nghĩa cӫa phát biӇu
giӟi hҥn điӅu này cũng suy ra ʌ |= k*.
Đӏnh lý chính cӫa mөc này phát biӇu rҵng, nӃu ta xét đӃn tҩt cҧ các giӟi hҥn có
thӇ, sau đó các phát biӇu giӟi hҥn và không giӟi hҥn là tương đương.
Đӏnh lý 9. Giҧ sӱ*là mӝt biӇu thӭc LTL, M là mӝt cҩu trúc Kripke. Sau đó M
|=E* nӃu tӗn tҥi k ë IN vӟi M |=k E*

2.1. Sӵ tӏnh tiӃn


Trong mөc trưӟc, ta đӏnh nghĩa các phát biӇu cho kiӇm tra mô hình giӟi hҥn.
HiӋn tҥi ta giҧm kiӇm tra mô hình giӟi hҥn tӟi sӵ thӓa mãn mӋnh đӅ. Sӵ suy giҧm
làm cho ta sӱ dөng các thӫ tөc quyӃt dӏnh mӋnh đӅ hiӋu quҧ nhҵm thӵc hiӋn kiӇm
tra mô hình.
Cho mӝt cҩu trúc Kripke , mӝt biӇu thӭc LTL * và giӟi hҥn , ta xây dӵng
mӝt biӇu thӭc mӋnh đӅ Ÿ , *  . Các biӃn 0 ,...,  trong Ÿ , *  ký hiӋu mӝt
 
chuӛi hӳu hҥn cӫa các trҥng thái trên đưӡng ʌ. Mӛi  là mӝt vecto cӫa các biӃn
trҥng thái. BiӇu thӭc Ÿ , *  biӇu biӉn bҧn chҩt các ràng buӝc trên 0 ,...,  như


Ÿ? , *   là thӓa mãn khi và chӍ khi * là đúng trên ʌ.

Nhóm VI 12 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Kích thưӟc cӫa Ÿ? , *  là đa thӭc trong kích thưӟc cӫa *nӃu các biӇu thӭc


con thông thưӡng đưӧc chia sҿ ( như trong công cө BMC). Nó là bұc hai trong và

tuyӃn tính trong kích thưӟc cӫa các biӇu thӭc mӋnh đӅ cho T, I và 1 ë . Do đó,
kiӇm tra mô hình giӟi hҥn tӗn tҥi có thӇ suy giҧm trong thӡi gian mӋnh đӅ tӟi sӵ
thӵc hiӋn mӋnh đӅ

ĐӇ xây dӵng Ÿ? , *  , đҫu tiên ta đӏnh nghĩa biӇu thӭc mӋnh đӅ Ÿ? 
 

ràng buӝc 0 ,...,  trên mӝt đưӡng hӧp lӋ ʌ trong . Thӭ hai, ta mang sӵ tӏnh tiӃn
cӫa mӝt biӇu thӭc LTL * tӟi biӇu thӭc mӋnh đӅ mà ràng buӝc ʌ đӇ thӓa mãn *.
Đӏnh nghĩa 10. ( Mӣ rӝng quan hӋ trao đi)

Vӟi cҩu trúc Kripke M,  ë )
 ä1
Ÿ?   :) )  0 
 )0

ë  ,  1 
Phө thuӝc hoһc mӝt đưӡng là vòng lһp  hoһc không ( xem hình 2), ta có hai
sӵ tӏnh tiӃn khác nhau cӫa biӇu thӭc thӡi gian *. Trong đӏnh nghĩa 11 ta mô tҧ sӵ

tӏnh tiӃn nӃu đưӡng không phҧi là mӝt vòng lһp Ÿg  đưӧc xác đӏnh trong đӏnh
 
nghĩa 13.
Xét biӇu thӭc  :) 1F- and mӝt đưӡng ʌ mà không phҧi là vòng lһp  vӟi

ë) xác đӏnh( xem hình 2a). Bҳt đҫu tҥi ë  cho  ë ) vӟi  ÷  biӇu thӭc  là
đúng trên ë  vӟi sӵ lưu ý tӟi các phát biӇu giӟi hҥn khi và chӍ khi có mӝt vӏ trí 9 vӟi

 ÷ 9 ÷  và - giӳ tҥi ʌ(i). Thêm nӳa, vӟi tҩt cҧ các trҥng thái ʌ(n) vӟi  ë ) bҳt
đҫu tҥi ʌ(i) tӟi ë  9    , mӋnh đӅ 1 phҧi đưӧc thӵc thi. Do đó, sӵ tӏnh tiӃn là đơn
giҧn mӝt phép tuyӇn trên tҩt cҧ các vӏ trí có thӇ 9 tҥi đó cuӕi cùng - có thӇ giӳ. Vӟi
mӛi vӏ trí này, mӝt phép tuyӇn đưӧc bә sung đӇ chҳc chҳn rҵng 1 giӳ trên đưӡng tӯ
ʌ(i) tӟi ë  9   . Nguyên nhân tương tӵ dүn tӟi sӵ tӏnh tiӃn cӫa các toán tӱ thӡi
gian khác.

Sӵ tính tiӃn Ÿg  ánh xҥ mӝt biӇu thӭc LTL vào trong mӝt biӇu thӭc mӋnh
 

đӅ. Thông sӕlà chiӅu dài mào đҫu cӫa đưӡng mà ta xét vàlà vӏ trí hiӋn tҥi trong
mào đҫu này ( xem hình 2a). Khi ta xӱ lý mӝt cách đӋ quy các biӇu thӭc phө,  thay

Nhóm VI 13 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

đәi như  vүn như thӃ. Chú ý rҵng ta đӏnh nghĩa sӵ tӏnh tiӃn cӫa bҩt cӭ biӇu thӭc *
nào như false. Sӵ tӏnh tiӃn này thích hӧp vӟi các phát biӇu giӟi hҥn.
Đӏnh nghĩa 11. ( Sӵ tӏnh tiӃn cӫa biӇu thӭc LTL không có vòng lһp)

Vӟi mӝt biӇu thӭc LTL f,  ë ) , vӟi i ” k.


Bây giӡ ta xét trưӡng hӧp nơi đưӡng là mӝt vòng lһp . Sӵ tӏnh tiӃn Ÿg  cӫa
 

mӝt biӇu thӭc LTL phө thuӝc vào vӏ trí hiӋn tҥi  và vào chiӅu dài cӫa mào đҫu.
Nó cũng phө thuӝc vào vӏ trí nӟi vòng lһp bҳt đҫu (xem hình 2b). Vӏ trí này đưӧc ký
hiӋu bҵng l cho vòng lһp.
Đӏnh nghĩa 12 ( Phҫn tӱ kӃ tiӃp trong vòng lһp)
Giҧ sӱ k,l,  ë )< vӟi l, i ” k. Đӏnh nghĩa phҫn tӱ kӃ tiӃp succ (i) cӫa I trong
mӝt vòng lһp (k,l) như   Gi vӟi i<k và    vӟi i=k
Đӏnh nghĩa 13 (ӵ tӏnh tiӃn cӫa biӇu thӭc LTL vӟi mӝt vòng lһp).

Giҧ sӱ * là mӝt biӇu thӭc LTL, HH  ë ) vӟi , ” .

Sӵ tӏnh tiӃn cӫa biӇu thӭc phө thuӝc vào dҥng cӫa đưӡng ( hoһc nó là mӝt vòng
lһp hoһc không). HiӋn tҥi ta đӏnh nghĩa mӝt điӅu kiӋn vòng đӇ phân biӋt các trưӡng
hӧp này.

Nhóm VI 14 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Đӏnh nghĩa 14 ( điӅu kiӋn vòng lһp)


   
Vӟi k,  ë ) , giҧ sӱ   :) ë   ,  ,  :) 8 )0  

Đӏnh nghĩa 15 (Sӵ tӏnh tiӃn chung)



Giҧ sӱ f là mӝt biӇu thӭc LTL, M là mӝt cҩu trúc Kripke, và  ë )

 0  0 
Ÿ? , *  :) Ÿ? 
   m

  Ÿ *   8
  
 )0
   
Ÿ *   

Phía bên trái cӫa phép tuyӇn là trưӡng hӧp không có vòng lһp ngưӧc và sӵ
tӏnh tiӃn không có vòng lһp đưӧc sӱ dөng. Phía bên phҧi tҩt cҧ nhӳng sӵ khӣi đҫu
có thӇ l cӫa vòng lһp đưӧc thӱ và tӏnh tiӃn cho vòng lһp ( H) đưӧc kӃt hӧp vӟi điӅu
kiӋn vòng lһp   tương ӭng

Đӏnh lý 16.

Ÿ? , *   là thӓa mãn khi và chӍ khi M |=k E*



HӋ quҧ 17. ? ) ;m* ** Ÿ? , *  là không thӓa mãn vӟi mӑi  ë )


2.2. Các cách xác đӏnh giӟi hҥn


Ta thҩy rҵng các phát biӇu không giӟi hҥn là tương đươ ng vӟi các phát biӇu có
giӟi hҥn nӃu ta xét tҩt cҧ các giӟi hҥn có thӇ. Sӵ tương đương này dүn tӟi mӝt thӫ
tөc kiӇm tra mô hình LTL đơn giҧn. ĐӇ kiӇm tra hoһc M |= Ef, thӫ tөc kiӇm tra
 |=k Ef vӟi k=0,1,2,« NӃu M |=k Ef, khi đó thӫ tөc chӭng minh rҵng M |=Ef và
đưa ra bҵng chӭng cӫa chiӅu dài k. NӃu M | Ef, ta phҧi gia tăng vô hҥn giá trӏ cӫa
, và thӫ tөc không kӃt thúc. Trong mөc này, ta thiӃt lұp mӝt sӕ giӟi hҥn cӫa . NӃu
 |k Ef vӟi mӑi k trong giӟi hҥn, ta kӃt luұn rҵng M | Ef.

2.2.1. ECTL
ECTL là mӝt tұp con cӫa ECTL* nơi mӛi toán tӱ thӡi gian đưӧc đӭng trưӟc
bӣi bӝ lưӧng tӱ đưӡng tӗn tҥi. Ta mӣ rӝng kiӇm tra mô hình giӟi hҥn đӇ điӅu khiӇn
các biӇu thӭc ECTL. Các phát biӇu và tӏnh tiӃn cho biӇu thӭc ECTL có thӇ đưӧc tìm
trong bҧn đҫy đӫ cӫa bài báo. Nhìn chung, các giӟi hҥn tӕt hơn có thӇ đưӧc suy ra
cho các biӇu thӭc ECTL hơn cho nhӳng biӇu LTL. Sӵ giao nhau cӫa hai tұp hӧp các
biӇu thӭc bao gӗm các đһc tính thӡi gian cӫa tҫm quan trӑng thӵc tӃ. Do đó, ta tính
đӃn thҧo luұn các giӟi hҥn cho các biӇu thӭc ECTL trong mөc này.

Nhóm VI 15 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Đӏnh lý 18. Cho mӝt biӇu thӭc ECTL * và mӝt cҩu trúc Kripke . Giҧ sӱ |M|
là sӕ trҥng thái trong M, khi đó M|= Ef khi và chӍ khi tӗn tҥi k” |M| vӟi M |= k Ef
Trong kiӇm tra mô hình tưӧng trưng, sӕ trҥng thái trong cҩu trúc Kripke là
giӟi hҥn bӣi , vӟi  là sӕ biӃn Boolean đӇ mã hóa cҩu trúc Kripke. Các bài toán
kiӇm tra mô hình tiêu biӇu bao hàm các cҩu trúc Kripke vӟi hàng chөc hoһc hàng
trăm biӃn Boolean. Giӟi hҥn đã cho trong đӏnh lý 18 thưӡng quá lӟn vӟi bài toán
thӵc tӃ.
Đӏnh nghĩa 19. ( Sӵ phóng đҥi)

Cho mӝt cҩu trúc Kripke , đӝ phóng đҥi cӫa  là sӕ tӕi thiӇu  ë ) vӟi đһc
điӇm sau. Vӟi mӑi chuӛi trҥng thái 0 ,..., à 1 vӟi   ,  1 ë  cho  ÷  , tӗn tҥi

mӝt chuӛi các trҥng thái (0 ,..., ( vӟi l”d như (0 ) 0 , ( ) à 1 


và ( 9 , ( 9 1 ë ë vӟi
j<l. Nói cách khác, nӃu mӝt trҥng thái v tiӋm càn mӝt trҥng thái u, khi đó % tiӋm cұn
 qua mӝt đưӡng cӫa chiӅu dài  hoһc ngҳn hơn.
Đӏnh lý 20. Cho mӝt biӇu thӭc ECTL f Efp và mӝt cҩu trúc  vӟi đӝ phóng
đҥi , M|=Efpkhi và chӍ khi tӗn tҥi k”d vӟi M |= k EFp.
Đӏnh lý 21. Cho trưӟc mӝt cҩu trúc Kripke, đӝ phóng đҥi  là chӍ sӕ tӕi thiӇu
mà thӓa mãn biӇu thӭc sau.

Cҩu trúc Kripke vӟi sӵ biӇu diӉn trҥng thái rõ ràng, các thuұt toán đӗ thӏ đã
biӃt có thӇ đưӧc sӱ dөng đӇ xác đӏnh đӝ phóng đҥi cӫa nó. Cҩu trúc Kripke M vӟi
mã hóa Boolean, có thӇ thҭm tra rҵng  thӵc sӵ là đӝ phóng đҥi cӫa  bӣi đánh giá
biӇu thӭc Boolean đưӧc lưӧng tӱ hóa (QBF), đưӧc chӍ ra trong đӏnh lý 21 . Ta phӓng
đoán rҵng biӇu thӭc Boolean lưӧng tӱ hóa là cҫn thiӃt đӇ biӇu diӉn đһc tính mà  là
đӝ phóng đҥi. Tuy nhiên, ta không bi Ӄt thӫ tөc quyӃt đӏnh hiӋu dөng cho QBF.
Đӏnh nghĩa 22 ( phóng đҥi hӗi quy)
Cho trưӟc mӝt cҩu trúc M, phóng đҥi hӗi quy cӫa nó là sӕ tӕi thiӇu d ëIN vӟi
đһc tính sau. Cho mӑi chuӛi trҥng thái s0,«s d+1vӟi (si, si+1) ë T cho I ” d , tӗn tҥi
j” d như sd+1=sj
Đӏnh lý 23. Cho trưӟc biӇu thӭc ECTL f và cҩu trúc Kripke M vӟi sӵ phóng
đҥi hӗi quy d, M |=E f iff tӗn tҥi k ” d vӟi M |= k E f
Đӏnh lý 24

Nhóm VI 16 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Cho trưӟc mӝt cҩu trúc Kripke M, đӝ phóng đҥi hӗi quy d là giá trӏ tӕi thiӇu
mà thӓa mãn biӇu thӭc

Đӝ phóng đҥi hӗi quy trong đӏnh nghĩa 22 là mӝt giӟi hҥn  cho kiӇm tra mô
hình giӟi hҥn mà thích hӧp vӟi tҩt cҧ các biӇu thӭc ECTL. Đһc điӇm cӫa đӝ phóng
đҥi hӗi quy có thӇ đưӧc biӇu diӉn như mӝt biӇu thӭc mӋnh đӅ như trong đӏnh lý 24.
Ta có thӇ sӱ dөng thӫ tөc quyӃt đӏnh mӋnh đӅ đӇ xác đӏnh hoһc d là đӝ phóng đҥi
hәi quy cӫa cҩu trúc Kripke. Giӟi hҥn dӵa trên phóng đҥi hӗi quy không kín như
giӟi hҥn dӵa trên đӝ phóng đҥi. Ví dө, trong mӑt cҩu trúc Kripke kӃt nӕi hoàn toàn,
phóng đҥi đӗ thӏ là 1 trong khi phóng đҥi hӗi quy bҵng sӕ trҥng thái.

2.2.2. LTL
KiӇm tra mô hình LTL đưӧc biӃt là PSPACE trӑn vҽn. Ta giҧm kiӇm tra giӟi hҥn
LTL tӟi sӵ thӓa mãn mӋnh đӅ và do đó chӍ ra rҵng nó là trong NP. Vì thӃ, giӟi hҥn
mӋnh đӅ trên k vӟi sӵ quan tâm tӟi kích thưӟc cӫa  và *
Đӏnh lý 25.
Cho trưӟc mӝt biӇu thӭc LTL * và cҩu trúc Kripke , giҧ sӱ |M| sӕ trҥng thái
trong M, khi đó M |= Ef iff tӗn tҥi k”|M|×2 |f| vӟi M |= k Ef
Vӟi tұp con cӫa biӇu thӭc LTL mà chӍ bao hàm các toán tӱ thӡi gian F và G,
kiӇm tra mô hình LTL là NP trӑn vҽn. Vӟi tұp con này cӫa biӇu thӭc LTL, nó có thӇ
chӍ ra rҵng tӗn tҥi mӝt giӟi hҥn trên k tuyӃn tính trong sӕ trҥng thái và kích thưӟc
cӫa biӇu thӭc.
Đӏnh nghĩa 26 ( Phóng đҥi vòng)
Ta nói cҩu trúc Kripke vòng M là dҥng vòng nӃu mӑi đưӡng p bҳt đҫu tӯ mӝt
trҥng thái đҫu tiên là cӫa dҥng «, vӟi up và vp là chuӛi chiӅu dài ban đҫu ngҳn hơn
hoһc bҵng u và v tương ӭng. Ta đӏnh nghĩa phóng đҥi vóng cӫa M như (u,v).
Đӏnh lý 27 Cho trưӟc mӝt biӇu thӭc LTL * và cҩu trúc Kripke dҥng vòng ,
giҧ sӱ phóng đҥi vòng cӫa M là (u,v), khi đó M |=Ef iff tӗn tҥi k”u+v vӟi M |= k Ef
Đӏnh lý 27 nói rҵng vӟi mӝt lӟp giӟi hҥn cӫa cҩu trúc Kripke, các giӟi hҥn nhӓ
trên  tӗn tҥi. Thông thưӡng, nӃu mӝt cҩu trúc Kripke là dҥng vòng,  bӏ giӟi hҥn
bӣi u+v, nơi (u,v) là phóng đҥi vòng cӫa M.

Nhóm VI 17 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

2.2.3. So ánh giӳa hai giӟi hҥn ECTL và LTL và CTL


Sӵ biӇu thӏ logic là phҥm vi cӫa các đһc tính logic có thӇ biӇu diӉn. Trưӟc khi
ta so sánh, ta nên đһt đӏa chӍ sӵ khác nhau trong mô hình thӡi gian dҥng CTL*/CTL
và LTL. Đҫu tiên giҧ thiӃt mӝt mô hình thӡi gian phân nhánh còn sau đó giҧi thiӃt
mӝt mô hình thӡi gian tuyӃn tính. ĐӇ có điӇm tương đӗng, ta thӇ hiӋn mӝt biӇu thӭc
LTL là Af khi nó đưӧc sӱ dөng trong mô hình thӡi gian phân nhánh. Mӝt biӇu thӭc
LTL phҧi chӭa tҩt cҧ các bưӟc trong mô hình thӡi gian phân nhánh.
Rõ ràng, CTL và LTL bҧn thân là các tұp con cӫa CTL*, bӣi vì CTL theo sau
mӝt tұp giӟi hҥn cӫa các nguyên tҳc xây dӵng biӇu thӭc và LTL không có bưӟc
lưӧng tӱ hóa E. Do đó,câu hӓi thӵc sӵ là nói lên quan hӋ giӳa CTL và LTL. Bӣi vì
trong biӇu thӭc CTL mӑi toán tӱ thӡi gian phҧi đưӧc đӭng trưӟc bӣi mӝt phương
trình đưӡng, nó chӍ ra rҵng biӇu thӭc LTLT A( FGg) không thӇ đưӧc biӇu thӏ như
biӇu thӭc CTL, nhưng nó là mӝt biӇu thӭc LTL. Ngưӧc lҥi, do 1 biӇu thӭc LTL chӍ
có thӇ có bưӟc lưӧng tӱ A, nó có thӇ đưӧc chҩp nhұn rҵng không có biӇu thӭc LTL
tương ӭng nào chӓ biӇu thӭc CTL AG(Efg). HiӇn nhiên, có các biӇu thӭc mà là cҧ
biӇu thӭc LTL và CTL. Cuӕi cùng, bҵng phép OR biӇu thӭc A (FGg) và AG (Efg),
A (FGg)+AG (EFg), ta có mӝt biӇu thӭc CTL* mà có thӇ biӇu diӉn hoһc LTL hoһc
CTL. Vұy nên, ta kӃt luұn rҵng:
(1) CTL và LTL biӇu thӏ kém chһt chӁ hơn CTL*
(2) Hoһc LTL hoһc CTL bao hàm cái còn lҥi.

r IJ-. @KH%& 

Nhóm VI 18 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

PHҪ III:KӂT QU & HƯӞ HIÊ CӬU


TIӂP THEO
3.1. KӃt quҧ
Ta đã hoàn thiӋn mӝt bӝ kiӇm tra mô hình BMC dӵa trên kiӇm tra mô hình
giӟi hҥn. Ngôn ngӳ đҫu vào cӫa nó là mӝt tұp con cӫa ngôn ngӳ SMV. Đҫu ra là
mӝt chương trình SMV hoһc biӇu thӭc mӋnh đӅ. Vӟi chӃ đӝ đҫu ra mӋnh đӅ, hai
khuôn dҥng khác nhau đưӧc hӛ trӧ. Dҥng đҫu tiên là dҥng DIMACS cho các vҩn đӅ
thӵc hiӋn đưӧc. Công cө SATO là mӝt sӵ thӵc thi hiӋu quҧ cӫa thӫ tөc Davis &
Putnam và nó sӱ dөng dҥng DIMACS. Chúng tôi cũng hӛ trӧ dҥng đҫu vào cӫa
công cө PROVE mà dӵa trên phương pháp Stalmarck.
Như tiêu chuҭn, ta chӑn các ví dө nơi BDD đưӧc biӃt đӇ vұn hành chưa tӕt.
Đҫu tiên ta khҧo sát bӝ nhân tuҫn tӵ, dӏch tuҫn tӵ và bә sung bӝ nhân. Ta đӅ ra vҩn
đӅ kiӇm tra mô hình theo thuӝc tính: khi bӝ nhân tuҫn tӵ kӃt thúc đҫu ra cӫa nó
giӕng vӟi đҫu ra cӫa mӝt bӝ nhân kӃt hӧp (mҥch C6288 tӯ các tiêu chuҭn ISCAS
85) áp dөng tӟi cùng các tӯ đҫu vào. Nhӳng bӝ nhân là bӝ nhâ n 16*16 bit nhưng ta
chӍ cho phép 16 bits đҫu ra cùng vӟi mӝt bit tràn. Ta chӭng minh đһc tính cho mӛi
bit đҫu ra riêng biӋt và các kӃt quҧ đưӧc đưa ra trong bҧng 1. Vӟi SATO ta dүn tӟi
hai thí nghiӋm đӇ nghiên cӭu ҧnh hưӣng cӫa thông sӕ -g mà điӅu khiӇn kích thưӟc
tӕi đa cӫa các mӋnh đӅ ҭn. Ta chӑn mӝt giá trӏ rҩt nhӓ ( µ-g5¶) và giá trӏ rҩt lӟn (µ-
g50¶). Chú ý rҵng bít tràn phө thuӝc vào tҩt cҧ các bit cӫa bӝ nhân tuҫn tӵ và xuҩt
hiӋn trong đһc tính kӻ thuұt. Vì vұy, nón cӫa sӵ suy giҧm ҧnh hưӣng không th Ӈ xóa
bӓ bҩt cӭ cái gì.

Nhóm VI 19 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

Li M (2(NiOKiO3(%&34 3,P%# >( &%&iO3( Q2  


Trong cӝt SMV1 cӫa bҧng 1, bҧn chính thӭc cӫa bӝ kiӇm tra mô hình CMU
SMV đưӧc sӱ dөng. SMV2 là mӝt bҧn bӣi Bwolen Yang tӯ CMU vӟi hӛ trӧ hoàn
thiӋn cho sӵ phân chia liên hӧp. Ta sӱ dөng thӭ tӵ chӑn biӃn bҵng tay mà các bit
trên thanh ghi đưӧc xen kӁ. Sҳp xӃp đӝng thҩt bҥi trong viӋc tìm kiӃm mӝt thӭ tӵ
xét tӕt hơn trong thӡi gian cӝng hưӣng.
Ta sӱ dөng bӝ dӏch khӕi như mӝt ví dө khác. Nó xoay nӝi dung cӫa file thanh
ghi b vӟi mӛi bұc bӣi mӝt vӏ trí. Mô hình này bao hà m file thanh ghi quan hӋ vӟi 3
theo cách sau. NӃu thanh ghi trong và mӝt trong b có cùng nӝi dung khi đó thanh
ghi hàng xóm cũng có cùng nӝi dung. Đһc tính này giӳ trong trҥng thái ban đҫu cӫa
mô hình, và ta chӭng minh rҵng nó là đúng trong tҩt cҧ các trҥng thái kӃ tiӃp. KӃt
quҧ cӫa thӵc nghiӋm có thӇ đưӧc tìm thҩy trong bҧng 2. ChiӅu rӝng cӫa thanh ghi
đưӧc chӑn là [log2 |r|] vӟi là sӕ thanh ghi trong file thanh ghi. Trong trưӡng hӧp
này ta cũng có thӇ chӭng minh đӝ phóng đҥi hӗi qui là (xem đӏnh nghĩa 22). ĐiӅu
này chӍ đưa tӟi khoҧng thӡi gian nhӓ đӇ so sánh vӟi th ӡi gian kiӇm tra tәng và đưӧc
chӍ ra trong cӝt phóng đҥi.
Trong 13 mҥch đӗng bӝ cho sӵ loҥi trӯ tương hӛ phân tán đưӧc mô tҧ. Nó bao
gӗm  tӃ bào vӟi  ngưӡi dùng mà muӕn có truy nhұp tương hӛ tӟi nguӗn đưӧc chia

Nhóm VI 20 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

sҿ. Ta chӭng minh đһc tính đӝng mà mӝt yêu cҫu cho viӋc sӱ dөng nguӗn tài
nguyên đưӧc công nhұn. Đһc tính đӝng chӍ đúng nӃu mӛi cәng đӗng bӝ không bӏ trӉ
vô hҥn. Ta mô hình giҧ thiӃt này bӣi ràng buӝc cho mӛi cәng riêng biӋt. Mӛi tӃ bào
có chính xác 18 cәng và do đó mô hình có n*18 ràng buӝc vӟi  là sӕ tӃ bào. Khi ta
không có giӟi hҥn cho chiӅu dài tӕi da cӫa bӝ đӃm mүu vӟi sӵ kiӇm tra cӫa mҥch
này, ta không thӇ thҭm tra đһc tính đӝng trӑn vҽn. Ta chӍ thҩy rҵng không có bӝ
đӃm mүu cӫa chiӅu dài thông thưӡng . ĐӇ minh hӑa hiӋu quҧ cӫa kiӇm tra mô hình
giӟi hҥn, ta chӑn k=5,10. KӃt quҧ đưӧc thҩy trong bҧng 3.
Ta lһp lҥi thí nghiӋm vӟi thiӃt kӃ có nhiӅu lӛi. Vӟi đһc tính đӝng ta dӉ dàng
loҥi bӓ vài ràng buӝc đӝng. Cҧ PROVE và SATO phát ra mӝt đӝ đӃm mүu ngay tӭc
thì (xem bҧng 4).

3.2. KӃt luұn


Công viӋc này là bưӟc đҫu tiên áp dөng thӫ tөc SAT vào kiӇm tra mô hình
tưӧng trưng. Ta tin tưӣng rҵng kӻ thuұt này có khҧ năng điӅu khiӇn các thiӃt kӃ lӟn
hơn nhӳng gì có thӇ hiӋn tҥi. Hưӟng tӟi mөc tiêu này, chúng tôi đӅ nghӏ mӝt sӕ
hưӟng nghiên cӭu đҫy hӭa hҽn. Chúng tôi muӕn khҧo sát cách sӱ dөng tri thӭc đӇ
hưӟng dүn nghiên cӭu trong các thӫ tөc SAT. Các kӻ thuұt mӟi là cҫn thiӃt đӇ xác
đӏnh đӝ phóng đҥi cӫa hӋ thӕng. Thông thưӡng, rҩt thú vӏ đӇ nghiên cӭu các thӫ tөc
quyӃt đӏnh hiӋu quҧ cho QBF. KӃt hӧp kiӇm tra mô hình giӟi hҥn vӟi các kӻ thuұt
suy giҧm không gian trҥng thái đưa ra bài toán thú vӏ khác.

L ,M  R RE J(H &P


HE 
(  

Nhóm VI 21 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

L 


L ,Q0S 

Nhóm VI 22 Lӟp : 10BĐTVT- KH


Kӻ thuұt BMC(Bounded Model Checking)

TÀI LIӊU THAM KH O

1. Armin Biere, Alessandro Cimatti, Edmund Clarke, Yunshan Zhu,


3 
  T(( ,
2. William K.Lam, r T     * ( (  U 

 (  11   , 2005
3. Edmund M. Clarke, Orna Grumberg, and David E. Long. Model checking

and abstraction, ü    (       
(  ,
16(5):1512±1542, 1994.
4. E. A. Emerson and C.-L. Lei. Modalities for model checking: Branching

time strikes back,   *1(   , 8:275±306, 1986.

Nhóm VI 23 Lӟp : 10BĐTVT- KH

You might also like