Verifying Safety Properties of Concurrent Java Programs. Using 3-Valued Logic.
Eran Yahav. School of Computer Science. Tel-Aviv University, Tel-Aviv 69978.
Verifying Safety Properties of Concurrent Java Programs Using 3-Valued Logic Eran Yahav School of Computer Science Tel-Aviv University, Tel-Aviv 69978
[email protected]
"! #$% & '()*,+.- %/)0 1 "2- 34*,56*798': ;4+ -6=?,@ "! #A6 B1 C *,6-?64 1D-?,: 5,E*,+3*% 9 4*B!F(?B* 9 *9 C 45 ?9-? G9.?,?,6 H64*-O *7-96-6*7: > -BX,*,(1D-OI5 9 B 6EG?,0-69* 6-.64*65* S84 [4+ -6< f$*¸G *7V n"6*,6 C R!Q66*| 5²!#* ¬&fH¶3¦«3_2-L? L45K !Q #]? -0?9 C E(R);M E ?,B )*2K: 4*z. C ^ 6"-J* _?: -6Þ ×'×'× Ö Æ'Ã'ç>è}à×/Ì Æ:éÄtâ"ãná å å Ï4Ã'Æ7Ø4Ø>ê4Ð'Ð7É ÒÖ7Ä4ÉuÑÛÐ Ã4Ä:Û,Ä Ó'ÌØWÜ'Ú'Ó'Ó ÆÝÃ4ÄVÞ Ð7É ÒÌ7Ä ÏÌ7Ä ÊVßÚ Ä Ú Äsàtá ×'×'× Ð'Ú'Ý Ã7Ñ'ÏWÖ Ò'ÑÊ~É4Ú'Óâã>Þ à×OÆÐ4Ð7É Ò Ö7Äë Ä7Æ Êâãná å å Ï4Ã'Æ7Ø4ØWìÆ7Ñ ÓuÞ Ð'Ú'Ý Ã7Ñ'ÏsØÌ7Æ ÌÑ'Ï>Ö Ò'ÑÊAÛÆ7Ñ:ÓâË Ì'É Ñ Ó7ÅíDîuÆ É4ÅØ ã}Þ ß Ú Ä Ú Ä}à}è>Ó Ä ï²ßÚ Ä Ú Ä&â"ãná ðñ]ò Ç È7É7Ä7Æ Ê>Ð7É'Ê~è>Ó7Ä ïsÇ4È'É7Ä7Æ ÊâDÓ Ä ï²Ù7É Ò Ê ÚÏ Ä4Éâ/à,ã'ãná|ðñIó Ç È7É7Ä7Æ Ê²Ï ÓØ>è>Ó7Ä ïsÇ4È'É7Ä7Æ ÊâDÓ Ä ïuæ7ÒÓØ:ÚÛ,Ä4Éâ/à,ã'ãná|ðñMô ðñMú õ Ò ÉâÑ Ó'ÌVÑ>è}ö&á_Ñ>÷}ø&á_Ñ ù'ùãWÞ Ó Ä ï~Ç È7É7Ä7Æ Êtâ/Ó Ä ï²ê4Ð4Ð7É Ò Ö7Ä ÉâRà,ã'ãn×ØÌ Æ É4Ìâ"ãná ðñIû å Ð'É'ÊרÌ7Æ É'Ìâ"ãGá ðñMü Ï:ÓØ&רÌ7Æ É'Ìâ"ãGá ðñIý å å þFÿ
:ÿ
!"#$&%')(
d = 5 ?, _ErØ N46ÓEÏ 5,È7-É7 Ò*HÓ< Ñ 7Ä Êb#') ! rZq5,-: z;2E66*7[J51 d =Õ'Æ ?,Ö 3Æt×RÃ'ÆÓ7?Å × -QÝï Õ4Æ7Ä ÑÏ Ì,Ì,ZZ75,ÓÒ-6Ì $Ñ õ F,ZG67* 9 Ó2*,Ò ÌÑ qõ 'ê Ã' Ã( "6X-t*,6 @4-* ?: -6< =?,96 *,-O5 K%BÇ4È7É'Ä7Æ Ê;6E2 --[#'6-J *b C ^ B,E1 6*7*,+Q?Ü'Ú'Ó'ÓÆ ÝÃ4Ä$*7% 6q -&:Î ÑHá Ì Æ7Ñ4Ã}è>Î ÑHá å å å Ð'Ú'ÝÃ7Ñ4Ï}ßÚ Ä Ú7Ä ÂÌ7Ä:Û°Ì7Æ éÄtâ"ã}Þ Ø 4ÓÏ È7É7ÒÓÑ 7Ä ÊâRÌ4ÈÑ4Ø ã²Þ ßÚ ÄÚ Ä ÂÌ7Ä6Û°Î Êá Ñ õ â/È Ä7Æ Ê DèWÓ'ÚÃ4Ãã}Þ Ó Ä ï'ë Ä'Æ Ê²è>È Ä7ÆÊ×DÓ Ä4Î4Ìá Î ÊsèWÈ Ä7Æ Êá Î Ê×DÓ7Ä4Î'Ì~è>Ó4ÚÃ'Ã&á È Ä7Æ Ê~èWÓ Ä ï'ë Ä'Æ Êá Ñ õ â/Ó Äï'ë Ä7Æ Ê²è4è>Ó'ÚÃ'à ã>Þ Ì Æ7Ñ Ã}è>Ó'ÚÃ4Ã&á å å å É7Ä4Ì4Ú7É Ó~Î Êá å Ð'Ú'ÝÃ7Ñ4ÏWÖ Ò7ÑÊ~ÆÐ'Ð7É ÒÖ7Ä ë Ä7ÆÊâ"ãsÞ Ø 4ÓÏ È7É7ÒÓÑ 7Ä ÊâRÌ4ÈÑ4Ø ã²Þ Ñ õ â/È Ä7Æ Ê DèWÓ'ÚÃ4Ãã È Ä7Æ Ê×RÆÐ'Ð7É ÒÖ7Ätâ"ãná å å
121
*
ð ò ð nó ð ô ð Gú ð nû ð ü ð ý 3
,+
*
3 3
3 3 3 3
ð ð
34 35
ðò ð ó ð ô ð ú ðû ðü ðý
,+
6
87
*
,+
87
å
6 6 6 6 6
ð
6
6 4
!F?,?>G"% -- `6 ,54*W4*>P75,5,@6E66*7[ 'M(:E4+ 26 E3-O55 !F?,4c d 2-0 5,?, [E5* *, '6-[6 -Q6*7?-QGx 1D -- EC 5,E(6)9 ;9-O *75)5E2E74:?,© C -O-O ¤-64< =Q!o >?, 4G"4*->5-: C )Á?,s E+4? ~ X,: u!# %M C -O@64*X+454*-6cWvwy=?I6 C -?> G ñ :ñ v y-\ (X,: `9"?6"#Y(q?K4*X,+451 * -F E(: )966-6*7: C )94*,$ H?,\4*X,+454** ',
"w% $: ww {O @ % 66-* D %I, 6 *, *,:E0 C -O 4*{O l% u 2 ,", " wQ"[,\
G£ %ww WO ` FG£36 " RK"% zG£ &ò v nyv ò y h v ò 4ó y/k ô v 0h ò ò 'ó nó ky t," v ò yJ%L,.6"J\6 A "sÀG'62 M %/ 6 3" J'
wl V³< x'
bO £A""
Ið Á¿\ 9I 9 4£ ò[4 4£ @'
%£,J:
½ JÀH,L
:& wl G JG ò O ª% q2 S R~
"l £ zD~>D /% t l
²" 4£VwD£²DV'
%WW:
½Wð_ £u
9>6:
½'£V ,_:
½W _A
6 ,"G
©»~ %M
:t O wl @J6 " [ c 6ð Gv ð%y0 4 /"$DK6i 24 TP 6t ww G JG ó O S,\9.4'4D / t,"M,$%w" 9"D wl ,£ w
/ ð Gv y$%S£ 70 GK
_
½B,K %/"G
OJ`6:
½'£Y 4£Y Y,JD £ 4 ,BOLJ%,w" D wlW,£ l
/ 6ð Gv y 7l
~ 4 /"MDzi U7L/ [ 4 ww ~O@,M 2 %G G6 [ "`,M
6t 4 wl %Y%w" 9"D wl 4 "Y 4 /"3Di ,"L;D i2 6
4.3 Instrumentation
¤¡¥)¦?§©¨'ª0«
_^
p6
0o
9»
0a
_^
4
:
4
:
2»
M¬
¶o
_^
9^
Ç 6
0 k,i"#[n N6
»
'µ
qº
'»
0o
{o
yl.e
k,i"#[n N6
»
0oµ
dº
sl.e
k,i"#[n N6 qµpo
qº
o
qº
G»
,º
qº
»
¬
: * C ;"N* 6 >A E(1 E:!² '(X,:4*@ H+4*,EnG EG-G6(X: 2 *`?,q? * - %/)`4G6-6
Þ Ø 4ÓÏ È7É ÒÓÑ 7Ä4Êâ/Ì4ÈÑ'Ø ã~Þ Ø ÓÏÉ ÒÓÑ 7Ä4ÊâOÒ Ì4È Ä4Éã²Þ Ì7Ä:ÛÐ £ Æ'ÃÚ Ä~è~ÒÌ4È Ä4É×DÖ Æ'ÃÚ Ä&á Ò Ì4È Ä4É×/Ö Æ'ÃÚ7ÄVèWÖ Æ'ÃÚ7Ätá Ö Æ'ÃÚ Ä}è}Ì7Ä:ÛÐ £Æ'ÃÚ Ä&á å å å ,*
Ð4Ú'ÝÃ7Ñ'Ï>Ö7Ò7ÑÊVØ ï ÆÐ æ7ÒÓ'Ì7Ä Ó7ÌØrâßÚ Ä Ú7Ä ÂÌ7Ä:Û©Ò Ì4È Ä É,ã}Þ Ñ õ â`Ì4ÈÑ'Ø&×DÈÆ'Ø È æ7Ò Ê'Ätâ"ã}÷sÒ Ì4È7Ä4É×DÈÆ'Ø È æ7Ò Ê'Ätâ"ã'ã~Þ Ø 4ÓÏ È7É ÒÓÑ 7Ä4Êâ/Ì4ÈÑ'Ø ã²Þ Ø ÓÏÉ ÒÓÑ 7Ä4ÊâOÒ Ì4È Ä4Éã²Þ Ì7Ä:ÛÐ £ Æ'ÃÚ Ä~è~ÒÌ4È Ä4É×DÖ Æ'ÃÚ Ä&á Ò Ì4È Ä4É×/Ö Æ'ÃÚ7ÄVèWÖ Æ'ÃÚ7Ätá Ö Æ'ÃÚ Ä~èWÌ7Ä:ÛÐ £Æ'ÃÚ Ä&á å å å Ä7Ã'Ø ÄVÞ Ø ÓÏ È7É Ò ÓÑ 7Ä4ÊtâÒ Ì4È Ä É,ãVÞ Ø 4ÓÏÉ Ò ÓÑ 7Ä4ÊtâRÌ4ÈÑ'Ø7ã²Þ Ì7Ä:ÛÐ £Æ'ÃÚ Ä²è}Ò Ì4È Ä4É×/Ö Æ'ÃÚ7Ätá Ò Ì4È Ä É×/Ö Æ'Ã Ú Ä²è}Ö Æ'ÃÚ7Ätá Ö Æ'ÃÚ7Ä~è>Ì7Ä:Û Ð £Æ'ÃÚ7Ätá å å å å
,+
,*
,+
,*
,+
,*
,+
,*
þSÿ
tÿ
$@p
NO
Iÿ
IJO)"#O?· L%?#
J(
h x³ kJ¥]Ç4ï Ò¥Ò7Ï:éßÚ Ä Ú ÄuÞ Ð7ÉÑÖ ÆÌ7IJßÚ Ä Ú7Ä ÂÌ7Ä:ÛuÈ7Ä7Æ Êá Ð7ÉÑÖ ÆÌ7IJßÚ Ä Ú7Ä ÂÌ7Ä:Û°Ì7Æ7Ñ4Ã&á Ð7ÉÑÖ ÆÌ7Ä ÝÕ4Ä7ÏÌsÈ Ä7Æ 3Ê ¥Ò7Ï:éá Ð7ÉÑÖ ÆÌ7Ä ÝÕ4Ä7ÏÌ~Ì Æ7Ñ46à ¥Ò7Ï:éá ×'×'× Ð'Ú'ÝÃ7Ñ4Ï>Ö Ò7ÑÊ}Ð4Ú7Ìâ Ý Õ4Ä ÏÌ²Ö Æ'Ã Ú Äã>Þ ß Ú Ä Ú Ä Â Ì7Ä:۪ΠÑWèWÓ Ä ï²ßÚ Ä Ú Ä7ÂÌ7Ä:ÛQâ/Ö Æ'ÃÚ Äãná Ø 4ÓÏ È7É7ÒÓÑ 7Ä&âRÌ Æ7Ñ46à ¥Ò7Ï:éGã²Þ Ì Æ7Ñ Ãt×DÓ Ä4Î4ÌuèWÎ ÑHá Ì Æ7Ñ Ã}è}Î ÑHá å å Ð'Ú'ÝÃ7Ñ4Ï ÝÕ4Ä Ï ÌsÌ Æ éÄ&â"ã}Þ Ø 4ÓÏ È7É7ÒÓÑ 7Ä Êâ/È Ä7ÆÊ ¥Ò7Ï:éãuÞ ÝÕ Ä ÏÌ~Î Ê~èWÓ'Ú Ã'Ã&á ßÚ ÄÚ Ä ÂÌ7Ä6Û õ ÑÉØÌ7èÈ Ä7Æ Ê×lÓ Ä4Î'Ìá Ñ õ â õ ÑÉØÌ DèWÓ'ÚÃ4Ãã}Þ Î Êsè õ ÑÉØÌ×/Ö Æ'ÃÚ7Ätá È7Ä7Æ Ê~è õ ÑÉØÌá È7Ä7Æ Ê×/Ö7Æ'ÃÚ Ä²èWÓ4ÚÃ'Ã&á å å É'Ä4Ì4Ú7É4ӲΠÊá å å 121
q³
H-
o
H-
9-
Æ
*
APPENDIX A. SOME OF THE ANALYZED JAVA PROGRAMS
,+
M*
,+
-
87
þFÿ
;ÿ
Hÿ
ï#Q? >@
?I)û_%?#
ÿ
B#CÃD?#F#¶",IJ>IJ?CHL ú¶1p û
:ÿ
'#O?"' O`(