Brief Introduction to Logic

Post on 02-Feb-2016

59 views 0 download

description

Brief Introduction to Logic. Outline. Historical View Propositional Logic : Syntax Propositional Logic : Semantics Satisfiability Natural Deduction : Proofs. Historical view. Philosophical Logic 500 BC to 19th Century Symbolic Logic Mid to late 19th Century Mathematical Logic - PowerPoint PPT Presentation

Transcript of Brief Introduction to Logic

לוגיקה מתמטית מתקדמת

פרופסור דורון פלד מרצה:226חדר: מדעי המחשב

16:00-17:00שעות קבלה: יום א 8765 טלפון:

מה לומדים פה?

•http://hebrew.joelonsoftware.com/Articles/AdviceforComputerScienceC.html

חידה

שלשה ילדים משחקים בחוץ. חלק מתלכלכים על מצחם בבוץ, אבל לא יודעים

זאת.עובר אב של אחד מהם ואומר:

"לפחות אחד מכם מלוכלך בבוץ על מצחו, מי יודע שמצחו מלוכלך?"

אף ילד לא עונה. הוא שואל שוב, ואף ילד לא עונה, בפעם השלישית שהוא שואל, כל הילדים עונים יחד שראשם שלהם

מלוכלך.הכיצד?

חידה

שלשה ילדים משחקים בחוץ. חלק מתלכלכים על מצחם בבוץ, אבל לא יודעים

זאת.עובר אב של אחד מהם ואומר:

"לפחות אחד מכם מלוכלך בבוץ על מצחו, מי יודע שמצחו מלוכלך?"

אף ילד לא עונה. הוא שואל שוב, ואף ילד לא עונה, בפעם השלישית שהוא שואל, כל הילדים עונים יחד שראשם שלהם

מלוכלך.הכיצד?

מדוע אנחנו לומדים לוגיקה?

לוגיקה הינה בבסיס של מתמטיקה.•עונה על שאלות פילוסופיות של "מה ניתן •

להוכיח".מהווה כלי עבור בדיקה ואימות של תכנה •

וחומרה.בבסיס של מסדי נתונים. תעשיה של מאות •

ביליוני יורו.PROLOGתכנות בלוגיקה •

מה נלמד?

מה זה "מבנה" לוגי?•(SEMANTICS( ומשמעות )SYNTAXתחביר )•

של לוגיקת פסוקים ולוגיקה מסדר ראשון.דוגמאות לנוסחאות בלוגיקה•

xy)x<yz)x<zz<y( מתי זה נכון? מה זה אומר?

ספיקות של נוסחא: מעל מבנה נתון, מעל כל •המבנים.

כח ביטוי: מה ניתן לתאר בלוגיקה, מה לא ניתן? •כיצד ניתן להוכיח שלא ניתן לתאר מבנה כלשהו

בלוגיקה מסדר ראשון.מתי ניתן להוכיח דברים ומתי לא?•

מה עוד נלמד?

כיצד ניתן לכתוב הוכחות בלוגיקה )מערכת הוכחה(?•האם ניתן להוכיח רק דברים "נכונים"? נאותות:•האם ניתן להוכיח כל דבר נכון שניתן שלמות:•

לכתוב?משפט השלמות ללוגיקה מסדר ראשון.•GOEDELמשפט אי השלמות של •

אי אפשר לבנות מערכת שלמה ונאותה לאריתמטיקה.

אקסיומות )פורמלי, תאורטי, לא תכנות, מזכיר קצת את המאמר?(

1. (())

2. ((())(()()))

3. (((F)F))

4. (v()(v))

. אינו חופשי ב-vכאשר 5. v)v()t(

. אשר מופיע קשור ב--tכאשר אין משתנה ב

כללי הוכחה )זה ממשיך...(

• MP )Modus Ponens(

• GEN )Generalization()v(x )x(

אינו מופיע חופשי באף אחת מההנחות vכאשר

דוגמא )כן, בהתחלה זה כזה מסובך להוכיח דבר כזה פשוט(

vw )v,w( |- wv )v,w( vw )v,w( Assumption vw )v,w( w )v,w( A5 w )v,w( MP )1+2( w )v,w( )v,w( A5 )v,w( MP )3+4( v )v,w( GEN )5( w v )v,w( GEN )6(

דוגמא

vw )v,w( |- wv )v,w( vw )v,w( Assumption vw )v,w( w )v,w( A5 w )v,w( MP )1+2( w )v,w( )v,w( A5 )v,w( MP )3+4( v )v,w( GEN )5( w v )v,w( GEN )6(

נזכיר אך לא נתעמק )אנו מביני עולם...(

האם ניתן לתאר את כל המתמטיקה )תורת•הקבוצות( בלוגיקה?

, האם יש בה סתירות?ZFCמערכת אקסיומות •

נלמד אפליקציות )ככל שירשה הזמן(

PROLOGתכנות בלוגיקה •

AI ב-PLANNINGתכנון •

אימות של תכניות )יש קורס שלם: שיטות •אימות לתכנה(. אימות ידני ואוטומטי.

(.PVSכלים להוכחה )•

איפה כדאי להסתכל?

Roger C. Lyndon, Notes on Logic

(Short, Simple, but unpleasant notation)…

http://cs.biu.ac.il/~doronp/logic.html

2שעור

תחביר וסמנטיקה

על תחביר וסמנטיקה

אחד העקרונות החשובים של לוגיקה:• הסימון וכללי הכתיבה הנאותהתחביר:הפרדה בין

: המשמעות של נוסחאות.סמנטיקהשל נוסחאות, וה

התחביר הפרדה דומה קיימת בשפות תכנות:•(Syntax והסמנטיקה. שגיאות תחביר מתגלות בזמן )

הידור )קומפילציה(. בזמן זה גם מתורגמת התכנית לפרוצדורות שהמחשב יכול לבצע. )מחרוזת(

הסמנטיקה של השפה מכתיבה מה יתבצע.

בעיה בהגדרת סמנטיקה

כיצד מגדירים סמנטיקה של לוגיקה? בעיה:•, האם יש צורך פורמליתאם לוגיקה הינה שפה

להגדיר אותה באמצעות שפה פורמלית אחרת?אפשר להגדיר אותה בשפה "מתמטית", אבל רצינו

להגדיר את המתמטיקה בלוגיקה.הסמנטיקה מוגדרת בשפה טבעית, שתקרא פתרון:•

(Meta Language)פה "מטה שפה" )ולא שפה מתה...(.

לוגיקה )למשל עללוגיקה תשמש להוכחות. הוכחות •קריאות יחידה של נוסחא( יעשו במטה שפה.

תחביר של תורת הפסוקים

Var={p0, p1, p2, …, pn}

Symb={/\, \/, , ¬, T, F, ), (}

כמו Varאנו מתייחסים לאיברים של הינה הקבוצה של Symbאטומים.

הסימנים הלוגיים.

היא תת קבוצה של WFFקבוצת הגדרה:קבוצת המילים הסופיות מעל מוגדרת בצורה

אינדוקטיבית כדלקמן:בסיס האינדוקציה:

WFF היא בVar מ-piכל )1()2( )3(

סגירות: אז גם WFF( אם הם ב1) אז גם WFF( אם הם ב2) אז גם WFF( אם הם ב3) אז גם WFF( אם ב4)

קבוצת הנוסחאות הבנויות היטב )נב"ה =WFFכמחרוזות )

Symb Var

F WFFT WFF

1 2, 1 2( ) 1 2( ) 1 2( )

1 2,

1 2,

תמיד נשתמש באותיות יווניות קטנות כדי לציין WFFאיברים מ

לעיתים נרשום והכוונה היא שכל המשתנים במילה הם מתוך

דוגמא:

הנוסחאות הבאות הן נוסחאות בנויות היטב :WFFמ

1 2 3( , , ..... )np p p p1 2 3, , ..... np p p p

1 3 1

1 2 1 3

1 2 1 2

(( ) ( )),

((( ) ) ),

( ), ( )

p T p p

p p p p

p p p p

דוגמאות נוספות

הקבוצה מוגדרת באופן דומה אבל ( מתנאי 3( מהבסיס ו)3( ו-)1 ב)רקבשימוש הסגירות.

:WFF שייכים ללא הביטויים הבאים 1.

. הביטויים הבאים שייכים ל :2

{ , }FWFF WFF

1 1

1 2 1 2 1 2

((( )), ( )), ( ),

, ( , ( )) , p1p2 ))

p p

p p p p p p

{ , }FWFF

1 1

1 1

((( ) ) ),

(( ) ( ))

p F p F

p F p F

הדרגה של נוסחא בונה את הנוסחאות WFFההגדרה האינדוקטיבית של

בשלבים . הגדרות אינדוקטיביות הן בנייה מלמטה למעלה. משפט הקריאה היחידה מאפשר לנו

לראות נוסחאות גם מלמעלה למטה בצורה חד משמעית.

הגדרה: פונקציה:rankתהי

בסיס:אם אז

אנחנו קוראים ל גם נוסחא אטומיתסגירות: יהיו אזי

נמצאים ב . מוגדר כ המינימלי כך ש

WFF N0 { , }WFF T F Var

( ) 0rank 0WFF

1 2, nWFF 0WFF

1 1 2 1 2 1 2 1, ( ), ( ), ( ),

1( )rank n N1 nWFF

nWFF

1nWFF

1

1 2 1 2

1 2 1 2

1 2 1 2

( ) 1 max{ ( ), ( )};

( ) 1 max{ ( ), ( )};

( ) 1 max{ ( ), ( )};

( ) 1 ( )

n nWFF WFF

rank rank rank

rank rank rank

rank rank rank

rank rank

הזה?rankלמה זה טוב ה

.rankניתן להוכיח דברים באינדוקציה על ה• מבטא את גובה העץ כאשר כותבים את rankה•

הנוסחא בצורה של עץ.

כיצד מקבלים בצורה אינדוקטיבית את גודל •הנוסחא כתלות בתתי הנוסחא שלה?

\/

/\p

p p

תתי נוסחאות

כל הנוסחאות המשמשות בבניה הרקורסיבית של• שלה.תתי נוסחאותנוסחא הן

יש את תתי ( )p2F((p1F ))למשל לנוסחא •הנוסחאות הבאות:

p1

)p1F(p2

)p2F( ))p1F()p2F((

החלפת תתי נוסחאות(substitution)

נרשום לפעמים נוסחא בצורה פרמטרית:• )1, 2, … , n(

כממלאי מקום עבורiצורת כתיבה זו תשתמש בסימונים •נוסחאות. למשל

)1, 2(= ))1F()2 F((

1=(p1p3)אם נציב •

2=)p2F(:נקבל

((( p1p3)F)))p2F(F( )

כל נוסחא מתפרקת בצורה יחידה לתתי קריאות יחידה:•נוסחאות. הוכחה בתרגול!

טבלאות האמת והסמנטיקה של השפה הלוגית

( היא WFFמשמעות נוסחה בנוייה היטב )• הוא שקר 0}, כאשר 0,1אלמנט מתוך הקבוצה {

(FALSE ו )1( הוא אמת TRUE.) F ו-T הסמנטיים ו-1 ו-0נבחין בין הערכים •

הסינטקניים.ניתן לחשוב על טבלת אמת כעל תיאור •

התנהגות של מעגל בוליאני מסויים.

טבלאות האמת מתארות את התנהגות •,הקשרים הלוגיים בהתאמה. ,

השמות אמת

הגדרה

השמת ערך אמת היא פונקצייה:•

את כל השמות האמת.=Asנסמן ב •

כעל רגיסטרים במצב מסוים Varניתן לחשוב על המשתנים ב • כעל פונקצייה אשר בודקת את התוכן של כל Zנתון ועל רגיסטר.

: {0,1}z Var

{0,1}Var

, זאת אומרת }0,1{ ויחזירו }0,1{-יה של ערכים nהטבלאות יכילו •שנוצרת הפונקצייה:

קבוצתה ההשמות: נרצה לתת פירוט לכל אחד מהמשתנים האטומיים • בכל אחד מהם: } 0,1{של הנוסחה, זאת אומרת, נשים

•As היא קבוצת ההשמות

היא פונקצייה שמקיימת:Mפוקנציית המשמעות •

M:WFFxAs{0,1}•F,Tהם עוד סימון

:{0,1} {0,1}TT

: {0,1}Z Var

טבלאות אמתהגדרה

היא פונקצייה:TT-י, nטבלת אמת מסדר

לכל אחד מן הסימנים נשייך טבלת אמת בינארית

שתיוצג באופן הבא:

:{0,1} {0,1}nTT

, , , ,TT TT TT

TT(0,0) 0TT (0,1) 0TT

(0,0) 0TT

TT

(1,0) 0TT (1,1) 1TT

(0,1) 1TT (1,0) 1TT (1,1) 1TT

טבלאות אמת - המשך

TT(0,0) 1TT

(0,1) 1TT (1,0) 0TT (1,1) 1TT

(1) 0TT

(0) 1TT

1TTT 0FTT

FTT TTT

TT

פונקצית המשמעות

היא פונקצייהMPLפונקציית משמעות

MPL : WFF x As {0,1}

את פונקציית המשמעות MPL נציין ע"י הגדרהלשם תחשיב הפסוקים שמוגדרים בדרך

אינדוקטיבית כדלהלן :בסיס:

MPL)pi,z) = z(pi) ;

MPL)T,z) = TTT = 1;

MPL)F,z) = TTF = 0;

המשך(( פונקצית המשמעות

המשך הגדרה אינדוקטיבית

MPL))12(,z(=TT)MPL)1,z(,MPL)2,z((

MPL))12(,z(=TT )MPL)1,z(,MPL)2,z((

MPL))12(,z(=TT )MPL)1,z(,MPL)2,z((

MPL) ,z(=TT )MPL),z((

{ , }FWFF

{ , }FWFF WFF

מוגדרת עבור נוסחאות ,F{ M{פונקציית המשמעות מוגדרות היטב מסוג .

להיות,F{ M{כאשר נגדיר את .As Xהצימצום של ל

PLM{ , }FM

מדוע בחרנו באוסף הקשרים המסוים הזה ולא אחר?

נדרוש שלמות פונקציונלית, כלומר, כל נוסחא ניתן •לבטא באמצעות הקשרים הלוגיים שבחרנו.

היא קבוצה שלמה פונקציונלית?{ /\, \/, ¬} האם •

שלמה פונקציונלית?{ /\, ¬} האם •

?}, F {ומה עם •

?}{ומה עם •

שלמות פונקציונלית))1, 2, … , n-ארית. אזי קיימת נוסחה nתהי טבלת אמת

עבורה

)1, 2, … , n(,z( = TT)MPL)1,z(, MPL)2,z(, … , MPL)n,z(( MPL(

אפשר למעשה למצוא את הנוסחה ב או ב .

בטבלהXנתאר בתור את השורה ה-

TT בטבלה 0 עבור i ו 1 עבור iכאשר כל הוא הנוסחא הכללית תהיה

. 1כאשר הן השורות בטבלה שמחזירות = DNFלמעשה קיבלנו את הנוסחא ב Disjunctive Normal Form .

TT

, FWFF

,WFF

xC1 2(( ) ... )x mC l l l

il1 2... mi i ic c c

1, 2, ..., mi i i

לדוגמא

:NANDטבלת אמת של •

TTNAND)0,0(=1

TTNAND)0,1(=1

TTNAND)1,0(=1

TTNAND)1,1(=0

. נקבלp2 ו-p1נניח שתתי הנוסחאות הן

¬(p1/\¬p2¬(/\)p1/\p2(/\)p1/\¬p2)ובאופן יותר כללי:

¬(1/\¬2¬(/\)1/\ 2(/\)1/\¬ 2 )

בלבד אינה לוגיקה בעלת הסימן שלמה פונקצינלית

הוכחה:בתרגול•.עוד דוגמא: לוגיקה רק עם •. p0¬נניח שאנו רוצים לבטא את הפסוק • שקול לפסוק בו כל משתנה כל פסוק רק עם •

יופיע רק פעם אחת.אז הפסוק יהיה p0אם יופיע משתנה אחר מ- •

תלוי גם בערך המשתנה הזה, בניגוד לנוסחא ¬p0 .לכן לא יכול להופיע משתנה נוסף .

.p0¬ לא שקולה ל- p0אבל •

קריאות יחידה

לדוגמא, יש לנו שפה שבה שתי מילים:•Z-ו ZZ

השפה נכתבת ללא רווחים.?ZZZ ? ZZZZכיצד להבין

יש יותר מאפשרות אחת.בשפות עם תחביר פורמלי, רוצים קריאות יחידה.

בלוגיקה של פסוקים יש קריאות יחידה )יוכח בתרגול(.

תלות במספר משתנים סופי

כל נוסחא פסוקית תלויה בהצבתה במספר משתנים •סופי, כלומר במשתנים המופיעים בנוסחא.

( )p2F(F(((F(p1p3 )))למשל:•.p1 p2 p3תלוי רק במשתנים

כיצד להוכיח? כי "רואים את זה"?•הוכחה באינדוקציה על אורך הנוסחא, או על סדרת •

הבניה שלה מתתי נוסחאות. z2 ו-z1אז ערך הנוסחא יהיה זהה עבור כל שתי הצבות •

.p1 p2 p3הנותנות ערך לוגי זהה לשלושת המשתנים מה עם נוסחאות שכלל לא תלויות בערכי הצבת האמת?•

Tautologies

נוסחאות שלא תלויות בהצבת האמת.•דוגמאות:•

(p1)p2p1()((p1)p2p3()))p1p2()p1p3(()

הסכמות המתאימות אינן תלויות בתתי •הנוסחאות המוצבות:

((1)23()))12()13(()

כיצד להוכיח שנוסחא היא טאוטולוגיה?

לבדוק על ידי הגדרת הסמנטיקה של הנוסחא, דרך הצבות •בטבלאות האמת של הקשרים המופיעים בנוסחא.

, עבור כל צרוף לוגי 1 ו-0 קומבינציות של n 2כמות העבודה: •של משתני הנוסחא )אם משתנה מופיע כמה פעמים

משתמשים באותו ערך לוגי(. האם ניתן להוכיח באופן יותר פשוט?•

יש כל מיני היוריסטיקות )אלגוריתמים שעובדים הרבה פעמים יותר טוב, אבל לא תמיד(, אבל בעקרון, זו אחת הבעיות

הפתוחות החשובות ביותר במדעי המחשב.מערכת הוכחה )נלמד בהמשך(. במקום זאת:•

ספיקות של נוסחאSatisfiability

נוסחא היא ספיקה אם קיימת הצבת אמת •.1למשתניה הנותנת ערך לוגי

דוגמאות:•(p1\/p2)

כל טאוטולוגיה היא כמובן ברת סיפוק. האם •קיים קשר נוסף בין טאוטולוגיות ונוסחאות

ברות סיפוק?

קשר בין טאוטולוגיות ונוסחאות ברות סיפוק

מהגדרתן,

היא ¬ שהיא טאוטולוגיה, עבור כל נוסחא 1.אינה ברת סיפוק, ולהיפך

היא ¬ שהיא אינה ברת סיפוק, לכל נוסחא 2.טאוטולוגיה.

בדיקת ספיקות של נוסחא

שוב ניתן לבדוק את כל הצרופים הלוגיים של ערכי •משתני הנוסחא, לפי הסמנטיקה של הנוסחא וטבלאות האמת של הקשרים המופיעים בה.

מספיק למצוא הצבת אמת אחת כדי להסיק •שהנוסחא ספיקה, לעומת בדיקת טאוטולוגיות, שם יש

לנוסחא.1לבדוק עם כל ההצבות נותנות ערך אמת נכון מספיק אומר שיש אבל האם העובדה ש"ניחוש"•

אלגוריתם שהינו יותר טוב מבדיקת כל האפשרויות?אחת השאלות הפתוחות החשובות ביותר במדעי

? )יורחב בקורס NP=Pהמחשב עשרות שנים, האם בחישוביות(.

Substitution of variables by formulas

Let be a WFF. A function s:VarWFF is called a substitution function.

We define inductively a function subst),s( that replaces in all the variables pi by s)pi(.

Basis: subst)pi,s(=s)pi(, subst)F,s(=F, subst)T,s(=T.

Closure: subst))1/\ 2(,s(=)subst)1,s(/\subst)2,s((

subst))1\/2(,s(=)subst)1,s(\/subst)2,s((

Etc.

For example

s={<p1,)p3\/p4(>,<p2,)p5\/p6(>}

subst))p1\/p2(,s(=)subst)p1,s(\/subst)p2,s((=

(( p3\/p4(/\)p5\/p6))

Finite dependency of substitution: Let be a WFF with all its propositions inside {p1,p2,…,pn}. Let s1 and s2 be two substitution functions such that for each i, s1)pi(=s2)pi(. Then subst),s1(=subst),s2(.

Some propositions

If is not satisfiable and s is a substitution, then subst),s( is not satisfiable.

If is a tautology and s is a substitution, then subst),s( is a tautology.

Propositional Logic Proof System

3שיעור

הוכחות בתחשיב הפסוקים

מערכת הוכחהLyndon

אקסיומות )סכמות(:A1 ) )((A2 )) )(()) () (((A3 ))) F(F((

כלל היסק MP-Modus Ponens

הוכחה

יכול להופיע:--|בכל שלב בהוכחה

.פסוק מ- 1.

אקסיומה.2.

MPאם בשורות קודמות הופיעו ההנחות של 3. יכולה להופיע.MPאז המסקנה של

נרשום בכל שורה גם את ההצדקה )אקסיומה או כלל היסק(.

מה משמעות ההוכחה?

שפרושו כדלקמן:==|נסמן

לכל 1 הנותנת ערך אמת Zכל הצבת אמת . לפסוק 1, נותנת גם ערך הפסוקים שב-

1,2,...n הינה אוסף סופי של נוסחאות אם

( (1/\2/\.../\n))אזי ניתן היה גם לכתוב

את גוררת לוגית כי נאמר

==| הינה ההוכחה כי --|אזי

דוגמאות להוכחות |--)(

1 .())(() A12( .()()()))()()(( )A23( .()())( )MP )1.,2.(4 .()() A15( . )MP )4.,3.(

A1 ) )((A2 )) )(()) () (((

דוגמא להוכחה: שלילה גורפת}F --| {

1 .F assumption2( .F))F(F( )A1

3 .((F)F )MP)1.,2.(4( .((F)F) )A35 . MP)3.,4.(

בדומה, ניתן להוכיח כי, )F(}|--{

A1 ) )((

A3 ))) F(F((

We repeat some notation and definitions.

An assignment z satisfies a formula if MPL), z(=1|== means that logically implies , i.e., each assignment that satisfies all the formulas in also satisfies .|-- means that we can prove from ,i.e., there is a proof sequence that uses assumptions from , the axioms A1, A2, A3 and the proof rule MP, and ends with .

Lemma)*(: |== iff {F} is unsatisfiable.

One direction: from |==, any assignment that satisfies must also satisfy , thus cannot satisfy {F}.

Conversely, if {F} is unsatisfiable, any assignment that satisfies cannot satisfy {F}, hence it must satisfy .

מונוטוניות

מקבוצת אם ניתן להוכיח פסוק מסוים • גם מכל קבוצה אז ניתן להוכיח את פסוקים

.המכילה אתהוכחה: אפשר פשוט לחזור על כל סידרת ההוכחה,

מבלי להשתמש בפסוקים הנוספים.

להלן נשתמש במשפט כאשר כבר הוכחנו גרירה •מתוך קבוצה של פסוקים נוכל להגדיל את

הקבוצה כרצוננו.

משפט הדדוקציה

|-- if and only if {}|-- כוון משמאל לימין:

|-- אם את MP אז ניתן להסיק על ידי נתון וגם כעת בנוסף ל-

.כוון מימין לשמאל:

ונראה {}|-- נסתכל על סדרת הוכחה של שכל שורה שבה באינדוקציה על אורך סידרת ההוכחה

. מבלי להשתמש בהנחה )) ניתן להוכיח הוכחנו

הוכחת דדוקציה לפי מקרים =)שימוש בהנחה הנוספת(

ואת זה כבר הוכחנו.אזי נדרש להוכיח או .הינה שימוש באקסיומה

אובהנחה ))1A : ))נשתמש בסכמה .MP על ידי שימוש ב () ונסיק את אקסיומה

התקבל על ידי שימוש ב MP משורות שבהן (. , ו-)מופיע

, )) ( ) ( )אז באינדוקציה ניתן להוכיח )))2A: )) ) (()) ()נשתמש ב

.() פעמיים ונקבל MPנשתמש כעת ב

כעת מותר להשתמש בהוכחות במשפט הדדוקציה

פישוט הוכחות: כל פעם שנרצה להוכיח טענה מסוג |-- נוכל במקום זאת להוסיף את

במקום.להנחות ולהוכיח את חשוב שבכל שלב נזכור תחת איזו קבוצת הנחות

מוכיחים )רצוי לסמן את הקבוצה בצעד ההוכחה, אם לא לחלוטין ברור(.

נוכיח מספר משפטים נוספים שיעזרו לפשט הוכחות שאסור ונשתמש בהם )חוץ מאשר עם נאמר

, למשל במבחן(.להשתמש

דוגמאות להוכחות: טרנזיטיויות(}( ,)( --| {))

על פי משפט הדדוקציה, ניתן להוכיח באופן שקול:

(}( ,) ,) --| { 1 .

2( .)

3 . MP)1.,2.(

4( .)

5 . MP)3.,4.(

קונטרפוזיציהדוגמאות להוכחות:(}((} --| {)F))F( {)

אז ניתן להסיק( )שזה כמו להוכיח שאם נתון¬( ¬ )

על פי משפט הדדוקציה, ניתן להוכיח באופן שקול:(}( ,)F ,) --| {F

1 .2( .)

3 . MP )1.,2.(4( .F)

5 .F MP )3.,4.(

We did not use A3!

:הוכחה לפי מקרים{}|--, {F}|-- then |--

1. |-- ) ( deduction2. --|)F) deduction3. --|)))F(F(( A34. --|)))F(F(( transitivity )3.,1.(5. --|))F())F(F(( contrapositive )2.(6. --|))F(( transitivity )5.,4.(7. --|))F())F(( idempotence.8. --|)))F()F(()))F(())F(F((( A29. --|)))F(())F(F(( MP )7.,8.(10. --|))F(F( MP )6.,9.(11. --|)))F(F(( A312. --| MP )10.,11.(

נאותות ושלמות

אם ניתן להוכיח רק גרירות נכונות, כלומר נאותהמערכת היא • .==| אז --|אם

אם ניתן להוכיח כל גרירה, כלומר אם שלמהמערכת היא •==| אז --|.

.נאותההמערכת שהצגנו הינה באינדוקציה על אורך סידרת ההוכחה. הוכחה:

תמיד מתקיימות )אפשר לבדוק על ידי טבלאות האקסיומות:אמת(.

משמר נכונות: אם ההנחות שלו מתקיימות, MPכלל ההוכחה אזי ההסקה שלו מתקיימת.

לכן כל שורה בסדרת ההוכחה הינה נכונה טאוטולוגית או נובעת מהנחות ההוכחה.

אי תלות של אקסיומותהאקסיומות לא תלויות אחת אחת בשניה. אם נוריד •

אקסיומה, ישאר כלל הוכחה לא שלם ולא ניתן להוכיח בעזרת האחרות את האקסיומה שהורדנו.

.2A ו-1A אינה תלויה ב-3Aלדוגמא, •. נסתכל על לוגיקה דומה לשלנו, 3Aהוכחה. נוריד את •

(. T )בדומה ל-1 מקבל את הפרוש הסמנטי Fאבל MP וכלל ההיסק 2A ו-1Aבלוגיקה הזו, האקסיומות

עדיין תקפים, וניתן להסיק בהם רק משפטים שפרושם בשתי הלוגיקות. )טאוטולוגיות(1הסמנטי הוא

מיתר האקסיומות וכלל A3אם הינו יכולים להוכיח את • היתה טאוטולוגיה גם בלוגיקה החדשה.A3ההוכחה, אז

אינה טאוטולוגיה בלוגיקה הזו:3Aאבל •( ((F)F)))))T(T((

הוכחת שלמות )קשה!(.--| אז ==|רוצים להוכיח כי אם •.=/=| אז -/-|באופן שקול נוכיח כי אם •-/-|נניח •נסדר את כל המשפטים של לוגיקת פסוקים לפי סדר •

מסויים )לפי אורך, ואלפבתי, כמו בספר טלפונים כלפי נוסחאות מאותו אורך(

0, 1, 2.… ,נבנה סדרה הולכת וגדלה של קבוצות פסוקים•

=0 12.…:כדלקמן i { i = i+1אזי { -/-|{ i i }אם

i = i+1אחרת

….*=0 12נגדיר •

*תכונות של

-/-|* .מדוע?

.* נמצא ב אז *--|אם • i אז היתה קבוצה * לא נמצא ב כי אם

--|{ i }כך ש- . בסתירה למה שכתוב * --| אזי *--|אבל מכיון ש

מעל.

*תכונות של ( F ) וגם , לא יתכן שגם עבור פסוק כלשהו •

.* שניהם ב-נמצאיםאחרת, באיזה שלב, שתי הנוסחאות היו נמצאות, הוכחה:

ומכאן להוכיח כל דבר... F היה ניתן להוכיח MPלפי *. ב-נמצאים( F ) או, או עבור פסוק כלשהו •

. * נמצאים ב אינם i (F=)ו- =k הוכחה: נניח כי ומכאן לפי --|{ k } וגם --|{)F( i }אזי

|--) max)i,k"הוכחה לפי מקרים" ומונוטוניות נובע כי בסתירה לבניה.

אבל לא *כלומר, כל פסוק או השלילה שלו נמצאים ב- •שניהם.

*תכונות נוספות של

•Fאינה נמצאת ב * ניתן היה להוכיח מ- אחרת* כל דבר.

• () -נמצא ב * אם ורק אם ( או (F נמצאים .*ב-

אינם נמצאים F) וגם ). אם נמצא ב- *()נניח כי –אבל אז מתקיים .* נמצאים ב- וגם F) אזי )* ב-

}, )(, )F(--|{ F ..סתירה.* נמצאת ב () אזי גם * נמצאת ב אם–

.MP( ו- ))1A ) הוכחה:שימוש ב-. *. נמצאת ב ()גם אזי* נמצאת ב (F( אם–

* |-- ()הוכחה: נראה ש (F( כהנחה נוספת, יחד עם שימוש בדדוקציה מעביר את

.לכן לפי דדוקציה, ניתן להוכיח כל דבר, וביחוד MPו () --| *

מכאן...

מתנהגת כסמנטיקה של *קבוצת הנוסחאות • 1הנוסחאות תחת הצבת אמת. היא נותנת ערך אמת

אחרת.0אם נוסחא נמצאת בקבוצה ו-ההצבה תלויה בנוסחאות האטומיות, שכל אחת יכולה

או ששלילתה שייכת.*להיות שייכת ל- כפי שהראינו בתכונות השקף הקודם, בניה זו

קונסיסטנטית עם נוסחאות בנויות היטב.* נמצאות ב- כל הנוסחאות של •. * אינה יכולה להיות שייכת לקבוצה הנוסחא •

להצבה שנותנת ערך אמת 0 מקבלת ערך אמת לכן .=/=| לכן . המכילה את * לכל הנוסחאות ב- 1

לוגיקה מסדר ראשון

מהי לוגיקה מסדר ראשון?

מאפשרת משתנים מעל מבנה מתמטיהכולל:

,תחום מסויים, למשל השלמים, מחרוזותהטבעיים, צמתים בגרף....

בפונקציות ורלציות )=יחסים(, למשל יחסיםמתמטיים >, <, קשתות בגרף...

מאפשרת להשתמש בכמתים לכל וקיים

:משמעות , E Vמבנה של גרף

:"מוגדר על קבוצה של צמתים ה"עולםVהיחסEVV אוסף של זוגות מסודרים(

מעל העולם( מתאר את הקשתות בגרף(v1,v2)E-אם יש קשת מ v1-ל v2.

:לדוגמא

V={1,3,5,12,15,27} E={(1,3),(1,5),(3,12),(5,15),

(12,1),(15,3)}

המספרים הטבעיים והאריתמטיקה

המבנהNat:N, +N, N, <N, 0N, 1N

N 0המספרים הטבעיים, כולל - +N

: N N N פונקצית החיבור מעל הטבעיים - xN

: N N N פונקצית הכפל מעל הטבעיים - <N N N היחס "קטן מ-" מעל הטבעיים - 0NN הקבוע "אפס" הטבעיהערך

1N N הקבוע "אחד" הטבעי

המספרים הממשיים והאריתמטיקה

המבנה Real:R, +R, R, <R, 0R, 1R

Rהמספרים הממשיים - +R

: R R R פונקצית החיבור מעל הממשיים - xR

: R R R פונקצית הכפל מעל הממשיים - <R R R היחס "קטן מ-" מעל הממשיים - 0RR הקבוע "אפס" הממשי

1R R הקבוע "אחד" הממשי

מבנה (סמנטיקה)ו"מילון")תחביר(

A, fA , gA , rA , cA , dA הסמנטי שייך לחלקA ה"עולם" מעליו מדברים – קבוצה

fA , gA פונקציות

rA רלציות

cA , dA קבועים סימנים עבור פונקציות, בתחבירובמקביל, יש

F-ו G סימן עבור הרלציה ,R סימנים עבור ,.D ו-Cקבועים

נגדיר את שפת לוגיקה מסדר ראשון

נגדיר אוסף של סימני רלציהRn,m כאשר nהוא ה arity- )מספר הפרמטרים(

מספר סודר.mו- נגדיר אוסף של סימני פונציהFn,m

מספר סודר.m ו-arity הוא הn כאשר נגדיר אוסף של סימני קבועCm

(.0 של arityפונקציות עם )קבועים: נגדיר אוסף של משתניםVm

דברים שנרצה לבטא בלוגיקה:

.לכל צומת בגרף יש בדיוק שני שכנים.יש אינסוף מספרים ממשיים בין כל שני מספרים רציונלים יש מספר

רציונלי נוסף.

.אנו נגדיר שפה שבה נוכל לבטא את כל אלו

תחביר

נגדיר אותו בשני שלבים

ביטויים

נוסחאות

termsנגדיר קודם כל ביטויים :המשתנים וסימני הקבוע הם בסיסterms. אםt1, t2, ... tn-הם ביטויים ו Fn,m הינה פונצקיה

אז arity-nעם Fn,m(t1, t2, … tn).הינו ביטוי

.)לביטויים "קריאות יחידה" )לא נוכיח כאן

דוגמאות

נסתכל על מבנה של מספרים )ממשיים, שלמים, מרוכבים(. נכתוב את סימני הפונקציה והרלציה

.arityעם אינדקס שיסמן את השימוש, וללא ה-v7, c0, c1, v13,

F+(v7,c0), Fx(c1,v17),Fx(F+(v7,c0),Fx(v1,v17))

דוגמאות לכתיבה לא נכונה של ביטויים:R<(v7,c1), (v7+c1), (v7xc1)

יותר מאוחר...

:נרשה לעצמנו להשתמש בסימונים הרגילים* ,+ ,<

כרגע לא נעשה את זה, מכיון שאנו רוציםלהבחין בין הסימן התחבירי עבור + לבין

הפונקציה חיבור. בדרך כלל, באופן לא כדי לציין את פורמלי משתמשים בסימן +

שניהם. "כשנדע להבחין, נוכל לבטל את ה"פורמליות

הכבדה.

קשרים לוגיים, כמתים ושוויון

בנוסף לסימונים במילון, ניתן להשתמשבלוגיקה מסדר ראשון גם

בקשרים לוגיים /\ )או(, \/ )וגם( וכולי,הכמת )קיים: בכמתים:

האקסיסטנציאלי(, ,)לכל, הכמת האוניברסלי(

)נסמן אותו בשקפים באופן =ובסימון השוויון כדי להבהיר שזה סימון בשפה(.מודגש

נוסחא של לוגיקה מסדר ראשון נוסחאות אטומיות כבסיסנגדיר קודם:

נוסחא אטומית מתקבלת על ידי הפעלת רלציהRn,m(t1, t2, …, tn) על ביטויים t1, t2, ... tn

. t1=t2או על ידי

מתנהג גם הוא כמו רלציה =הערה: כפי שרואים, הסימן – בינארית. הסיבה שהשימוש בו נפרד הינו כי אנחנו=רוצים להבטיח, כאשר ניתן את המשמעות, שהסימן

מתנהג כרלצית השוויון הסטנדרטית.

כעת נגדיר נוסחאות כלליות

:נוסחא אטומית היא נוסחא בסיס:אם אינדוקציה1-ו 2-הן נוסחאות ו viהוא

משתנה אז גם(1/\2) ,(1\/2) ,1, vi1, vi1 הן

נוסחאות.

דוגמאות

v3 ( F2,1(v1,v3)=v2/\ (v3=C1/\v3=v2) )

v1 v3 (F2,1(v1,v3)=v2/\ (v3=C1/\v3=v2) )

קישור בין תחביר למשמעות

.בינתיים יש לנו מבנים ומילון וביטויים,נשייך לכל סימון במילון אלמנט )כמו פונקציה

יחס, קבוע( במבנה. ,נגדיר פונקצית הצבה או השמה למשתנים

שתתן לכל משתנה ערך מעל התחום של המבנה.

ואז נגדיר באופן רקורסיבי את המשמעות שלביטוי ביחס למבנה והצבה.

פונקצית השמה או הצבה (assignment.)

כמו שהיתה לנו השמה בלוגיקה של פסוקיםשנתנה ערך לכל משתנה פסוקי, כך תהיה לנו

פונקצית השמה פה. הפונקציהz מחזירה ערך לכל משתנה מתוח

העולם )תחום הערכים של המבנה הנדון(.דוגמא, אם העולם הוא של מספרים טבעים

z(v1)=1, z(v2)=100,…,z(v7)=111 ,… השמה אחרת מעל אותו עולם:

z(v1)=13, z(v2)=8,…,z(v8)=1 ,…

נפרש סימני יחס, פונקציה, קבוע Pמעל מבנה. נניח פירוש קבוע

נגדיר את פונקצית הפירושP שתקח סימן במילון ותחזיר יחס, פונקציה או קבוע, בהתאמה מעל מבנה:

P(F1,1)=“sin”, P(F2,1)=“+”, P(R2,1)=“<“, P(C1)=“0”.

P)F2,1)=“+”, P(F2,2)=“*”, P(R2,1)=“>“, P(c1)=“1”. כתבנו למשלsin:הסימון במרכאות כי הכוונהF1,1 מתפרש

כפונקצית הסינוס הידועה," מתפרש 0הידוע, ו" מתפרש כיחס "קטן מ"R1,1הסימון

ולא כסימן "אפס". כערך "אפס"

נוכל עכשיו לתת פירוש סמנטי MT לביטויים מעל מבנה S

zוהצבה

MT(t, P, z) מוגדר בצורה רקורסיבית MT(vi, P, z) = z(vi) עבור משתנה

MT(Ci,P, z) = P(Ci) עבור קבוע

MT(Fn,m(t1, t2, …, tn),P, z)= P(Fn,m) (MT(t1,P, z), … MT(tn, P, z))

דוגמא:נסתכל על ההשמה הבאה

z(v0)=0, z(v1)=2, … z(vi)=2i, …P)F2,0)=“” P(F2,1)=“+” P(C1)=1 נניח:

Nat נסתכל על המבנה של הטבעיים MT(F2,0(v2,F2,1(v3,C1)), P, z)= P(F2,0)(z(v2), P(F2,1) ( z(v3), P(C1)))

z(V2)= 4 P(C1)=1 z(v3)=6.P)F2,0)=“” P(F2,1)=“+” z(v2)=4.P(F2,1) ( z(v3), P(C1))= 6+1=7.P(F2,0)(z(v2), P(F2,1) ( z(v3), P(C1)))=47=28.

מעל מבנה של נוסחא Mמשמעות S והצבה z קודם עבור נוסחאות .

אטומיות

M(Rn,m(t1,t2,…tn), S, z)= (MT(t1, P, z), …, MT(tn, P, z))P(Rn,m)

M(t1 = t2, P, z) = MT(t1, P, z ) = MT(t2, P, z)

סימני שוויון, מה משמעותם?3שימו לב, יש פה

דוגמא

M (R2,0(C0, F2,0(v2,F2,1(v3,C1))), P, z)=???

P(C0)=0, P(R2,0)=“<“ נניח

MT) F2,0(v2,F2,1(v3,C1)), Nat, z) =28

MT(C0, Nat, Z) = P(C0) = 0.

M(…, Nat, z) = (0, 28)< (= true).

נגדיר יחס בין הצבות

שונות לכל היותר לגבי הערך z2 וz1ההצבות viשהן נותנות למשתנה

z1 =i z2

אחרי דרך ארוכה...משמעות של נוסחא מסדר ראשון

M((1/\2), P, z)= TT/\(M(1, P, z), M(2, P, z))

M((1\/2), S, z)= TT\/(M(1, P, z), M(2, P, z))

M(1, P, z)= TT(M(1, P, z))

M(vi1, P, z)=Exists z’, z’ =i z such that M(1, P, z’)

M(vi1, P, z)=For each z’, z’ =i z, M(1, P, z’)

דוגמאות. נפרש P(F2,1)=“” P(C1)=1

v3 (F2,1(v1,v3)=v2/\ (v3=C1/\v3=v2) )

v1 מחלק את v2

v1 v3 (F2,1(v1,v3)=v2/\ (v3=C1/\v3=v2) )

v2 .ראשוני

נרשה כעת סימני פונקציה עם אינדקס שירמז על משמעות...

v1v2 (R<(v1,v2) v3(R<(v1,v3) /\ R<(v3,v2)))

?מה המשמעות

המשמעות – תלויה במבנה, האם בכל המבנים?trueהמשמעות תמיד

נרשה כעת סימני פונקציה עם אינדקס שירמז על משמעות...

v1v2 (R<(v1,v2) v3(R<(v1,v3) /\ R<(v3,v2)))

< שהינו סדר מלא )כל שני במבנה עם יחס מספרים סדורים אחד יחסית לשני(, המשמעות הינה

שבין כל שני מספרים יש מספר שלישי Density.

הערך הלוגי של המשפט הינוtrue עבור המספרים עבור המספרים falseהממשיים או הרציונלים, ו-

הטבעיים או השלמים. וגם, אין הכרח שהסימוןR> יתאים לסדר מלא או

אחר!יכול להיות שהוא מיצג יחס האומר שהפרמטר

הראשון מחלק את השני.

משתנים חופשיים וקשורים

נמצאים תחת ההשפעה קשוריםמשתנים של כמת )אוניברסלי או אקסיסטנציאלי(.

.חופשייםאחרת הם .ההגדרה המדויקת הינה רקורסיבית נניח שמוגדרvar(t) המשתנים של –

tהביטוי (.var(t)להגדיר את )רעיון טוב לתרגיל בית:

הגדרה פורמלית של משתנים חופשיים:

free(t1=t2)=var(t1)var(t2) free(Rn,m(t1,t2,…,tn)=var(t1) … var(tn) free(\/)=free() free() free(/\)=free() free() free()=free() free(vi )=free()\{vi} free(vi )=free()\{vi}

דוגמאv3 (F2,1(v1,v3)=v2/\(v3=C1/\v3=v2))

var(F2,1(v1,v3))={v1,v3}

free(v3=C1)={v3}

free(v3=v2)=free(v3=v2)={v2,v3}

free((v3=C1/\v3=v2))={v2,v3}

free((F2,1(v1,v3)=v2/\(v3=C1/\v3=v2)))={v1,v2,v3}

free(v3(F2,1(v1,v3)=v2/\(v3=C1/\v3=v2)))={v1,v2}

עוד על משתנים קשורים וחפשיים

כל הופעה של משתנהvi בנוסחא בתוךvi.הינה הופעה קשורה

אתגר לבית: הגדר את קבוצת המשתנים.bound()הקשורים בנוסחא

משתנה יכול להופיע גם קשור וגם חופשי:באותה נוסחא

(R2,2(v0,v1)/\v1R2,0(v0,v1)).v1אין קשר בין שני המופעים השונים של

הופעה חוזרת ונשנית של משתנה אין קשר בין המופעים קשור:

v1(R(v0,v1)/\ v2(R(v1,v2)/\ v1(R(v2,v1)/\v2(R(v1,v2)/\

R(v2,v3)))))-נניח שR לא כתבנו את האינדקסים(

שיש צמתים בגרףהפעם...( היא רלציה מעל ביניהם קשת.

v0 v3

מערכת הוכחה ללוגיקה מסדר ראשון

פרופסור דורון פלד

אוניברסיטת בר אילן

מערכת הוכחה של לוגיקה מסדר ראשון

נחזור למערכת הלוגיקה שלנו שבה(F( הינו קיצור עבור¬. :קיצור נוסף

vi¬vi¬.

סימון

φ)x( או יותר פעמים המשתנה 0 היא נוסחא שבה term הינו ה)φ)t אזי term הוא t. אם xהחופשי

xהמתקבל על ידי החלפת כל המקומות שבהם .φמופיע חופשי ב-

:)אם קל להוכיח )באינדוקציה מבניתt אינו מכיל MT(t,P,z)=MT(x,P,Z)אז אם )φ)x משתנה הקשור ב

אז גם M(φ(x),P,z)=M(φ(t),P,z).

הוכחה וגרירה לוגית

|--. להוכיח את אפשר מההנחות

|==

trueלכל מבנה ותחת כל השמה הנותנים ערך אמת . ל- true ניתן ערך אמת לכל הנוסחאות ב-

אקסיומות

1. (())

2. ((())(()()))

3. (((F)F))

4. (v()(v))

. אינו חופשי ב-vכאשר 5. v)v()t(

. אשר מופיע קשור ב--tכאשר אין משתנה ב

מדוע ההגבלה על האקסיומה הרביעית?

1. (v()(v)) אינו חופשי ב-vכאשר

ניקח את המשפט הבא:v )R)v(R)v(()R)v(v R)v((

הינו זוגי.v פרושו ש-)R)vנניח ש אם כשמספר זוגי אז הוא זוגי )תמיד אז המשפט אומר:

זוגי, אז כל המספרים הם זוגיים...vנכון(, אז כש-

מדוע ההגבלה על האקסיומה החמישית?

(v )v()t()

אשר מופיע קשור ב--tכאשר אין משתנה ב

ניקח את המשפט )האומר: יש לפחות שני ערכים שונים(

)v w )v=wF) )w )w=w(F))

)w )v=wF והוא קשור ב-tמיצג את wכאן

אקסיומות נוספות עבור שוויון

כללי הוכחה

MP )Modus Ponens(

GEN )Generalization()v(x )x(

אינו מופיע חופשי באף אחת מההנחות vכאשר

?GENמדוע ההגבלה על

v=0ההנחה:

v v=0 ללא ההגבלה נותן GENשימוש ב-

הוכחה

כל שורה יכולה להיות:הנחה מ-•אקסיומה• מופעל על תוצאה של GEN או MPכלל הוכחה •

שורות קודמות.

דוגמא

{vw )v,w(} |- wv )v,w( vw )v,w( Assumption vw )v,w( w )v,w( A5: )v)v()t(( w )v,w( MP )1+2( w )v,w( )v,w( A5 )v,w( MP )3+4( v )v,w( GEN )5( w v )v,w( GEN )6(

סימטריה דוגמא:

v=w |- w=v

1. v=w Assumption

2. v=w)v=vw=v( A7 φ)v,w( is w=v

3. )v=vw=v( MP )1+2(

4. v v=v A6

5. v v=v v=v A5

6. v=v MP )4+5(

7. w=v MP )6+3( A5 v)v()t( A6 v v=vA7 )v=w( )φ)v,v(φ)v,w((

טרנזיטיביות דוגמא:

{u=v, v=w} |- u=w

... use previous proof … u=v |- v=u

1. v=u … previous proof…

2. )v=u)v=wu=w(( A7, A)v,u(=u=w

3. (v=wu=w) MP )1+2(

4. v=w Assumption

5. u=w MP )3+4(

A7 v=u )φ)v,v(φ)v,u(( בחלוף שמות

משפט הדדוקציה

|-)( If and only if {} |-

מתקיים גם כאן )הוכחה דומה לתחשיב הפסוקים(

Completeness and Expressiveness

תזכורת למערכת ההוכחה של אקסיומות לוגיקה מסדר ראשון:

1. ))((2. )))(())()(((3. )))F(F((4. )v)()v((

v אינו חופשי ב- כאשר

5. v(v)(t). אשר מופיע קשור ב--tכאשר אין משתנה ב

אקסיומות נוספות עבור שוויון. נחזק אותן עבור הוכחה יותר

קלה...

6 t t=t7 (t1=t2) ((t1) (t2))

מתקבלות מנוסחא משותפת(t1)ו- (t2)כאשר (v)על ידי החלפת )חלק מ(המקומות החופשיים

, בהתאמהt2 או t1ב v של לא נקשר לכמת t2 או t1כאשר אף משתנה ב

. ב-

כללי הוכחה MP (Modus Ponens)

GEN (Generalization)(v)x (x)

אינו מופיע חופשי באף אחת מההנחות vכאשר

Goal: we want to prove Our first order logic proof system is sound

and complete. That is: |-- if and only if |==

Soundness: |-- implies |== Check that the axioms are tautologies.Check that the proof rules preserves truth.Then, by induction on length of proof any model and assignment that satisfy , satisfies any line in a proof, in particult the last one .

Consistency: a syntactic definition, related to the proof system.

A set of formulas is consistent if there is no formula such that |-- and |--(F).

Equivalent definition: |-/-F. Equivalently: is inconsistent if for

each , |--.

Lemma |-- iff {(F)} is inconsistent. Proof: if {(F)} is inconsistent

then {(F)} |--. Also, {} |-- .(why?) Therefore, by “proof by cases”, |--.Conversely, if |-- then from {(F)} we can prove F (using MP), thus {(F)} is inconsistent.

Consequence: |-/- iff {(F)} is consistent.

More connections

If is consistent then either {(F)} or {} is consistent.Proof: if both are inconsistent, then we can prove from {(F)} and from {}. Hence, we can prove using “proof by cases” from . Contradiction.

is consistent iff every subset of it is consistent.

More connections

|== iff {(F)} is unsatisfiable(why?)

If is satifiable then either {(F)} or {} is satisfiable.

is consistent is satisfiable.

Easy direction: If is inconsistent, given the soundness of the proof system, its is unsatisfiable. (why?)

Converseley: From consistent we form maximal consisten as follows (hard proof).

is consistent is satisfiable

.נראה את המקרה של מספר נוסחאות בר מניה נסדר את כל הנוסחאות לפי סדר מסויים )אלפבתי, כמו

בספר טלפונים( 0, 1, 2.… ,

נבנה סדרה הולכת וגדלה של קבוצות נוסחאות=0 12.…:כדלקמן

i { i = i+1 קונסיסטנטית אזי {{i i אם { .i = i+1אחרת

נגדיר*=0 12.… * היא קונסיסטנטית. כי אם אפשר להוכיח ממנה כל

, ולכן אפשר להוכיח את זה גם Fדבר, אפשר להוכיח גם מתת קבוצה סופית שלה, בסתירה לבניה.

*תכונות של

עבור נוסחא כלשהי לא יתכן שגם , וגם ( F ) .* שניהם ב-נמצאיםאחרת, באיזה שלב, שתי הנוסחאות היו הוכחה:

נמצאות, והיינו מקבלים קבוצה לא קונסיסטנטית... עבור נוסחא כלשהי או ,או ( F )ב-נמצאים .*

. * נמצאים ב אינם i (F=)ו- =k הוכחה: נניח כי ומכאן לפי F --|{ k } וגם F --|{(F) i }אזי

|--F max(i,k)"הוכחה לפי מקרים" ומונוטוניות נובע כי בסתירה לבניה.

-כלומר, כל נוסחא או השלילה שלה נמצאים ב* אבל .* נמצא ב אז --| לא שניהם. לכן גם: אם

*תכונות נוספות של

Fאינה נמצאת ב * () -נמצא ב * אם ורק אם ( או (F

.*נמצאים ב-n נניח כי()* -נמצא ב אם .( וגם (F אינם

אבל אז .* נמצאים ב- וגם F) אזי )* נמצאים ב-מתקיים

}, (), (F)--|{ F ..סתירהnאם נמצאת ב * אזי גם () נמצאת ב *.

.MP( ו-1A ()) הוכחה:שימוש ב-nאם )F) נמצאת ב * אזי גם () נמצאת ב *.

* |-- ()הוכחה: נראה ש כהנחה נוספת, יחד עם שימוש בדדוקציה מעביר את

)F).ניתן להוכיח כל דבר

Problem If we have in * a formula x (x ), we want to have

(t )* for some term t. In fact x (x ) cannot appear in *.

Instead we will have (x ((x ) F)F)

Then * is closed under withnesses. This may not hold. So we’ll add for each such formula a new variable y

and also add (y). [This may extend the set of variables!]We obtain 1 and now perform the * closure on it again to obtain 1

* We obtain like that now 2

* 3* ...

We take #= i*

What we proved before holds also for #

Show that is # consistent.

Suppose, by contradiction that when we add (y) to the current set P we obtain an inconsistent set. Thus, P{(y)} |-- F.

From deduction we obtain P |--)(y )F) From GEN we obtain P |-- y (y)F,

which is in contradiction to (x ((x ) F)F), which is already in the set of formulas.

We now have “closed under withnesses”

x (x ) =(x ((x ) F)F) is in # iff there is also there some t such that (t ).

Left to right direction, from construction, by adding the new varaible.

Right to left direction:Suppose that we have (t )#. Assume for the contradiction that the negation, x ((x ) F) is # . Then using A5 we havex ((x ) F) ((t) F) and using MP we have ((t) F), which cannot be consistent with (t )#.

מכאן...

קבוצת הנוסחאות# מתנהגת כסמנטיקה של הנוסחאות תחת הצבת אמת.

הערך שקבועc מקבל הוא הסימן c.הערך שמשתנהv מקבל הוא הסימן v. באינדוקציה, הערך שביטויt מקבל הוא t. יחסR(t1,t2,...)מתקיים אם הנוסחא

R(t1,t2,...) -נמצאת ב #. כל הנוסחאות של -נמצאות ב # ,כמו במקרה של לוגיקת פסוקים, הטענות הקודמות מראות

באינדוקציה על מבנה הנוסחא שהצבה זאת מתנהגת כהצבה לוגית.

לכן, אם קבוצת נוסחאות הינה קונסיסטנטית, יש לה מודל)מבנה והצבה שמספקים אותה(.

Continuing... Suppose now we also have equivalence. What happens when we have t1=t2? We take as an interpretation of a

constant c all the equivalence class of all the terms t such that c=t holds. We denote this by [c] (or, [t]).

Using the axioms A6 and A7 it follows that this definition is consistent, i.e., that if t1=t2 then (t1) is in # iff (t2) is in #

Completeness follows

We want to prove that |== implies |--.Equivalently: |-/- implies |=/=.

|-/- implies that {(F)} is consistent.

Therefore, {(F)} is satisfiable.

Thus, |=/=.

Therefore:

Recall: |-- if and only if there is some finite 0 such that 0|-- (why?)

Thus: |== if and only if there is some finite 0 such that 0|== (why?)

This is called “Compactness theorem”.

Therefore:

Alternatively: is satisfiable iff every finite subset of it is satisfiable: is satisfiable iff is consistent iff |-/-F iff for every finite subset 0 of , 0|-/-F iff for every finite subset 0 of , 0|=/=F iff every finite subset of is satisfiable.

We can express some classes of structures (why not

sets?)

1. xR(x,x)2. xy(R(x,y)R(y,x))3. xyz ((R(x,y)/\R(y,z))R(x,z))We can write this using one formula!This defines the structures with R

being an equivalence relation!

Provability Suppose we have a class of structures C and we

want to prove using our proof system theorems of this class.

Suppose we can write a set of formulas such that a structure S is in that class iff S satisfies all the formulas in (with having no free variables).

Then every property of the structures in C satisfies that |==. (also, every property that satisfies |== is a property of C).

Proof: every structure that satisfies all the formulas in is in C and therefore satisfies .

Since we have completeness, |--, thus having allows us to prove .

A class of structures with infinite set of elements

Let i be a sentence that says that we have at least i elements:2 = xy(x=y), 3 = xyz (((x=y)/\(y=z))/\(x=z))…etc.

Call these collection of sentences .

Some inexpressiveness of first order logic We want to say that we have a finite number

of elements in our domain. Suppose (for the contradiction) that we

express exactly that using . Now, take and any finite subset of . It is

satisfiable (by a structure with at least as many element as the highest index in the subset.

Thus, every subset of is also satisfiable. By compactness, is also satisfiable – but it

has an infinite model!!! Contradiction.

Having an algorithm for doing the proof?

If |== then by completeness |--. We can enumerate all the possible

proofs from . Say, each time to the i th step. Given enough memeory and time, if there is a proof, it would come out(recursive enumerable).

On the other hand, one can write a set of formulas describing the behavior of a model equivalent to Turing machines, and a formula describing termination. Therefore, proving |-- is not decidable.

The big picture For some classes of structures C we can find a set of

first order formulas that are satisfied exactly by structures in C.

For some other structures C, there cannot be such a set of formulas (even an infinite set). Inexpressiveness of FOL.

In case we can find the set of formulas and is a property of C, then we can use our (complete) proof system to prove |--. This will imply that is a property of C.

But while the proof exists, we do not have a decision procedure that will check whether |-- and there is no limit on the amount of time and space needed for reaching such a proof when it exists.

146

Program verification: flowchart programs

(Book: chapter 7)

147

History

Verification of flowchart programs: Floyd, 1967Hoare’s logic: Hoare, 1969Linear Temporal Logic: Pnueli, Krueger, 1977Model Checking: Clarke & Emerson, 1981

148

Program Verification

Predicate (first order) logic.Partial correctness, Total correctnessFlowchart programsInvariants, annotated programsWell founded ordering (for

termination)Hoare’s logic

149

Predicate (first order logic)

Variables, functions, predicates

Terms

Formulas (assertions)

150

Signature

Variables: v1, x, y18Each variable represents a value of some given

domain (int, real, string, …).Function symbols: f(_,_), g2(_), h.)_,_,_(

Each function has an arity (number of paramenters), a domain for each parameter,

and a range.f:int*int->int (e.g., addition), g:real->real (e.g.,

square root)A constant is a predicate with arity 0.

Relation symbols: R(_,_), Q.)_(Each relation has an arity, and a domain for each

parameter.R : real*real (e.g., greater than).

Q : int (e.g., is a prime).

151

Terms

Terms are objects that have values.Each variable is a term.Applying a function with arity n to n

terms results in a new term.

Examples: v1, 5.0, f(v1,5.0), g2(f(v1,5.0))

More familiar notation: sqr(v1+5.0)

152

Formulas

Applying predicates to terms results in a formula.

R(v1,5.0), Q(x)More familiar notation: v1>5.0

One can combine formulas with the boolean operators (and, or, not,

implies).R(v1,5.0)->Q(x)

x>1 -> x*x>xOne can apply existentail and universal

quantification to formulas.x Q(X) x1 R(x1,5.0) x y R(x,y)

153

A model, A proofs

A model gives a meaning (semantics) to a first order formula:

A relation for each relation symbol.A function for each function symbol.A value for each variable.

An important concept in first order logic is that of a proof. We assume the ability to prove that

a formula holds for a given model.Example proof rule (MP) :

154

Flowchart programs

Input variables: X=x1,x2,…,xlProgram variables: Y=y1,y2,…,ym

Output variables: Z=z1,z2,…,zn

start

haltY=f(X)

Z=h(X,Y)

155

Assignments and tests

Y=g(X,Y) t(X,Y)FT

156

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

Initial condition

Initial condition: the values for the

input variables for which the

program must work.

x1>=0 /\ x2>0

FT

157

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

The input-output claim

The relation between the values of the input and the

output variables at termination.

x1=z1*x2+z2\/

0=>z2<x2

FT

158

Partial correctness, Termination, Total correctness

Partial correctness: if the initial condition holds and the program

terminates then the input-output claim holds.

Termination: if the initial condition holds, the program terminates.

Total correctness: if the initial condition holds, the program terminates and the

input-output claim holds.

159

Subtle point:

The program ispartially correct

withrespect to

x1>=0/\x2>=0and totally correct

with respect tox1>=0/\x2>0

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

T F

160

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

Annotating a scheme

Assign an assertion for each pair of

nodes. The assertion expresses

the relation between the

variable when the program counter is

located between these nodes.

A

B

C D

E

FT

161

InvariantsInvariants are assertions that hold at each state

throughout the execution of the program.One can attach an assertion to a particular location

in the code:e.g., at(B) (B).

This is also an invariant; in other locations, at(B) does not hold hence the implication holds.

If there is an assertion attached to each location, (A), (B), (C), (D), (E), then their disjunction is

also an invariant: (A)\/(B)\/(C)\/(D)\/(E)(since location is always at one of these locations).

162

Annotating a scheme with invariants

A): x1>=0 /\ x2>=0B): x1=y1*x2+y2 /\

y2>=0C): x1=y1*x2+y2 /\

y2>=0 /\ y2>=x2D):x1=y1*x2+y2 /\

y2>=0 /\ y2<x2E):x1=z1*x2+z2\/

0=>z2<x2Notice: (A) is the initial

condition, Eis the input-output

condition.

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

A

B

C D

E

FT

A) Is the precondition of (y1,y2)=(0,x1) and B) is its postcondition

163

Preliminary:Relativizing assertions

(B) : x1= y1 * x2 + y2 /\ y2 >= 0Relativize B) w.r.t. the assignment,

obtaining B) [Y\g(X,Y)].e.(B) expressed w.r.t. variables at

A ).

(B)A =x1=0 * x2 + x1 /\ x1>=0Think about two sets of variables,

before={x, y, z, …} after={x’,y’,z’…}.

Rewrite (B) using after, and the assignment as a relation between

the set of variables. Then eliminate after by substitution .

Here: x1’=y1’ * x2’ + y2’ /\ y2’>=0 /\

x1’=x1 /\ x2’=x2 /\ y1’=0 /\ y2’=x1now eliminate x1’, x2’, y1’, y2.’

(y1,y2)=(0,x1)

A

B

A

B

(y1,y2)=(0,x1)

Y=g(X,Y)

164

Preliminary:Relativizing assertions

(y1,y2)=(0,x1)

A

B

A

B

(y1,y2)=(0,x1)

A):

(B)A

(B)

Y=g(X,Y)

Y=g(X,Y)

165

Verification conditions: assignment

A) B)A

where B)A = B)[Y\g(X,Y)]

A): x1>=0 /\ x2>=0B): x1=y1*x2+y2 /\

y2>=0

B)A=x1=0*x2+x1 /\

x1>=0

(y1,y2)=(0,x1)

A

B

A

B

(y1,y2)=(0,x1)

Y=g(X,Y)

166

(y1,y2)=(y1+1,y2-x2)

Second assignment

C): x1=y1*x2+y2 /\

y2>=0 /\ y2>=x2

B): x1=y1*x2+y2 /\

y2>=0B)C:

x1=(y1+1)*x2+y2-x2 /\ y2-x2>=0

C

B

167

(z1,z2)=(y1,y2)

Third assignment

D):x1=y1*x2+y2 /\ y2>=0 /\

y2<x2

E):x1=z1*x2+z2 /\ 0<=z2<x2

E)D:

x1=y1*x2+y2 /\ 0<=y2<x2

E

D

168

Verification conditions: tests

B) /\ t(X,Y) C)

B) /\¬t(X,Y) D)

B): x1=y1*x2+y2 /\y2>=0

C): x1=y1*x2+y2 /\ y2>=0 /\ y2>=x2D):x1=y1*x2+y2 /\

y2>=0 /\ y2<x2

y2>=x2

B

C

D

B

C

Dt(X,Y)

FT

FT

169

Verification conditions: tests

y2>=x2

B

C

D

B

C

Dt(X,Y)

FT

FT

t(X,Y)¬t(X,Y)

B)

C)

170

Partial correctness proof:An induction on length of execution

B)

B)

D)

C)

Initially, states satisfy the initial conditions.

Then, passing from one set of states to another, we preserve the invariants at the appropriate location.

We prove: starting with a state satisfying the initial conditions, if are at a point in the execution, the invariant there holds.

Not a proof of termination!

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

A

B

C D

E

A)

no

no

yes

yes

T F

171

Exercise: prove partial correctness

Initial condition:

x>=0

Input-output claim:

z=x!

start

halt

(y1,y2)=(0,1)

y1=x

(y1,y2)=(y1+1,(y1+1)*y2) z=y2

TF

172

What have we achieved?

For each statement S that appears between points X and Y we showed that if the control is

in X when (X) holds (the precondition of S) and S is executed, then (Y) (the postcondition of S)

holds.Initially, we know that (A) holds.The above two conditions can be combined into

an induction on the number of statements that were executed:

If after n steps we are at point X, then (X) holds.

173

Another example

(A) : x>=0

(F) : z^2<=x<(z+1)^2

z is the biggest numberthat is not greaterthan sqrt x.

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

174

Some insight

1+3+5(+…+2n+1(=)n+1^)2

y2 accumulates theabove sum, untilit is bigger than x.

y3 ranges over oddnumbers 1,3,5…,

y1 is n-1.

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

175

Invariants

It is usually sufficient to have one invariant for every loop (cycle in the program’s graph).

We will have(C)=y1^2<=x\/

y2=(y1+1)^2\/

y3=2*y1+1

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

176

Obtaining (B)

By backwards substitution in (C).

(C)=y1^2<=x\/

y2=(y1+1)^2\/

y3=2*y1+1

(B)=y1^2<=x\/

y2+y3=(y1+1)^2\/

y3=2*y1+1

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

177

Check assignment condition

(A)=x>=0(B)=y1^2<=x\/

y2+y3=(y1+1)^2\/

y3=2*y1+1(B) relativized is

0^2=>x\/

0+1(=0+1^)2\/

1=2*0+1

Simplified: x>=0

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

178

Obtaining (D)

By backwards substitution in(B).

(B)=y1^2<=x\/ y2+y3=(y1+1)^2\/

y3=2*y1+1

(D)=(y1+1)^2<=x\/ y2+y3+2=(y1+2)^2\/

y3+2=2*(y1+1)+1

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

179

Checking

(C)=y1^2<=x\/

y2=(y1+1)^2\/

y3=2*y1+1

(C)/\y2<=x) (D)

(D)=(y1+1)^2<=x\/

y2+y3+2=(y1+2)^2\/

y3+2=2*(y1+1)+1

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

180

y1^2<=x\/

y2=(y1+1)^2\/

y3=2*y1+1 /\y2<=x )y1+1^(2<=x\/

y2+y3+2=(y1+2)^2\/

y3+2=2*(y1+1)+1

y1^2<=x\/

y2=(y1+1)^2\/

y3=2*y1+1 /\y2<=x )y1+1^(2<=x\/

y2+y3+2=(y1+2)^2\/

y3+2=2*(y1+1)+1

y1^2<=x /\

y2=(y1+1)^2 /\

y3=2*y1+1 /\y2<=x (y1+1)^2<=x /\

y2+y3+2=(y1+2)^2 /\

y3+2=2*(y1+1)+1

181

Not finished!

Still needs to:

Calculate (E) bysubstituting backwardsfrom (F).

Check that(C)/\y2>x(E)

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

182

Exercise: prove partial correctness. Initially: x1>0/\x2>0. At termination: z1=gcd(x1,x2).

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

183

Annotation of program with invariants

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F

T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

z1=gcd(x1,x2)

x1>0 /\ x2>0

gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0

gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1y2

gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1<y2

gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1>y2

y1=gcd(x1,x2)

A

B

D

EF

G

H

184

Part 1

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F

T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

(A)= x1>0 /\ x2>0

(B)=gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0 A

B

D

EF

G

H

(B)’rel= gcd(x1,x2)=gcd(x1,x2)/\x1>0/\x2>0 (A)

(B)’rel

185

Part 2a

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F

T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

(B)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0

(D)=gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1y2 A

B

D

EF

G

H

(B)/\¬)y1=y2( (D)

186

Part 2b

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F

T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

(G)= y1=gcd(x1,x2)

A

B

D

EF

G

H

(B)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0

(B)/\)y1=y2( (G)

187

Part 3

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

(D)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1y2

(E)=gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1<y2

(F)=(gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1>y2

A

B

D

EF

G

H

(D)/\)y1>y2( (F)

(D)/\¬)y1>y2( (E)

188

Part 4

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

x1>0 /\ x2>0

(B)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0

(E)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1<y2

(F)= gcd(y1,y2)=gcd(x1,x2)/\y1>0/\y2>0/\y1>y2

A

B

D

EF

G

H

(B)’relE=gcd(y1,y2-y1)=gcd(x1,x2)/\y1>0/\y2-y1>0(B)’relF=gcd(y1-y2,y2)=gcd(x1,x2)/\y1-y2>0/\y2>0

(E) (B)’rel1 (F) (B)’rel2

189

Annotation of program with invariants

halthalt

startstart

)y1,y2(=)x1,x2()y1,y2(=)x1,x2(

z1=y1z1=y1

y1=y2F

T

y1>y2y1>y2

y2=y2-y1y2=y2-y1y1=y1-y2y1=y1-y2

TF

(H)= z1=gcd(x1,x2)

(G)= y1=gcd(x1,x2)

A

B

D

EF

G

H

(H)’rel= y1=gcd(x1,x2)

(G) (H)’rel2

190

Proving termination

191

Well-founded sets

Partially ordered set (W,<): If a<b and b<c then a<c (transitivity). If a<b then not b<a (asymmetry). Not a<a (irreflexivity).

Well-founded set (W,<): Partially ordered. No infinite decreasing chain a1>a2>a3>…

192

Examples for well founded sets Natural numbers with the bigger than

relation. Finite sets with the set inclusion relation. Strings with the substring relation. Tuples with alphabetic order:

(a1,b1)>(a2,b2) iff a1>a2 or [a1=a2 and b1>b2].

(a1,b1,c1)>(a2,b2,c2) iff a1>a2 or [a1=a2 and b1>b2] or [a1=a2 and b1=b2 and c1>c2].

193

Why does the program terminate

y2 starts as x1. Each time the loop is

executed, y2 is decremented.

y2 is natural number The loop cannot be

entered again when y2<x2.

start

halt

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

(y1,y2)=(0,x1)

A

B

D

E

falsey2>=x2

C

true

194

Proving termination

Attach a function u(N) to each point N.

Annotate the flowchart with invariants, and prove their consistency conditions.Choose a well-founded set (W,<).

Prove that (N) (u(N) in W).

195

How not to stay in a loop?

Show that u(M)>=u(N)’rel.

At least once in each loop, show that u(M)>u(N).

S

M

N

TN

M

196

How not to stay in a loop?

For stmt: (M)(u(M)>=u(N)’rel)

Relativize since we need to compare values not syntactic expressions.

For test (true side):((M)/\test)(u(M)>=u(N))

For test (false side):((M)/\

¬test)(u(M)>=u(L))

stmt

M

N

test

N

M

true

L

false

197

What did we achieve?

There are finitely many control points. The value of the function u cannot

increase. If we return to the same control point,

the value of u must decrease (its a loop!).

The value of u can decrease only a finite number of times.

198

Why does the program terminate

u(A)=x1u(B)=y2u(C)=y2u(D)=y2u(E)=z2

W: naturals : <greater than

start

halt

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

(y1,y2)=(0,x1)

A

B

D

E

falsey2>=x2

C

true

199

Recall partial correctness annotation

A): x1>=0 /\ x2>=0B): x1=y1*x2+y2 /\

y2>=0C): x1=y1*x2+y2 /\

y2>=0 /\ y2>=x2D):x1=y1*x2+y2 /\

y2>=0 /\ y2<x2E):x1=z1*x2+z2 /\ 0<=z2<x2

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

A

B

C D

E

falsetrue

200

Strengthen for termination

A): x1>=0 /\ x2>0B): x1=y1*x2+y2 /\

y2>=0/\x2>0C): x1=y1*x2+y2 /\

y2>=0/\y2>=x2/\x2>0D):x1=y1*x2+y2 /\

y2>=0 /\ y2<x2/\x2>0E):x1=z1*x2+z2 /\ 0<=z2<x2

start

halt

(y1,y2)=(0,x1)

y2>=x2

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

A

B

C D

E

falsetrue

201

Strengthen for termination

A): x1>=0 /\ x2>0 u(A)>=0B): x1=y1*x2+y2 /\ y2>=0/\

x2>0u(B)>=0C): x1=y1*x2+y2 /\y2>=0

/\y2>=x2/\x2>0u(c)>=0D):x1=y1*x2+y2 /\ y2>=0 /\

y2<x2/\x2>0u(D)>=0E):x1=z1*x2+z2 /\ 0<=z2<x2u(E)>=0This proves that u(M) is natural for

each point M.

u(A)=x1u(B)=y2u(C)=y2u(D)=y2u(E)=z2

202

We shall show:u(A)=x1u(B)=y2u(C)=y2u(D)=y2u(E)=z2A)u(A)>=u(B)’relB)/\

y2>=x2u(B)>=u(C)

C)u(C)>u(B)’relB)/\

y2<x2u(B)>=u(D)

D)u(D)>=u(E)’rel

start

halt

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

(y1,y2)=(0,x1)

A

B

D

E

falsey2>=x2

C

true

203

Proving decrement

C): x1=y1*x2+y2 /\ y2>=0 /\ y2>=x2/\x2>0

u(C)=y2u(B)=y2u(B)’rel=y2-x2

C) y2>y2-x2(notice that C) x2>0)

start

halt

(y1,y2)=(y1+1,y2-x2) (z1,z2)=(y1,y2)

(y1,y2)=(0,x1)

A

B

D

E

falsey2>=x2

C

true

204

Integer square prog.

(C)=y1^2<=x /\ y2=(y1+1)^2 /\ y3=2*y1+1

(B)=y1^2<=x /\ y2+y3=(y1+1)^2

\/ y3=2*y1+1

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

205

u(A)=x+1u(B)=x-y2+1u(C)=max(0,x-y2+1)u(D)=x-y2+1u(E)=u(F)=0u(A)>=u(B)’relu(B)>u(C)’relu(C)>=u(D)u(C)>=u(E)u(D)>=u(B)’relNeed some invariants,i.e., y2<=x/\y3>0at points B and D,and y3>0 at point C.

start

(y1,y2,y3)=(0,0,1)

A

halt

y2>x

(y1,y3)=(y1+1,y3+2) z=y1

B

C

D

F

truefalse

E

y2=y2+y3

Modal Logicsלוגיקות מודליות

Lectures of Doron PeledBar Ilan University

לוגיקות מודליות

עד כה דנו בלוגיקה סטטית: תכונה התקיימהאו לא התקיימה.

נרצה לדון בלוגיקות דינמיות: קיום התכונהיכול להשתנות, למשל בזמן.

:עבור נכונות שימוש נרחב ללוגיקות כאלו בבינה Multiagent systemsשל תכניות,

מלכותית, בכלכלה וכולי.

דוגמאות

:ראש הממשלה הוא כעת לוגיקה של זמן זה לא היה נכון, ויהיה בעבר, בנימין נתניהו

שבו זה לא יהיה נכון.עתידגם לוגיקה של מקום: בבאר שבע חם ויבש, אבל

באלסקה קר ורטוב.( לוגיקה של ידעknowledge:) רובוט A

45המשחק כדורגל יודע שהכדור נמצא ב אינו יודע איפה Bמעלות ימינה, רובוט

הכדור )לא רואה אותו(.

שימושים

.הוכחת נכונות של מערכות חומרה ותכנהלמערכות כאלו יש התנהגות המשנה את

אחר כך x=1המצב שלהם בזמן. בתחילה רק עולה, אחר כך הוא מגיע xהערך של

ואחר כך יורד.100לערך הוכחת הנכונות תשתמש בטענות לוגיות המאפשרות לבטא את השינוי של המצב

בזמן.

שימושים נוספים

לוגיקות של ידע

העובדה שידע מסויים נתון או אינו נתון במערכת יכול לסייע בהבנת ותכנון המערכת. רובוטים למשל, יכולים "לדעת"

או לא "לדעת" נתונים מסוימים. במיוחד אם אותם נתונים היו או לא היו ברי הסקה מהנתונים שקיבלו )דרך

חיישנים שונים, או כתנאי התחלה להפעלתם(.

רובוטים בעלי מידע על הידע של רובוטים אחרים יכולים לנצל זאת )למשל כאשר הם משחקים משחק מסויים

בתחרות ומנצלים חוסר ידע מסויים(.

עולמות שונים לוגיקה מודלית:

p,q

p

יש לנו עולמות שונים, בכל עולם מתקימות תכונות שונות )פסוקיות או מסדר ראשון(.

יכולים ליצג קיום של מוצר מסוים.p, qלמשל,

במקום לציין את השלילה של תכונה,

פשוט לא נציין אותה. כלומר הצומת הריקה

תקיים ¬p, ¬q

עולמות שונים לוגיקה מודלית:

p,q

p

יש גם קשר בין העולמות שיסומן על ידי קשתות.

הקשר יכול לציין דברים רבים:כל צומת מציינת מצב )למשל של משתני תכנית מחשב( וקשת מציינת מעבר זמן בין מצב

למצב.

קשת בין צומת אחת לשניה יכולה לציין שהרובוט המתואר על ידי הצומת הראשונה מכיר את כל האינפורמציה הרשומה על ידי הרובוט המתואר על ידי המצב השני.

לוגיקה מודליתיכולה לתאר את התכונות המאפינות את המצבים השונים

והקשר ביניהם.

תחביר:

::= p | ¬ | (/\) | (\/) | [] | <>.P הינו משתנה פסוקי מאוסף משתנים פסוקיים pכאשר

((=)\/)אפשר להגדיר קשרים חדשים, למשל

דוגמאות:

(p[]<>p)((p/\<>q)[]<>(p/\[]q))

סמנטיקה, לא פורמלי.)נוסחא מתפרשת מעל עולם )צומת ,לנוסחאות שהן נוסחאות אטומיות )פסוקיות

מסדר ראשון(, יש את הפרוש הרגיל מעל העולם. יש את הפרוש ¬/\, \/, לקשרים הלוגיים הרגילים

הרגיל. מסמן שהתכונה נכונה לכל העולמות ][הקשר

הישיגים מהעולם הנוכחי על ידי קשת. מסמן שהתכונה נכונה לפחות לעולם <>הקשר

אחד הישיג מהעולם הנוכחים על ידי קשת.

מה מתקיים בעולם של הצומת הימנית תחתונה?

p,q

p

p, ¬q, p/\¬q, p\/q ,…

<>p, []q

והצומת השמאלית התחתונה?

¬ p, ¬ q, ¬(p\/q), []p, <>[]q.

סמנטיקה, פורמלי

Kripkeנגדיר מבנה (W, R, L, P)P – a set of propositionsW – a set of “states” (or “worlds”).R – a relation RWxW “accessibility

relation”

L: W2P Assigns the set of propositions that hold in each state.

עולמות שונים לוגיקה מודלית:

s1

p,q

s2

p

s3

P={p,q}

W={s1,s2,s3}

R={(s1,s1),(s1,s2),(s2,s1), (s3,s1),(s3,s2)}

L(s1)={p,q}, L(s2)={p},L(s3)=

כעת אפשר להגדיר את המשמעות בצורה רקורסיבית. המשמעות מוגדרת לכל מצב

)עולם(

x|==p iff pL(x) x|== iff x|=/= x|==/\ iff x|== and x|== x|==\/ iff x|== or x|== x|==[] iff for each yW such that

R(x,y), y|== x|==<> iff there exists yW such

that R(x,y), y|==

אם בכל מצב ובכל שקולה )=( ל- נוסחא מתקיימת מתקיימת אם ורק אם עולם

[]=<> <>=[] [](p/\q)=([]p/\[]q) <>(p\/q)=(<>p\/<>q)

אבלo [](p\/q)([]p\/[]q)o <>(p/\q)(<>p/\<>q)

למה? האם הגרירה בכיוון מסויים מתקיימת?

אי שוויונות שלא מתקיימים

[](p\/q)([]p\/[]q) כן מתקיים אבל

<>(p/\q)(<>p/\<>q) כן מתקיים אבל

q

p

עבור נוסחה מודלית ברת סיפוק(satisfiable) אם מתקיימת עבור מצב

מסויים במודל מסויים. אינה ברת סיפוק(unsatisfiable) אינה מתקיימת עבור

כל מצב בכל מודל. נכונה\מתקיימת במודל, אם מתקיימת עבור כל המצבים

במודל.Valid )אם מתקיימת בכל מודל )בכל מצב ==|Valid במשפחה של מודלים המקיימים הגבלה מסויימת

בהנחה |==)כפי שנראה בהמשך(. גם כאן נסמן שמשפחת המודלים ידועה.

אקסיומות וכללי היסק

כל האקסיומות וMP.מתורת הפסוקים עבור כל המודלים(valid):

K []()([][])

GENכלל היסק: []

עבור משפחות מודליםT [] Reflexive: w,(w,w)R

D []<> Serial: wW w’W (w,w’)R

4 [][][] Transitive: w,w’,w’’W(w,w’)R/\ (w’,w’’)R (w,w’’)R

5 <>[]<> Euclidean: w,w’,w’’W(w,w’)R/\ (w,w’’)R (w’,w’’)R

מבנה היררכי של משפחות. חץ פרושו שההיררכיה הראשונה בעלת יותר מבנים ופחות

מההיררכיה השניהvalidתכונות בה

K

K4 K5 KD KT=KDT

K45 KD5 KD4

KD45

KT4=KTD4

KT5=KT45=KDT5=KDT45

מודלים לינארים

טרנזיטיבי)כל זוג מצבים מסודר )סדר לינאריאין מעגלים

מתאים לתאור ביצוע של תכנית )שינויממצב למצב(.

X=0 X=0X=2X=1X=1

חידה

שלשה ילדים משחקים בחוץ. חלק מתלכלכים על מצחם בבוץ, אבל לא יודעים

זאת.עובר אב של אחד מהם ואומר:

"לפחות אחד מכם מלוכלך בבוץ על מצחו, מי יודע שמצחו מלוכלך?"

אף ילד לא עונה. הוא שואל שוב, ואף ילד לא עונה, בפעם השלישית שהוא שואל, כל הילדים עונים יחד שראשם

שלהם מלוכלך.הכיצד?

חידה

שלשה ילדים משחקים בחוץ. חלק מתלכלכים על מצחם בבוץ, אבל לא יודעים

זאת.עובר אב של אחד מהם ואומר:

"לפחות אחד מכם מלוכלך בבוץ על מצחו, מי יודע שמצחו מלוכלך?"

אף ילד לא עונה. הוא שואל שוב, ואף ילד לא עונה, בפעם השלישית שהוא שואל, כל הילדים עונים יחד שראשם

שלהם מלוכלך.הכיצד?

הנחות

הילדים לא משקרים1.

כל ילד אינו רואה את מצחו שלו2.

כל ילד חכם ויכול להסיק כל היסק לוגי 3.הגיוני ממה שהוא רואה.

לא יכול להבחין בין המקרים

אוסף העולמות האפשרייםm-muddy, n-not muddy

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

רלציות שקילות בין עולמות מסמנת אי יכולת להבדילקשתות עצמיות הקיימות כאן עבור כל הרלציות. לא ציינו:

כתום נסמן את העולם האמיתי:

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

שמשתתף אומר Kc סימון מודאלי לידע )סוכן(

c ש-יודע .מתקיים

נניחmc פרושו שמשתתף c-מלוכלך ו ¬mc פרושו אינו מלוכלך.cשמתתף

Ka(mb/\mc)

KcKa mb

Kc(ma/\Ka mb)בדוגמא שלנו, רוציםKxmx .עבור אחד המשתתפים

:סימון נוסף C-אומר ש הינו ידע משותף, כלומר, כל וכל משתתף יודע שכל משתתף יודע משתתף יודע את

וכולי.את

משמש בדומה לכמת ][ בלוגיקה Kaהכמת מודלית

ההבדל הינו שיש לנו מספר רלציות ביןצמתים ולא רק רלציה אחת. לכן, לכל רלציה

יש את הכמת שלה. כל רלציהRa ,בין צמתים הינה רצלית שקילות

כלומר רפלקסיבית, טרנזיטיבית וסימטרית.אין את הדואלי <> ל-][. אבל אפשר לכתוב

¬Ka¬

סמנטיקה

s|==p iff ps s|==/\ iff s|== and s|== s|==¬ iff s|=/= s|==Ka iff r (s,r) Ra, r|== s|==C iff Ka and KaKb, KcKa etc.

תכונה

Kx(/\) Kx/\Kx

אבל לא מתקיים Kx(\/) Kx\/Kx

בעולם האמיתי?cמה יודע

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

אינו יכול להבחין בין המצבים השקולים cמשתתף Kc(ma/\mb) לכן: Rcלפי

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

Ka(mb/\mc)בעולמות אלו?בעולמות הירוקים:a ומה יודע

Ka(mb/\¬mc) : בעולמות הכחוליםKcKa (mb) לכן:

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

ידע על קשת משותף לשני הצמתים המחוברים

אליו

KcKaKb ?

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

Kb)¬ma/\¬mc(

Kb)ma/\¬mc(

Kb)¬ma/\mc(

Kb)ma/\mc(

KcKaKbtrue

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

Kb)na/\¬nc(

Kb)ma/\¬nc(

Kb)¬na/\mc(

Kb)ma/\mc(

KaKbmc

KaKb¬mc

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:n, b:n, c:n

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rc

Rb

Rb

Rb

Rb

Ra

Ra

Ra

Ra

Rc

Rc

Kb)¬ma/\¬mc(

Kb)ma/\¬mc(

Kb)¬ma/\mc(

Kb)ma/\mc(

KaKbmc

KaKb¬mc

אחרי הצהרת האבמה שהאב אמר הינו ידע משותף )כי כולם שמעו את

זה יחד ונכחו שהאחרים שמעו וכולי(.

אחרי הצהרת האב בעולם האמיתי כולם יודעים גם

C(ma\/mb\/mc)

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rb

Rb

Rb

Ra

Ra

Ra

Rc

Rc

Kb)¬ma/\mb/\¬mc(

Kb)ma/\¬mc(

Kb)¬ma/\mc(

Kb)ma/\mc(

KaKbmc

KaKb¬mc

Ka)ma/\¬mb/\¬nc(

Ka)¬ma/\¬mb/\mc(

אבל אף אחד לא מודיע שהוא יודע שיש

לו בוץ על המצח

בפעם השניה שהאב שואל, המצבים המקווקוים אינם יכולים לתאר את המציאות ולכן ירדו, עם הקשתות

המתאימות

a:m, b:m, c:m a:n, b:n, c:m

a:n, b:m, c:m

a:m, b:m, c:m

a:m, b:n, c:n a:n, b:m, c:n

a:m, b:m, c:n

Rc

Rb

Rb

Rb

Ra

Ra

Ra

Rc

Rc

Kb)¬ma/\mb/\¬mc(

Kb)ma/\¬mc(

Kb)¬ma/\mc(

Kb)ma/\mc(

KaKbmc

KaKb¬m

c

Ka)ma/\¬mb/\¬mc(

Ka)¬ma/\¬mb/\mc(

מכיון שאף אחד לא הודיע שמצחו מלוכלך, בפעם השניה שהאב שואל, המצב הוא הבא:

a:m, b:m, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:m, b:m, c:n

Rc

Rb

Ra

Ka)ma/\¬mb/\mc(/\Kc)ma/\¬mb/\mc(

Kb)¬ma/\mb/\mc(/\Kc)¬ma/\mb/\mc(

Ka)ma/\mb/\¬mc(/\Kb)ma/\mb/\¬mc(

מכיון שגם בפעם השניה אף אחד לא ידע שמצחו מלוכלך, בפעם השלישית ימחקו העולמות המקווקוים

a:m, b:m, c:m

a:n, b:m, c:m

a:m, b:n, c:m

a:m, b:m, c:n

Rc

Rb

Ra

Ka)ma/\¬mb/\mc(/\Kc)ma/\¬mb/\mc(

Kb)¬ma/\mb/\mc(/\Kc)¬ma/\mb/\mc(

Ka)ma/\mb/\¬mc(/\Kb)ma/\mb/\¬mc(

מכיון שגם בפעם השניה אף אחד לא ידע שמצחו מלוכלך, בפעם השלישית ימחקו העולמות המקווקוים

a:m, b:m, c:m

ועכשיו שלשת הילדים יודעים שמצחם מלוכלך

לוגיקה של ידע יורשת את תכונותיה מהלוגיקהKT45

אם אני יודע על גרירה, ואני יודע שצידה הימני מתקיים, אני יודע גם שצידה השמאלי מתקיים )או, בקיצור, אני יודע

להסיק!(

Ka() (Ka Ka)כל מה שאני יודע מתקיים גם בעולם שלי

Kaאני יודע מה אני יודע

Ka KaKaאני יודע מה אני לא יודע

¬Ka Ka¬Ka

עוד חידה כובעים אדומים.3 כובעים לבנים ו-2יש בערמה

שלשה נתינים באים אל המלך.

המלך שם על ראש כל אחד כובע ושואל אותם לפי הסדר אם הם יודעים מה הצבע על

ראשם )אין להם מראה והם לא מגלים אחד לשני מה על הראש(.

הראשון אומר "איני יודע".

השני אומר "איני יודע".

השלישי יודע, מה הצבע של כובעו?

נסמן

R2לאיש השני כובע אדום – W1לאיש הראשון כובע לבן –

וכולי.

.W2הינו שקול ל- R2¬ למעשה

RRR

RWR RRW

RWWWWR WRW

WRR

R3

R3

R2

R2

R1

R1 R1

R3R2

גרף העולמות האפשריים עם רלציות השקילויות

RRR

RWR RRW

RWWWWR WRW

WRR

R3

R3

R2

R2

R1

R1 R1

R3R2

אחרי שהראשון אמר שהוא לא יודע איזה כובע C¬R1על ראשו,

RRR

RWR RRW

WWR WRW

WRR

R3R2R1

R1 R1

R3R2

אחרי שהראשון אמר שהוא לא יודע איזה כובע C¬R1על ראשו,

RRR

RWR RRW

WWR WRW

WRR

R3R2R1

R1 R1

R3R2

עכשיו נשאל השני והוא אינו יודע. זה שולל את המצבים המקווקוים

RRR

RWR

WWR

WRR

R2R1

R1

R2

כעת נשאל השלישי, אבל בכל עולם שבו הוא .R3יכול להיות מתקיים

בתחילה ובנוסחאות:={C(R1\/R2\/R3),C(R1K2R1),

C(R1K3R1),

C(R2K1R2),

C(R2K3R2),

C(R3K1R3),

C(R3K2R3),

C(¬R1K2¬R1),

C(¬R1K3¬R1),

C(¬R2K1¬R2),

C(¬R2K3¬R2),

C(¬R3K1¬R3),

C(¬R3K2¬R3){

RRR

RWR RRW

WWR WRW

WRR

R3R2R1

R1 R1

R3R2

אחרי שהראשון אמר שהוא לא יודע איזה כובע C¬R1על ראשו,

{C)¬K1R1/\¬K1¬R1(}|-- C)R2\/R3(

RRR

RWR

WWR

WRR

R2R1

R1

R2

אחרי שהשני לא יודע איזה כובע על ראשו

{C)R2\/R3(, C)¬K2R2/\¬K2¬R2(}|--K3R3

Temporal logic

Dynamic, speaks about several “worlds” and the relation between them.

Our “worlds” are the states in an execution.

There is a linear relation between them, each two sequences in our execution are ordered.

Interpretation: over an execution, later over all executions.

מודלים לינאריםטרנזיטיבי)כל זוג מצבים מסודר )סדר לינאריאין מעגלים

.)מתאים לתאור ביצוע של תכנית )שינוי ממצב למצב לכל תכנית מתאימים אוסף )קבוצת( כל הביצועים

שלה. תכונה מתקיימת בתכנית אם היא מתקיימת בכל

הביצועים.

X=0 X=0X=2X=1X=1

LTL: Syntax

::= () | ¬ | /\ \/ U |O | p

“box”, “always”, “forever”“diamond”, “eventually”, “sometimes”

O “nexttime”

U“until”Propositions p, q, r, … Each represents some

state property (x>y+1, z=t, at_CR, etc.)

Semantics over suffixes of execution

O

U

Can discard some operators

Instead of <>p, write true U p. Instead of []p, we can write

¬(<>¬p),or ¬(true U ¬p).Because []p=¬¬[]p.¬[]p means it is not true that p holds forever, or at some point ¬p holds or <>¬p.

Combinations

[]<>p “p will happen infinitely often”

<>[]p “p will happen from some point forever”.

([]<>p) ([]<>q) “If p happens infinitely often, then q also happens infinitely often”.

Some relations: [](/\)=([])/\([]) But <>(/\)(<>)/\(<>)

<>(\/)=(<>)\/(<>) But [](\/)([])\/([])

What about

([]<>)/\([]<>)=[]<>(/\)?

([]<>)\/([]<>)=[]<>(\/)?

(<>[])/\(<>[])=<>[](/\)?

(<>[])\/(<>[])=<>[](\/)?

No, just

Yes!!!

Yes!!!

No, just

Formal semantic definition Let be a sequence s0 s1 s2 … Let i be a suffix of : si si+1 si+2 … (0 = ) i |= p, where p a proposition, if si|=p. i |= /\ if i |= and i |= . i |= \/ if i |= or i |= . i |= ¬ if it is not the case that i |= . i |= <> if for some ji, j |= . i |= [] if for each ji, j |= . i |= U if for some ji, j|=.

and for each ik<j, k |=.

Then we interpret:

For a state:s|=p as in propositional logic.

For an execution:|= is interpreted over a sequence, as in previous slide.

For a system/program:P|=holds if |= for every sequence of P.

Spring Example

s1 s3s2

pull

release

releaseextended

malfunction

extended

r0 = s1 s2 s1 s2 s1 s2 s1 …

r1 = s1 s2 s3 s3 s3 s3 s3 …

r2 = s1 s2 s1 s2 s3 s3 s3 …

LTL satisfaction by a single sequence

malfunction

s1 s3s2pull

release

releaseextende

dextended

r2 = s1 s2 s1 s2 s3 s3 s3 …

r2 |= extended ??

r2 |= O extended ??

r2 |= O O extended ??

r2 |= <> extended ??

r2 |= [] extended ??

r2 |= <>[] extended ??

r2 |= ¬ <>[] extended ??

r2 |= (¬extended) U malfunction ??

r2 |= [](¬extended->O extended) ??

LTL satisfaction by a system

malfunction

s1 s3s2pull

release

releaseextende

dextended

P |= extended ??

P |= O extended ??

P |= O O extended ??

P |= <> extended ??

P|= [] extended ??

P |= <>[] extended ??

P |= ¬ <>[] extended ??

P |= (¬extended) U malfunction ??

P |= [](¬extended->O extended) ??

More specifications

[] (PC0=NC0 <> PC0=CR0) [] (PC0=NC0 U Turn=0) Try at home:

- The processes alternate in entering their critical sections.- Each process enters its critical section infinitely often.

Proof system¬<>p<-->[]¬p

[](pq)([]p[]q) []p(p/\O[]p) O¬p<-->¬Op [](pOp)(p[]p) (pUq)<-->(q\/(p/\O(pUq))) (pUq)<>q

+ propositional logic axiomatization.

+ proof rule: _p_ []p

Traffic light example

Green Yellow Red Always has exactly one light:

[](¬(gr/\ye)/\¬(ye/\re)/\¬(re/\gr)/\(gr\/ye\/re))

Correct change of color?

[]((grU ye)\/(yeU re)\/(reU gr))

Another kind of traffic light

GreenYellowRedYellowFirst attempt:

[](((gr\/re) U ye)\/(ye U (gr\/re)))

Correct specification:[]( (gr(gr U (ye /\ ( ye U re ))))

/\(re(re U (ye /\ ( ye U gr ))))

/\(ye(ye U (gr \/ re))))

Needed only when wecan start with yellow

L0:While True do NC0:wait(Turn=0); CR0:Turn=1endwhile ||L1:While True do NC1:wait(Turn=1); CR1:Turn=0endwhile

T0:PC0=L0PC0:=NC0T1:PC0=NC0/\Turn=0 PC0:=CR0T2:PC0=CR0 (PC0,Turn):=(L0,1)T3:PC1=L1PC1=NC1T4:PC1=NC1/\Turn=1 PC1:=CR1T5:PC1=CR1 (PC1,Turn):=(L1,0)

Initially: PC0=L0/\PC1=L1

Example: The program

Is this the only reasonable way to model this program?

The state graph:Successor relation between reachable states.

Turn=0L0,L1

Turn=0L0,NC1

Turn=0NC0,L1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=0CR0,L1

Turn=1L0,CR1

Turn=1NC0,CR1

Turn=1L0,NC1

Turn=1NC0,NC1

Turn=1NC0,L1

Turn=1L0,L1T0 T0T3 T3

T1 T4T3

T0 T3

T0

T0 T4T1 T3

T2

T2

T5

T5

Always ¬(PC0=CR0/\PC1=CR1)(Mutual exclusion)

Turn=0L0,L1

Turn=0L0,NC1

Turn=0NC0,L1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=0CR0,L1

Turn=1L0,CR1

Turn=1NC0,CR1

Turn=1L0,NC1

Turn=1NC0,NC1

Turn=1NC0,L1

Turn=1L0,L1

Always if Turn=0 then at some point Turn=1

Turn=0L0,L1

Turn=0L0,NC1

Turn=0NC0,L1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=0CR0,L1

Turn=1L0,CR1

Turn=1NC0,CR1

Turn=1L0,NC1

Turn=1NC0,NC1

Turn=1NC0,L1

Turn=1L0,L1

Always if Turn=0 then at some point Turn=1

Turn=0L0,L1

Turn=0L0,NC1

Turn=0NC0,L1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=0CR0,L1

Turn=1L0,CR1

Turn=1NC0,CR1

Turn=1L0,NC1

Turn=1NC0,NC1

Turn=1NC0,L1

Turn=1L0,L1

Interleaving semantics:Execute one transition at a time.

Turn=0L0,L1

Turn=0L0,NC1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=1L0,CR1

Turn=1L0,NC1

Need to check the property

for every possible interleaving!

Interleaving semantics:Execute one transition at a time.

Turn=0L0,L1

Turn=0L0,NC1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=1L0,CR1

Turn=1L0,NC1

Need to check the property

for every possible interleaving!

Interleaving semantics

Turn=0L0,L1

Turn=0L0,NC1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=1L0,CR1

Turn=1L0,NC1

Turn=0L0,L1

Turn=0L0,NC1

(][Turn=0 <>Turn=1)

Turn=0L0,L1

Turn=0L0,NC1

Turn=0NC0,L1

Turn=0CR0,NC1

Turn=0NC0,NC1

Turn=0CR0,L1

Turn=1L0,CR1

Turn=1NC0,CR1

Turn=1L0,NC1

Turn=1NC0,NC1

Turn=1NC0,L1

Turn=1L0,L1

מה ניתן לעשות עם זה? הוכחה בלוגיקה שתכונות של תכנית מתקיימות )נכונות של

תכנית(.הוכחה אלגוריתמית אוטומטית

Model Checking השיטה זיכתה את ממציאיה בפרסTuring שהוא הפרס

זכה 1996החשוב ביותר במדעי המחשב השנה )ולפני כן במדען ישראלי, אמיר פנואלי בפרס זה על הצגת הלוגיקה

הטמפורלית:"For seminal work introducing temporal logic into

computing science and for outstanding contributions to program and system verification."