1 / 45

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

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

kaemon
Download Presentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. הקבלה בין עצים • במערכת TAλ יש התאמה בין מבנה עץ של ההסקהΓ├M:τ לבין העץ של M • נראה דוגמא:

  3. דוגמא • נסמן B=λxyz.x(yz) • ראינו בהרצאה הקודמת חישוב הטיפוס של B

  4. חישוב הטיפוס של 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

  5. אם נשאיר רק את הנושא מהפיתוח נקבל

  6. השוואה בין שני הציורים • אנחנו רואים שקבלנו בדיוק את עץ היצירה • של B

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

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

  9. משפט בנית הנושא(המשך) (4)אם M≡λx.P אזי τ הוא בהכרח ρ→σ יותר מזה אם xεFV(P) אזי הצעד האחרון ב Δ היה אפליקציה מהצורה (→I)main ל Γ,x:ρ ├P:σ ואם x \ε FV(P) אזי הצעד האחרון ב Δ היה אפליקציה מהצורה I)vac→ ) ל Γ ├ P:σ

  10. הגדרה הסקהTAλ(סעיף 9C1 בספר) • הגדרה(הסקה TAλ) הם עצים בעלי תויות מגדרים כדלהלן כל צמת נושא שתי תויות נוסחת TAλ ומיקום. • (1)הסקה אטומית היא צמת יחיד מסומן באקסיומה ומיקום ריק כך • x:τ ├ x:τ position • (2) אם Δ1Δ2 הן הסקות וצמתי התחתית שלהם מסומנות במיקום והנוסחאות הן בהתאמה • Γ1 ├ P:{σ→τ), Γ2 ├ Q:σ • וגם Γ1 U Γ2 עקיב

  11. הגדרה הסקה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)

  12. הגדרה הסקה TAλ (סעיף 9C1 בספר) • והיא נבנית עלידי כך שרושמים 0 בקצה השמאלי של כל תוית מיקום ב 1Δ ושמים צמת חדש בין ההסקה המתקנת כמו בשירטוט הבא • modified Δ1 • Γ ├ P:τ 0 • Γ –x ├ (λx.P):σ→τ

  13. הוכחה של המשפט • באינדוקציה על |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:ρ→σ משל

  14. הסקה של Δ אינה יחידה • עבור ביטוי M אם Δ ההסקה של Γ├M:τ אזי מהמשפט הקודם נובע שעץ הבניה של M קובע את עץ הבניה של Δ וגם את הביטויים בכל הצמתים של Δ אבל אין להסיק מכך שכל המרכיבים של Δ נקבעים עלי ידי זה משום שיש חופש לקבוע את הטיפוסים בצמתים לא תחתונים של Δ

  15. דוגמא 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 • והטיפוס σ יכול להיות כלשהוא!

  16. הערה לדוגמא • אם M הוא בצורה נורמלית או ביטוי Iλ) כלומר כל תת ביטוי מהצורה λx.M ב Px מופיע חפשי לכל הפחות פעם אחת) • אז החופש בחירה הזה יעלם ואז Δ (ההסקה) תיקבע באופן מחלט ע"י M. נראה זאת בלמה הבאה. .

  17. למה – יחידות ההסקה עבור nf (normal forms) • נניח M הוא nf- β (כלומר לא מכיל פשטי β) ונניח Δ היא הסקה TAλשל M:τ├Γ אזי • (1) לכל טיפוס ב Δ קיים מופע ב τ או בטיפוס ב Γ • (2) Δ הוא יחיד , כלומר, אם גם Δ’ היא הסקה של M:τ├Γ אז ’Δ≡Δ

  18. הוכחה של הלמה • נשתמש באינדוקציה על |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}

  19. הוכחה של הלמה(המשך) • נניח 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 או ב τ ) או בτ או ב Γ

  20. הוכחה של הלמה(המשך) • כדי להוכיח את (1) • לפי חלק (1) של הנחת האינדוקציה כל טיפוס ב Δi מופיע ב iρ או ב iΓ ולכן ב Γ • כמו כן הטיפוס של y מופיע ב Γ לכן מתקיים (1) • כדי להוכיח את (2) הטענה למעלה מראה ש Δ’ חיב להשתמש באותם חוקים באותו מקום כמו ב Δ והטיפוס שמתאם ל y ב Δ’ נקבע עי Γ וההנחה שהטיפוסים התלויים בהקשר (ה type-context ) הם עקיבים לכן הסוגים של P1..Pn נקבעים על ידי הסוג של y .

  21. שימו לב (תכונת של תת-הנוסחה) • חלק (1) מתאים למה שנקרה תכונת של תת-הנוסחה: • במערכת הסקה טבעית כל נוסחה בהסקה שאי אפשר לפרק הלאה מופיעה או במסקנה או בהנחה לא משוחררת. (Undischarged assumption ) • בדוגמא 2B21A הסקת TAλ מכילה את הטיפוס σ, שאינו מופיע במסקנה או בהנחה לא משוחררת • הסיבה לכך היא שבM שם הוא לא בצורה נורמלית – יש שם פשט β

  22. למת השמה ראשונה עבור הסקה • למה ראשונה עבור הצבה • נניח Γ├λ M:τ • וגם [y/x] Γ התוצאה של הצבת y עבור משתנה ביטוי x (term variable) ב Γ. • אם מתקיים אחד מהתנאים הבאים • (1) y ε\ Subjects(Γ) • (2) yו x מקבלים אותו טיפוס ב Γ • אזי [y/x]Γ ├ ([y/x]M):τ

  23. הוכחת הלמה הראשונה • נזכר בלמה 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:τ

  24. הוכחת למה ראשונה (המשך) • בשני המקרים מקיים 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|

  25. הוכחת הלמה הראשונה(המשך) • נזכר בלמת ההחלשה מההרצאה הקודמת • Γ├M:τ , Γ+ superset of Γ => Γ+ ├ M:τ • ואז נקבל [y/x]Γ ├ ([y/x]M):τ כנדרש

  26. למת שמור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 (למת ההחלפה)

  27. למת ההחלפה בספר(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:τ├Γ

  28. למת ההצבה השניה עבור הסקה • נניח 1Γ עקיבה עם 2Γ ונניח Γ1,x:σ ├ M:τ וגם N:σ├ 2Γ אזי Γ1 U Γ2 ├ [N/x]M:τ

  29. הוכחה של למת ההצבה השנייה עבור הסקה • נניח xεFV(M) (אם לא שייך זה ברור – זה סתם הצבה) • לפי למה קודמת(של שמירת α) אפשר להניח ששום משתנה קשור ב M אינו חפשי ב xN. במקרה זה [N/x]M הוא בפשטות תוצאה של החלפת כל x חפשי ב M עלידי N ללא שינויים במשתנים קשורים . • לפי למה 2A11 למעלה אנחנו יכולים להניח ש • Subject(Γ1)U{x}=FV(M) • Subject(Γ2) = FV(N) • ואז התוצאה נובעת מאינדוקציה על |M|

  30. רדוקציה והרחבה של נושא • משפט הרדוקציה של נושא • אםP:τΓ├ וגם P►βηQ אזי Γ├Q:τ

  31. הוכחה: • לפי למה 2A11 קיימת הסקה Δ של Γ¯├P:τעבור איזה Γ¯ subset of Γ כך ש subject(Γ¯)=FV(P) • לפי משפט קודם FV(P) superset of FV(Q) (בגלל ש P►βηQ) • לכן לפי 9C5 מספיק להוכיח כאשר P הוא פשט β ו Q כווץ (contractum)

  32. הוכחה(המשך) • מקרה 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) - דומה

  33. הוכחה(המשך) • מקרה 2 • P≡λx .Mx Q=M x ε/ FV(M) ואז ρ→σ≡τ עבור איזה שהם σρ ולפי משפט בנית הנושא הצעדים האחרונים ב Δ הם מהצורה • Γ¯├ M:ρ→σ x:ρ├ x:ρ • ---------------------------------- (→E) • Γ¯, x:ρ ├ Mx:σ • --------------------------------- (→I)main • Γ¯ (λx.Mx):ρ→σ • כלומר Δ מכילה הסקה של Γ¯ ├M:τ כפי שנדרש (שורה ראשונה) • כאן M≡Q מצאנו שהטיפוס של Q הוא גם כן τ

  34. הגדרות(1D5 בספר) • כווץ β(λx.M) N ►β [N/x]M נקרא מבטל את N אם x לא מופיע חפשי ב M • הכווץ נקרא מכפיל (את N ) אם x מופיע לכל הפחות פעמיים באופן חפשי ב M • הפחתת β נקראת לא-מכפילה אם אף אחד מהכווצים אינו מכפיל • היא נקראת לא-מבטלת אם אף אחד מהכווצים אינו מבטל

  35. משפט הרחבת נושא(ללא הוכחה) • אם Γ├Q:τ וגם P►βQ עם כווץ לא מכפיל ולא מבטל אזי Γ├P:τ

  36. מסקנה משני המשפטים • אם P הוא ביטוי BCIλ סגור וגם P ►βQ אזי Γ├ P:τ ↔ Γ├Q:τ • הוכחה – השתמש במשפט הכווץ בשביל להוכיח ש • Γ├Pτ => Γ├ Q:τ • להלן למת עזר (לא הופיעה בהרצאה קודמת)1D6 • כל הפחתת β של ביטוי λI הוא לא מבטל • כל ביטוי BCKλ הוא לא מכפיל וכל ביטוי BCIλ הוא גם לא מבטל וגם לא מכפיל • אם נעזר בלמה הזו ובמשפט ההרחבה נקבל Γ├ Q:τ => Γ├P:τ

  37. דוגמאות כאשר תנאי משפט לא מתקימים • דוגמא 1 • P►Q עלידי ביטוי כן מבטל ול Q יש טיפוס אבל ל P אין טיפוס • P≡(λuv.v)(λx.xx) Q=λv.v • אזי מתקיים Q:a→a├ אבל שום הפחתה TAλ לא תהיה בצורה P:τ├ משום שאז הייתה הסקה (λx.xx):σ├ עבור איזהשהוא σ וראינו שזה לא אפשרי בהרצאה קודמת. • הבעיה היא שיש כן ביטוי מבטל בניגוד לתנאי המשפט

  38. דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • דוגמא 2 • P►Q עלידי ביטוי כן מכפיל ו לQ יש טיפוס, אבל ל P אין טיפוס • .נסמן ב I את ביטוי הזהות I≡a→a • וגם נסמן P≡(λx.xx)I Q=II • אזי מתקיים a→aQ: ├ אבל ל P אין טיפוס כי ל x.xxλ אין טיפוס

  39. דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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 אין מגבלה כזו

  40. דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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 מופיע פעמים לכן יש מגבלה)

  41. דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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

  42. הגדרות (סוגי M) • הגדרה אם M סגורה הגדר Types(M) להיות כל ה τ כך ש M:τ├ • בפרק הבא נראה שאם Types(M) לא ריק הטיפוסים שבו הם התממשות substitution-instance)) של טיפוס אחד - הטיפוס העיקרי של M. לפיכך Types(M) הוא או ריק או אנסופי

  43. למה • נניח P סגורה אזי • (1) אם P►βQ אזי Types(P) subset of Types(Q) • (2) אם P►βQ עי הפחתה לא מבטלת ולא מכפילה אזי Types(P) = Types(Q) • הוכחה לפי משפטי ההפחתה וההרחבה.(כמו במסקנה שם)

  44. הערה(שימור של המרה) • הדוגמאות מראות שלא תמיד מתקיים M=βN => Types(M)=Types(N) • למעשה נראה בעתיד (7A2.1) מקרה שבו M=βN אבל Types(M)∩Types(N)=Φ • כך ש Types(M) לא משתמר תחת המרה • זה חסרון של מערכת הטיפוסים נוסח Curry לעומת זו של Church

  45. הערה(המשך) • בפרק 4 נראה חוק נוסף ל TAλ כך שהפגיעה לא גדולה • אם נראה את חישוב הטיפוס M:σ→τ כאומר שאפליקציה של M לכל ביטוי עם הטיפוס σ הוא "בטוח" אז התכונה המעשית החשובה ביותר הוא משפט הפחתת הנושא שאומר שאם לM יש הטיפוס σ→τהוא לא יאבד את תכונת ה "בטיחות" אחרי הפחתה • . • אם Types(M) גדלה כאשר M מופחת זה לא בעיה אלא אומר ש M בטוחה יותר • ביחוד שפות מעשיות כמו ML וקרובות אליה פועלות מאד בהצלחה בלי שימור בזמן המרה

More Related