slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית PowerPoint Presentation
Download Presentation
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית

Loading in 2 Seconds...

play fullscreen
1 / 45

סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית - PowerPoint PPT Presentation


  • 147 Views
  • Uploaded on

סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית. הרצאה מס 3 ינון רפופורט חלק 1 משפט בנית הנושא. הקבלה בין עצים. במערכת TA λ יש התאמה בין מבנה עץ של ההסקה Γ├ M: τ לבין העץ של M נראה דוגמא:. דוגמא. נסמן B= λ xyz.x(yz) ראינו בהרצאה הקודמת חישוב הטיפוס של B.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית' - kaemon


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית

הרצאה מס 3ינון רפופורטחלק 1 משפט בנית הנושא

slide2
הקבלה בין עצים
  • במערכת TAλ יש התאמה בין מבנה עץ של ההסקהΓ├M:τ לבין העץ של M
  • נראה דוגמא:
slide3
דוגמא
  • נסמן B=λxyz.x(yz)
  • ראינו בהרצאה הקודמת חישוב הטיפוס של B
slide4
חישוב הטיפוס של B
  • Γ={x:a→b,y:c→a z:c}
  • y:c→a ├ y:c→a z:c ├ z:c
  • ---------------------------------(-E)

X:a→b ├ x:a→b y:c→a , z:c ├ yz:a

-------------------------------------------------(-E)

Γ├ (x(yz)):b

--------------------- (-I)main

Γ-z ├ (λz.x(yz))c→b

-------------------------------(-I)main

Γ-z-y ├ (λyz.x(yz)):(c→a)→c→a

-----------------------------------------(-I)main

├ (λxyz.x(yz)):a→b)→(c→a)→c→b

slide6
השוואה בין שני הציורים
  • אנחנו רואים שקבלנו בדיוק את עץ היצירה
  • של B
slide7
משפט בנית הנושא
  • נניח Δ הסקת TAλ של הנוסחה M:τ├Γ אזי
  • 1))אם נשמיט מכל נוסחה ב Δ כל דבר פרט לנושא אז Δ יהפוך עץ של ביטויים שהוא בדיוק עץ היצירה עבור M
  • 2))אם M הוא אטום ,נניח M≡x , אזי x:τ} }=Γ ואז

Δ מכילה רק נוסחה אחת - האכסיומה x:τ├x:τ

slide8
משפט בנית הנושא(המשך)
  • (3)אם M=(PQ) אזי הצעד האחרון בΔ מוכרח להיות אפליקציה של (→E) לשתי נוסחאות מהצורה
  • Γ † P ├ P:σ→τΓ†Q├ Q:σ

עבור איזשהו σ

slide9
משפט בנית הנושא(המשך)

(4)אם M≡λx.P אזי τ הוא בהכרח ρ→σ

יותר מזה

אם xεFV(P) אזי הצעד האחרון ב Δ היה

אפליקציה מהצורה (→I)main ל Γ,x:ρ ├P:σ

ואם x \ε FV(P) אזי הצעד האחרון ב Δ היה אפליקציה מהצורה I)vac→ ) ל Γ ├ P:σ

ta 9c1
הגדרה הסקהTAλ(סעיף 9C1 בספר)
  • הגדרה(הסקה TAλ) הם עצים בעלי תויות מגדרים כדלהלן כל צמת נושא שתי תויות נוסחת TAλ ומיקום.
  • (1)הסקה אטומית היא צמת יחיד מסומן באקסיומה ומיקום ריק כך
  • x:τ ├ x:τ position
  • (2) אם Δ1Δ2 הן הסקות וצמתי התחתית שלהם מסומנות במיקום והנוסחאות הן בהתאמה
  • Γ1 ├ P:{σ→τ), Γ2 ├ Q:σ
  • וגם Γ1 U Γ2 עקיב
ta 9c11
הגדרה הסקהTAλ(סעיף 9C1 בספר)המשך
  • אזי יש הסקה חדשה הקרויה (Δ1,Δ2) נבנית על ידי כך ששמים 1 לימין כל מיקום של 1 Δ ושמים 2 לימין של כל מיקום ב 2Δ ואז בונים צמת נוסף בין 2 ההסקות ששונו כפי שרואים בשרטוט
  • Modified Δ1 modified Δ2
  • Γ1├ P:σ→τ 1 Γ2 ├Q:σ
  • ------------------------------------------------
  • Γ1 U Γ2 ├ PQ:τ
  • (3) אם Δ1 היא הסקה וצמת תחתית מסמן ב מקום והנוסחהΓ├ P:τהיא עקיבה עם x:σ, אז ההסקה החדשה נקראת (λx.Δ1)
ta 9c12
הגדרה הסקה TAλ (סעיף 9C1 בספר)
  • והיא נבנית עלידי כך שרושמים 0 בקצה השמאלי של כל תוית מיקום ב 1Δ ושמים צמת חדש בין ההסקה המתקנת כמו בשירטוט הבא
    • modified Δ1
    • Γ ├ P:τ 0
    • Γ –x ├ (λx.P):σ→τ
slide13
הוכחה של המשפט
  • באינדוקציה על |M|
  • עבור (1) (2) (3) נובע מהגדרה של הסקת מסקנות בסעיף 9C1
  • עבור (4)M≡λx.P נשתמש בהגדרות של (-I) בהרצאה

הקודמת נקבל שהצעד האחרון ב Δ היה

(→I) main Γ,x:ρ ├ P:σ

---------------- אם FV(P)xε

λx.P:ρ→σΓ├

(→I)vac Γ├ P:σ

----------- אם xε\ FV(P)

Γ├λx.P:ρ→σ

משל

slide14
הסקה של Δ אינה יחידה
  • עבור ביטוי M אם Δ ההסקה של Γ├M:τ אזי מהמשפט הקודם נובע שעץ הבניה של M קובע את עץ הבניה של Δ וגם את הביטויים בכל הצמתים של Δ אבל אין להסיק מכך שכל המרכיבים של Δ נקבעים עלי ידי זה משום שיש חופש לקבוע את הטיפוסים בצמתים לא תחתונים של Δ
2b21a
דוגמא 2B21A
  • נניח M≡(λxy.y)(λz.z) ונניח גם τ≡a→a Γ=Ф
  • להלן הסקת המסקנות
  • Y:a ├ y:a
  • ----------------- (→I)
  • ├ (λy.y):a→a z:σ ├ z:σ
  • ----------------- (→I) --------------(→I)
  • ├(λxy.y):(σ→σ)→a→a ├(λz.z):σ→σ
  • בגלל ש Γ עקיב עם x:σ→σ
  • ------------------------------------------------------(→E)
  • ├→ (λxy.y)(λz.z):a→a
    • והטיפוס σ יכול להיות כלשהוא!
slide16
הערה לדוגמא
  • אם M הוא בצורה נורמלית או ביטוי Iλ) כלומר כל תת ביטוי מהצורה λx.M ב Px מופיע חפשי לכל הפחות פעם אחת)
  • אז החופש בחירה הזה יעלם ואז Δ (ההסקה) תיקבע באופן מחלט ע"י M. נראה זאת בלמה הבאה.

.

nf normal forms
למה – יחידות ההסקה עבור nf (normal forms)
  • נניח M הוא nf- β (כלומר לא מכיל פשטי β) ונניח Δ היא הסקה TAλשל M:τ├Γ אזי
  • (1) לכל טיפוס ב Δ קיים מופע ב τ או בטיפוס ב Γ
  • (2) Δ הוא יחיד , כלומר, אם גם Δ’ היא הסקה של M:τ├Γ אז ’Δ≡Δ
slide18
הוכחה של הלמה
  • נשתמש באינדוקציה על |M|
  • עבור M≡y ו M≡λx.P זה קל משום M הוא nf- β כי אז τ הוא ρ→σ ואלה הטיפוסים ב λx.P
  • עבור M=yP1..Pn נזכור :
  • להלן למה קודמת מהספר 1B10(לא הצגה)
  • כל N שהוא nf- β ניתן להיות מבוטא באופן יחיד בצורה N=λx1x2λxm.yN1N2 Nm
  • כאשר N1 .. Nm הם nf- β,ואם N סגור אזי yε{x1,x2,x3 xm}
slide19
הוכחה של הלמה(המשך)
  • נניח M≡yP1.. Pn ו n>1
  • במקרה כזה כל הסקה Δ של M:τ├Γ תכיל את האכסיומה
  • y:(ρ1→ρ2…..→ρn)├ y:(ρ1→ρ2…..→ρn) וגם n הסקות Δ1 …. Δn שיתנו יחד Γ1 ├ P1: ρ1 , …. , Γn├ Pn: ρn
  • ואז כאשר נפעיל אפליקציות (→E) נוכל להסיק
  • {y:(ρ1→ρ2…..→ρn→τ)}UΓ1 … Γn├(yP1…Pn):τ
  • ואז Γ יהיה בהכרח {y:(:(ρ1→ρ2…..→ρn→τ)}U Γ1 … Γn ואם נזכור מהו M נקבל שיש לנו פרוק מתאים ל M
  • כל טיפוס בפיתוח (Pi או ב τ ) או בτ או ב Γ
slide20
הוכחה של הלמה(המשך)
  • כדי להוכיח את (1)
  • לפי חלק (1) של הנחת האינדוקציה כל טיפוס ב Δi מופיע ב iρ או ב iΓ ולכן ב Γ
  • כמו כן הטיפוס של y מופיע ב Γ לכן מתקיים (1)
  • כדי להוכיח את (2) הטענה למעלה מראה ש Δ’ חיב להשתמש באותם חוקים באותו מקום כמו ב Δ והטיפוס שמתאם ל y ב Δ’ נקבע עי Γ וההנחה שהטיפוסים התלויים בהקשר (ה type-context ) הם עקיבים לכן הסוגים של P1..Pn נקבעים על ידי הסוג של y .
slide21
שימו לב (תכונת של תת-הנוסחה)
  • חלק (1) מתאים למה שנקרה תכונת של תת-הנוסחה:
  • במערכת הסקה טבעית כל נוסחה בהסקה שאי אפשר לפרק הלאה מופיעה או במסקנה או בהנחה לא משוחררת. (Undischarged assumption )
  • בדוגמא 2B21A הסקת TAλ מכילה את הטיפוס σ, שאינו מופיע במסקנה או בהנחה לא משוחררת
  • הסיבה לכך היא שבM שם הוא לא בצורה נורמלית – יש שם פשט β
slide22
למת השמה ראשונה עבור הסקה
  • למה ראשונה עבור הצבה
  • נניח Γ├λ M:τ
  • וגם [y/x] Γ התוצאה של הצבת y עבור משתנה ביטוי x (term variable) ב Γ.
  • אם מתקיים אחד מהתנאים הבאים
  • (1) y ε\ Subjects(Γ)
  • (2) yו x מקבלים אותו טיפוס ב Γ
  • אזי [y/x]Γ ├ ([y/x]M):τ
slide23
הוכחת הלמה הראשונה
  • נזכר בלמה 2A11 בספר
  • Γ├M:τ (1) אםם subjects(Γ) superset of FV(M)

וגם קיימת הסקה TAλ של הנוסחה Γ † M├ M:τ

(2) ( exists Γ)(Γ├ M:τ) ↔ (exists Γ){Γ is an M context and Γ├M:τ)

M context means subject(Γ)=FV(M)

(3)עבור ביטוי סגור M ( exists Γ)(Γ├ M:τ) ↔ ├ M:τ

slide24
הוכחת למה ראשונה (המשך)
  • בשני המקרים מקיים y/x]Γ] תנאי העקיבות עבור CONTEXT
  • לכן לפי למה 2A11 קיימת הסקה
  • Γ¯├M:τ עבור איזשהיא Γ¯ subset of Γכאשר

Subjects(Γ¯)=M ואז [y/x]Γ¯ עקיב

ואז באינדוקציה על |M| ונראה ש

[y/x]Γ¯ ├ ([y/x]M):τ

הערה y יכול להיות קשור ב M. כדי לטפל במקרה ש M≡λy.P צריך להשתמש באינדוקציה פעמים ולנצל את העובדה ש |[z/y]P|=|P|

slide25
הוכחת הלמה הראשונה(המשך)
  • נזכר בלמת ההחלשה מההרצאה הקודמת
  • Γ├M:τ , Γ+ superset of Γ => Γ+ ├ M:τ
  • ואז נקבל [y/x]Γ ├ ([y/x]M):τ כנדרש
invariant
למת שמורINVARIANT) ) α
  • אם P:τΓ├ וגם P≡αQ אזי Q:τΓ├
  • הוכחה (מסתמך על 9C(
  • מספיק להוכיח עבור שנוי אחד של משתנה קשור(בשוויון α מדובר על החלפות של משתנים קשורים)
  • לדוגמא ההחלפה של מרכיב x.Mλ ב P על ידי y.[y/x]Mλ אם y ε/ FV(M).
  • אם x.M≡Pλ אזי התוצאה נובעת מהלמה הקודמת (שם החלפנו x ב y)
  • אם λx.M הוא חלק מ P זה נובע מ 59C (למת ההחלפה)
slide27
למת ההחלפה בספר(9C5)
  • אם Δ הוא הסקת TAλ של הנוסחהM:τ├Γ ונניח שM מכילה מרכיב P במקום p . אזי Δ מכילה תת הסקה pΔ של נוסחה בצורה Γp ├ P:σp עבור איזה שהם Γp ו pσ .
  • תהי T/P}pM} התוצאה של החלפת P במקום p ע"י ביטוי T כך ΓT ├ T:σp עבור איזה ΓT שהוא superset של ΓP אזי λ {T/P}p M:τ├Γ
slide28
למת ההצבה השניה עבור הסקה
  • נניח 1Γ עקיבה עם 2Γ ונניח Γ1,x:σ ├ M:τ וגם N:σ├ 2Γ אזי Γ1 U Γ2 ├ [N/x]M:τ
slide29
הוכחה של למת ההצבה השנייה עבור הסקה
  • נניח xεFV(M) (אם לא שייך זה ברור – זה סתם הצבה)
  • לפי למה קודמת(של שמירת α) אפשר להניח ששום משתנה קשור ב M אינו חפשי ב xN. במקרה זה [N/x]M הוא בפשטות תוצאה של החלפת כל x חפשי ב M עלידי N ללא שינויים במשתנים קשורים

.

  • לפי למה 2A11 למעלה אנחנו יכולים להניח ש
  • Subject(Γ1)U{x}=FV(M)
  • Subject(Γ2) = FV(N)
  • ואז התוצאה נובעת מאינדוקציה על |M|
slide30
רדוקציה והרחבה של נושא
  • משפט הרדוקציה של נושא
  • אםP:τΓ├ וגם P►βηQ אזי Γ├Q:τ
slide31
הוכחה:
  • לפי למה 2A11 קיימת הסקה Δ של Γ¯├P:τעבור איזה Γ¯ subset of Γ כך ש subject(Γ¯)=FV(P)
  • לפי משפט קודם FV(P) superset of FV(Q) (בגלל ש P►βηQ)
  • לכן לפי 9C5 מספיק להוכיח כאשר P הוא פשט β ו Q כווץ (contractum)
slide32
הוכחה(המשך)
  • מקרה 1
  • P≡(λxM)N Q=[N/x]M
  • אם X ε FV(M) אז לפי משפט הצבה לצעדים התחתונים של Δ בחישוב הטיפוס של P הם בצורה
  • Γ1,x:σ ├ M:τ
  • ------------------- (→I)main
  • Γ1 ├ (λx.M):(σ→τ) Γ2├ N:σ
  • -----------------------------------------------------(→E)
  • Γ1 U Γ2 ├ ((λx:M)N):τ
  • כאשר Γ1 U Γ2 = Γ¯
  • במשפט ההצבה השני עבור M ו N נקבל (נזכור ש Q=[N/x]M )
  • Γ1 U Γ2 ├ [N/x]M:τ כלומר הראינו ש Q מהטיפוס τ
  • אם x לא ב FV(M) - דומה
slide33
הוכחה(המשך)
  • מקרה 2
  • P≡λx .Mx Q=M x ε/ FV(M) ואז ρ→σ≡τ עבור איזה שהם σρ ולפי משפט בנית הנושא הצעדים האחרונים ב Δ הם מהצורה
  • Γ¯├ M:ρ→σ x:ρ├ x:ρ
  • ---------------------------------- (→E)
  • Γ¯, x:ρ ├ Mx:σ
  • --------------------------------- (→I)main
  • Γ¯ (λx.Mx):ρ→σ
  • כלומר Δ מכילה הסקה של Γ¯ ├M:τ כפי שנדרש (שורה ראשונה)
  • כאן M≡Q מצאנו שהטיפוס של Q הוא גם כן τ
slide34
הגדרות(1D5 בספר)
  • כווץ β(λx.M) N ►β [N/x]M נקרא מבטל את N אם x לא מופיע חפשי ב M
  • הכווץ נקרא מכפיל (את N ) אם x מופיע לכל הפחות פעמיים באופן חפשי ב M
  • הפחתת β נקראת לא-מכפילה אם אף אחד מהכווצים אינו מכפיל
  • היא נקראת לא-מבטלת אם אף אחד מהכווצים אינו מבטל
slide35
משפט הרחבת נושא(ללא הוכחה)
  • אם Γ├Q:τ וגם P►βQ עם כווץ לא מכפיל ולא מבטל אזי Γ├P:τ
slide36
מסקנה משני המשפטים
  • אם P הוא ביטוי BCIλ סגור וגם P ►βQ אזי Γ├ P:τ ↔ Γ├Q:τ
  • הוכחה – השתמש במשפט הכווץ בשביל להוכיח ש
  • Γ├Pτ => Γ├ Q:τ
  • להלן למת עזר (לא הופיעה בהרצאה קודמת)1D6
  • כל הפחתת β של ביטוי λI הוא לא מבטל
  • כל ביטוי BCKλ הוא לא מכפיל וכל ביטוי BCIλ הוא גם לא מבטל וגם לא מכפיל
  • אם נעזר בלמה הזו ובמשפט ההרחבה נקבל Γ├ Q:τ => Γ├P:τ
slide37
דוגמאות כאשר תנאי משפט לא מתקימים
  • דוגמא 1
  • P►Q עלידי ביטוי כן מבטל ול Q יש טיפוס אבל ל P אין טיפוס
  • P≡(λuv.v)(λx.xx) Q=λv.v
  • אזי מתקיים Q:a→a├ אבל שום הפחתה TAλ לא תהיה בצורה P:τ├ משום שאז הייתה הסקה (λx.xx):σ├ עבור איזהשהוא σ וראינו שזה לא אפשרי בהרצאה קודמת.
  • הבעיה היא שיש כן ביטוי מבטל בניגוד לתנאי המשפט
slide38
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך)
  • דוגמא 2
  • P►Q עלידי ביטוי כן מכפיל ו לQ יש טיפוס, אבל ל P אין טיפוס
  • .נסמן ב I את ביטוי הזהות I≡a→a
  • וגם נסמן P≡(λx.xx)I Q=II
  • אזי מתקיים a→aQ: ├ אבל ל P אין טיפוס כי ל x.xxλ אין טיפוס
slide39
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך)
  • P►βQ על ידי ביטול, ל P ו Q יש טיפוסים, אבל ל Q יש יותר טיפוסים מאשר ל P
  • P≡λxyz.(λu.y)(xz) ו Q≡λxyz.y
  • אפשר להראות P:(c→d)→b→c→b├ ו ├Q:a→b→c→b
  • בהמשך הספר 3E1 מראים שהטיפוסים של P ו Q הם הרשומים כאן וב Q יש יותר אפשרויות: ב P פרמטר ראשון חיב להיות פונקציה ב Q אין מגבלה כזו
slide40
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך)
  • P►Q ע"י הכפלה ל P ו Q יש טיפוסים , אבל ל Q יש יותר טיפוסים מאשר ל P
  • P≡(λvxyz.v(y(vxz)))I ו Q≡λxyz.I(y(Ixz))
  • אפשר להראות
  • P:(a→b)→(b→a→b)→a→a→b├Q:(a→b)→(b→c)→a→c ├
  • גם כאן שימוש ב 3E1 יראה ש P לא מקבל כל טיפוסים של Q (ב Pv מופיע פעמים לכן יש מגבלה)
slide41
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך)
  • P עובר η ל Q ל PQ יש טיפוסים , אבל ל Q יש יותר טיפוסים מאשר ל P.
  • P≡λxy.xy Q≡λy.y
  • אפשר לראות ש
  • ├P:(a→b)→a→b ├Q:a→a
  • אבל הסקה TAλ של P:a→a├ לא אפשרית כי x היא במקום של פונקציה ב P
slide42
הגדרות (סוגי M)
  • הגדרה אם M סגורה הגדר Types(M) להיות כל ה τ כך ש M:τ├
  • בפרק הבא נראה שאם Types(M) לא ריק הטיפוסים שבו הם התממשות substitution-instance)) של טיפוס אחד - הטיפוס העיקרי של M. לפיכך Types(M) הוא או ריק או אנסופי
slide43
למה
  • נניח P סגורה אזי
  • (1) אם P►βQ אזי Types(P) subset of Types(Q)
  • (2) אם P►βQ עי הפחתה לא מבטלת ולא מכפילה אזי Types(P) = Types(Q)
  • הוכחה לפי משפטי ההפחתה וההרחבה.(כמו במסקנה שם)
slide44
הערה(שימור של המרה)
  • הדוגמאות מראות שלא תמיד מתקיים M=βN => Types(M)=Types(N)
  • למעשה נראה בעתיד (7A2.1) מקרה שבו M=βN אבל Types(M)∩Types(N)=Φ
  • כך ש Types(M) לא משתמר תחת המרה
  • זה חסרון של מערכת הטיפוסים נוסח Curry לעומת זו של Church
slide45
הערה(המשך)
  • בפרק 4 נראה חוק נוסף ל TAλ כך שהפגיעה לא גדולה
  • אם נראה את חישוב הטיפוס M:σ→τ כאומר שאפליקציה של M לכל ביטוי עם הטיפוס σ הוא "בטוח" אז התכונה המעשית החשובה ביותר הוא משפט הפחתת הנושא שאומר שאם לM יש הטיפוס σ→τהוא לא יאבד את תכונת ה "בטיחות" אחרי הפחתה
  • .
  • אם Types(M) גדלה כאשר M מופחת זה לא בעיה אלא אומר ש M בטוחה יותר
  • ביחוד שפות מעשיות כמו ML וקרובות אליה פועלות מאד בהצלחה בלי שימור בזמן המרה