אימות תכונות!-רגולריות גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
2 ראשי פרקים תזכורת: בדיקה תכונות בטיחות רגולריות בדיקת תכונות!-רגולריות תכונות התמדה )persistence( רדוקציה לתכונות התמדה בדיקת תכונות התמדה חיפוש DFS מקונן סיכום תכונות רגולריות
3 תזכורת: תכונות בטיחות רגולריות תכונת בטיחות P safe מעל AP רגולרית היא אם קבוצת הרישות הרעות שלה היא שפה רגולרית מעל 2 AP
4 תזכורת: אלגוריתם לבדיקת תכונות בטיחות רגולריות TS P safe Traces fin TS bp(p safe ) = Traces fin TS L(A) = "אף פעם לא מגיעים למצב מקבל" A TS תכונת שמורה TS A מסקנה: בדיקת תכונת בטיחות רגולרית שקולה לבדיקת שמורה על DFS משמעות: ניתן לבדוק תכונות בטיחות רגולרית באמצעות
5 תזכורת: נכונות האלגוריתם L(A) = bp(p) AP TS עבור: מערכת מעברים מעל אס"ד A תכונת בטיחות רגולרית P כך של התכונות הבאות שקולות: 1) TS P 2) Traces fin TS L(A) = 3) TS A P inv A = F = q q F קבוצת המצבים המקבלים של האוטומט
6 ראשי פרקים בדיקה תכונות בטיחות רגולריות בדיקת תכונות!-רגולריות תכונות התמדה )persistence( רדוקציה לתכונות התמדה בדיקת תכונות התמדה חיפוש DFS מקונן סיכום תכונות רגולריות
7 תזכורת: תכונה!-רגולריות תכונת זמן-ליניארי P מעל AP היא ω -רגולרית אם היא שפה ω -רגולרית 2 AP מעל P
8 רעיון בסיסי לאלגוריתם TS 2 P, Traces(TS) * P, Traces(TS) Å ((2 AP )! n P) ;, Traces(TS) Å L! (A) ;, TS A 2 eventually forever :F תכונת התמדה כאשר A הוא NBA המקבל את המשלים של התכונה ז"א מקבל את המילים שאינן מקיימות את התכונה
9 תכונת התמדה Persistence Property P pers 2 AP ω תכונת התמדה מעל AP היא תכונת זמן ליניארי מהצורה "בסופו של דבר מתקיים Φ לעד" עבור תכונת מצב Φ P pers = *A 0A 1 A 2 2 AP ω i 0. j i. A j Φ+ P pers נקרא תנאי ההתמדה של Φ "אחרי רישה סופית, היא שמורה"...
10 דוגמה לתכונת התמדה eventually forever a a :a true a true B = fag A= fg 2 AP = fa,bg ניקח למשל: AP = fag אז עבור ו (A+B) * B! = (fg + fag) * fag! "בסופו של דבר יהיה כל הזמן a" שקול לביטוי
11 תכונות התמדה הן סוג של תכונות ח י ות תכונות בטיחות תכונות ח י ות 2AP ω תכונות שמורה תכונות התמדה
12 תזכורת: הרכבת אוטומט עם מערכת מצבים עבור מערכת מעברים L TS = S, Act,, I, AP, =2 AP A = hq,, ±, Q 0, Fi ואוטומט Büchi לא חוסם עם נגדיר: TS A = hs, Act,, I, AP, L i ² S 0 = S Q; AP 0 = Q and L 0 (hs; qi) = q ²! 0 is de ned by s!t ^ q L(t)!p hs;qi! 0 ht;pi ² I 0 = fhs 0 ; qi : s 0 2 I ^ 9q 0 2 Q 0 : q 0 L(s 0 )! qg
13 הרכבה של מערכת מעברים ואוטומט q 0 L(s) q L(t) p L(s) L(t) s α t
14 אימות תכונות!-רגולריות עבור: AP מערכת מעברים בלי מצבים סופיים מעל TS אוטומט Büchi לא דטרמיניסטי שאינו חוסם תכונה!-רגולרית כך ש P) L! (A) = ((2 AP )! n A P 1) TS ² P התכונות הבאות שקולות: 2) Traces(TS) Å L! (A) = ; לבסוף תמיד 3) TS A ² P pers(a) = :F מסקנה: בדיקת תכונה ω -רגולרית שקולה לבדיקת תכונת התמדה על TS A
15 הוכחה )כיוון ראשון( ¼ 0 = hs 0 ; q 1 i; hs 1 ; q 2 i; ::: 2 Paths(TS A) such that ¼ 0 2 P pers(a) ¼ = s 0 ; s 1 ; : : : is a path in TS 1 9 :q i 2 F Let q 0 2 Q 0 such that q 0 L(s 0 )! q 1 q 0 ; q 1 ; : : : is a run in A for trace(¼) = L(s 0 )L(s 1 ) 2 Traces(TS) 1 9 :q i 2 F =) q 0 ; q 1 ; : : : is accepting =) trace(¼) 2 L! (A) Traces(T S) \ L! (A) 6= ;
16 הוכחה )כיוון שני( Traces(T S) \ L! (A) 6= ; 9¼ = s 0 ; s 1 ; 2 Paths(TS) with trace(¼) = L(s 0 )L(s 1 ); 2 L! (A) Let q 0 ; q 1 ; : : : be an accepting run in in A for trace(¼) Then q 0 2 Q 0 and q i L(s i )! q i+1 for all i 0 and 1 9 :q i 2 F ¼ 0 = hs 0 ; q 1 i; hs 1 ; q 2 i; ::: 2 Paths(TS A) such that ¼ 0 2 P pers(a)
17 דוגמה: אינסוף פעמים אין ירוק? TS fredg fgreeng A :green green q 0 q 1 q 2 s 0 s 1 true :green true TS A
18 דוגמה: אינסוף פעמים אין ירוק? TS ; fredg fgreeng A :green green q 0 q 1 q 2 s 2 s 0 s 1 true :green true TS A
19 בדיקת התמדה P pers TS 2 P pers מטרה: לקבוע אם עבור מהצורה "בסופו של דבר תמיד " s יהי מצב נגיש ב- TS כך ש- 2 s s אם קיים מקטע מסלול התחלתי המסתיים ב- s נמצא על מעגל מקטע המסלול יכול להמשך למקטע מסלול אינסופי ע"י הסתובבות במעגל: מבקרים במצב s אינסוף פעמים TS 2 P pers עלולה לבקר במצב : ולכן מסקנה: TS TS ²P pers אם לא קיים כזה s אז
20 המחשה : : "חוזרת" קשת
21 בדיקת התמדה וזיהוי מעגלים עבור: מערכת מצבים TS בלי מצבים ללא מוצא מעל AP ביטוי בתחשיב פסוקים מעל AP תכונת ההתמדה הדורשת "בסופו של דבר תמיד " P pers TS 2 P pers אם ורק אם 9 s 2 Reach(TS). s 2 Æ s is on a cycle in G(TS)
22 ראשי פרקים בדיקה תכונות בטיחות רגולריות בדיקת תכונות!-רגולריות תכונות התמדה )persistence( רדוקציה לתכונות התמדה בדיקת תכונות התמדה חיפוש DFS מקונן סיכום תכונות רגולריות
23 זיהוי מעגלים איך נבדוק אם קיים מעגל נגיש המכיל מצב- :? אפשרות ראשונה: חישוב רכיבי הקשירות החזקים )SCCs( בגרף G(TS) בדיקה אם קיים SCC נגיש ממצב התחלתי ומכיל מצב : התכונה "לבסוף תמיד " נפסלת אם ורק אם נמצא כזה SCC אפשרות שנייה: שימוש באלגוריתם DFS מקונן מתאים יותר לאימות on-the-fly קל יותר לייצר דוגמאות נגדיות נתחיל מטיפול ב- DFS דו-שלבי
24 DFS דו-שלבי מצא את כל מצבי ה- Φ מתבצע ע"י חיפוש DFS הנגישים ממצב התחלתי כלשהו רגיל.1 עבור כל מצב Φ נגיש, בדוק אם הוא שייך למעגל התחל חיפוש DFS מ- s לכל מצב נגיש מ- s, בדוק האם יש קשת "חוזרת" ל- s.2 סיבוכיות זמן: O(N (j j+n+m)) כאשר N הוא מספר המצבים ו- M מספר המעברים חלקים הנגישים דרך K מצבי Φ ייסרקו K פעמים
המחשה 25
26 DFS דו-שלבי מערכת מעברים סופית TS בלי מצבים ללא מוצא ופסוק "no" אחרת,TS ² eventually for ever אם yes קלט: פלט:
27 מציאת מצבי : חיפוש DFS רגיל של מצבי :
זיהוי מעגלים 28
29 חיפוש DFS מקונן רעיון: ביצוע שני חיפושי DFS באופן שזור ה- DFS החיצוני משמש למציאת על מצבי ה- : הנגישים ה- DFS הפנימי מחפש קשתות חוזרות המובילות למצב DFS חיפוש מקונן על פריסה מלאה של מצב : ב- DFS החיצוני, התחל DFS פנימי ב- DFS הפנימי, בקר בכל המצבים הנגישים מ- s שלא נסרקו עדיין ב- DFS הפנימי לא נמצאו קשתות חוזרות ל- s? המשך את ה- DFS החיצוני )חפש את מצב ה- : הבא( בניית דוגמאות נגדיות: שרשור תוכן מחסניות ה- DFS מחסנית של ה- DFS החיצוני = מסלול ממצב התחלתי ל- s )בסדר הפוך( מחסנית של ה- DFS ה 0 פנימי = מעגל מ- s לעצמו )בסדר הפוך(
30 ה- DFS החיצוני מערכת מעברים סופית TS בלי מצבים ללא מוצא ופסוק "no" אחרת,TS ² eventually for ever אם yes קלט: פלט:
המשך... 31
32 s 0 דוגמה s 2 s 1 s 3 s 1 2, s 2 2 נניח: ² s 0 ², s 3 אבל s 2 בודקים את s 2 בלולאה החיצונית נתאר את התסריט ש- s 2 נבחר כעוקב הראשון של s 0 לפני שבודקים את s 1 hs 1, s 3, s 2, s 0 i הסדר במחסנית U הוא )ראש המחסנית ראשון( החיפוש הפנימי בודק אם Post(s 1 ) µ R = S ו s 1 נמחק מהמחסנית כיוון ש-,s 1 2 קוראים ל-( cycle-check(s 1 true cycle-check(s 1 ) המעגל s 1 s 3 s 1 ו מתגלה, מחזיר ) 0 reachable-cycle s) מסתיים במסקנה שהדוגמה הופרה דוגמה נגדית מתקבלת משרשור V=hs 1, s 3, s 1 i ו- i U=hs 3, s 2, s 0 הדוגמה הנגדית היא המסלול s 0, s 2, s 3, s 1, s 3
33 נכונות DFS מקונן עבור: מערכת מעברים סופית TS מעל AP בלי מצבים ללא מוצא תכונת התמדה P pers TS 2 P pers "no" אלגוריתם DFS מקונן מחזיר אם ורק אם
34 זמן סיבוכיות סיבוכיות זמן הריצה של אלגוריתם DFS מקונן היא O(N j j+(n+m)) באשר N הוא מספר המצבים הנגישים ב- TS ו- M מספר המעברים ב- TS
35 ראשי פרקים בדיקה תכונות בטיחות רגולריות בדיקת תכונות!-רגולריות תכונות התמדה )persistence( רדוקציה לתכונות התמדה בדיקת תכונות התמדה חיפוש DFS מקונן סיכום תכונות רגולריות
36 סיכום תכונות רגולריות )1( שפות המתקבלות ע"י = NFA/DFA שפות רגולריות משמשות לתיאור רישות רעות של תכונות בטיחות רגולריות בדיקת תכונות בטיחות רגולריות = בדיקת שמורה על מכפלה "אף פעם לא לבקר מצב מקבל" של ה- DFA עבור הרישות הרעות מסתכם בפיתרון בעיית נגישות באמצעות DFS שפות!-רגולריות הן קבוצות של מילים אינסופיות ניתנות לתיאור ע"י ביטויים!-רגולריים שפות המתקבלות ע"י = NBA שפות!-רגולריות משמשות לתיאור תכונות!-רגולריות
37 סיכום תכונות רגולריות )2( "a DBA הם בעלי יכולת תיאור פחותה מאשר NBA לדוגמה: אי אפשר לתאר תכונות התמדה כמו "בסופו של דבר תמיד GNBA דורשים אינסוף ביקורים בכל אחת מהקבוצות המקבלות השפות המתקבלות ע"י = GNBA שפות!-רגולריות בדיקת תכונה!-רגולרית = ל- NBA של המשלים: "בסופו של דבר, בדיקת תכונת התמדה על מכפלה אף פעם לא מצב מקבל" תכונות התמדה ניתנות לבדיקה בזמן ליניארי באמצעות DFS מקונן עבור מצבי : נגישים + DFS לזיהוי מעגלים DFS = מקונן DFS