450 likes | 632 Views
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית. הרצאה מס 3 ינון רפופורט חלק 1 משפט בנית הנושא. הקבלה בין עצים. במערכת TA λ יש התאמה בין מבנה עץ של ההסקה Γ├ M: τ לבין העץ של M נראה דוגמא:. דוגמא. נסמן B= λ xyz.x(yz) ראינו בהרצאה הקודמת חישוב הטיפוס של B.
E N D
סמינר במדעי המחשב חורף תשסט תורת הטיפוסים הפשוטים הבסיסית הרצאה מס 3ינון רפופורטחלק 1 משפט בנית הנושא
הקבלה בין עצים • במערכת TAλ יש התאמה בין מבנה עץ של ההסקהΓ├M:τ לבין העץ של M • נראה דוגמא:
דוגמא • נסמן B=λxyz.x(yz) • ראינו בהרצאה הקודמת חישוב הטיפוס של B
חישוב הטיפוס של 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
השוואה בין שני הציורים • אנחנו רואים שקבלנו בדיוק את עץ היצירה • של B
משפט בנית הנושא • נניח Δ הסקת TAλ של הנוסחה M:τ├Γ אזי • 1))אם נשמיט מכל נוסחה ב Δ כל דבר פרט לנושא אז Δ יהפוך עץ של ביטויים שהוא בדיוק עץ היצירה עבור M • 2))אם M הוא אטום ,נניח M≡x , אזי x:τ} }=Γ ואז Δ מכילה רק נוסחה אחת - האכסיומה x:τ├x:τ
משפט בנית הנושא(המשך) • (3)אם M=(PQ) אזי הצעד האחרון בΔ מוכרח להיות אפליקציה של (→E) לשתי נוסחאות מהצורה • Γ † P ├ P:σ→τΓ†Q├ Q:σ עבור איזשהו σ
משפט בנית הנושא(המשך) (4)אם M≡λx.P אזי τ הוא בהכרח ρ→σ יותר מזה אם xεFV(P) אזי הצעד האחרון ב Δ היה אפליקציה מהצורה (→I)main ל Γ,x:ρ ├P:σ ואם x \ε FV(P) אזי הצעד האחרון ב Δ היה אפליקציה מהצורה I)vac→ ) ל Γ ├ P:σ
הגדרה הסקהTAλ(סעיף 9C1 בספר) • הגדרה(הסקה TAλ) הם עצים בעלי תויות מגדרים כדלהלן כל צמת נושא שתי תויות נוסחת TAλ ומיקום. • (1)הסקה אטומית היא צמת יחיד מסומן באקסיומה ומיקום ריק כך • x:τ ├ x:τ position • (2) אם Δ1Δ2 הן הסקות וצמתי התחתית שלהם מסומנות במיקום והנוסחאות הן בהתאמה • Γ1 ├ P:{σ→τ), Γ2 ├ Q:σ • וגם Γ1 U Γ2 עקיב
הגדרה הסקה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λ (סעיף 9C1 בספר) • והיא נבנית עלידי כך שרושמים 0 בקצה השמאלי של כל תוית מיקום ב 1Δ ושמים צמת חדש בין ההסקה המתקנת כמו בשירטוט הבא • modified Δ1 • Γ ├ P:τ 0 • Γ –x ├ (λx.P):σ→τ
הוכחה של המשפט • באינדוקציה על |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:ρ→σ משל
הסקה של Δ אינה יחידה • עבור ביטוי M אם Δ ההסקה של Γ├M:τ אזי מהמשפט הקודם נובע שעץ הבניה של M קובע את עץ הבניה של Δ וגם את הביטויים בכל הצמתים של Δ אבל אין להסיק מכך שכל המרכיבים של Δ נקבעים עלי ידי זה משום שיש חופש לקבוע את הטיפוסים בצמתים לא תחתונים של Δ
דוגמא 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 • והטיפוס σ יכול להיות כלשהוא!
הערה לדוגמא • אם M הוא בצורה נורמלית או ביטוי Iλ) כלומר כל תת ביטוי מהצורה λx.M ב Px מופיע חפשי לכל הפחות פעם אחת) • אז החופש בחירה הזה יעלם ואז Δ (ההסקה) תיקבע באופן מחלט ע"י M. נראה זאת בלמה הבאה. .
למה – יחידות ההסקה עבור nf (normal forms) • נניח M הוא nf- β (כלומר לא מכיל פשטי β) ונניח Δ היא הסקה TAλשל M:τ├Γ אזי • (1) לכל טיפוס ב Δ קיים מופע ב τ או בטיפוס ב Γ • (2) Δ הוא יחיד , כלומר, אם גם Δ’ היא הסקה של M:τ├Γ אז ’Δ≡Δ
הוכחה של הלמה • נשתמש באינדוקציה על |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}
הוכחה של הלמה(המשך) • נניח 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 או ב τ ) או בτ או ב Γ
הוכחה של הלמה(המשך) • כדי להוכיח את (1) • לפי חלק (1) של הנחת האינדוקציה כל טיפוס ב Δi מופיע ב iρ או ב iΓ ולכן ב Γ • כמו כן הטיפוס של y מופיע ב Γ לכן מתקיים (1) • כדי להוכיח את (2) הטענה למעלה מראה ש Δ’ חיב להשתמש באותם חוקים באותו מקום כמו ב Δ והטיפוס שמתאם ל y ב Δ’ נקבע עי Γ וההנחה שהטיפוסים התלויים בהקשר (ה type-context ) הם עקיבים לכן הסוגים של P1..Pn נקבעים על ידי הסוג של y .
שימו לב (תכונת של תת-הנוסחה) • חלק (1) מתאים למה שנקרה תכונת של תת-הנוסחה: • במערכת הסקה טבעית כל נוסחה בהסקה שאי אפשר לפרק הלאה מופיעה או במסקנה או בהנחה לא משוחררת. (Undischarged assumption ) • בדוגמא 2B21A הסקת TAλ מכילה את הטיפוס σ, שאינו מופיע במסקנה או בהנחה לא משוחררת • הסיבה לכך היא שבM שם הוא לא בצורה נורמלית – יש שם פשט β
למת השמה ראשונה עבור הסקה • למה ראשונה עבור הצבה • נניח Γ├λ M:τ • וגם [y/x] Γ התוצאה של הצבת y עבור משתנה ביטוי x (term variable) ב Γ. • אם מתקיים אחד מהתנאים הבאים • (1) y ε\ Subjects(Γ) • (2) yו x מקבלים אותו טיפוס ב Γ • אזי [y/x]Γ ├ ([y/x]M):τ
הוכחת הלמה הראשונה • נזכר בלמה 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:τ
הוכחת למה ראשונה (המשך) • בשני המקרים מקיים 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|
הוכחת הלמה הראשונה(המשך) • נזכר בלמת ההחלשה מההרצאה הקודמת • Γ├M:τ , Γ+ superset of Γ => Γ+ ├ M:τ • ואז נקבל [y/x]Γ ├ ([y/x]M):τ כנדרש
למת שמור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 (למת ההחלפה)
למת ההחלפה בספר(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:τ├Γ
למת ההצבה השניה עבור הסקה • נניח 1Γ עקיבה עם 2Γ ונניח Γ1,x:σ ├ M:τ וגם N:σ├ 2Γ אזי Γ1 U Γ2 ├ [N/x]M:τ
הוכחה של למת ההצבה השנייה עבור הסקה • נניח xεFV(M) (אם לא שייך זה ברור – זה סתם הצבה) • לפי למה קודמת(של שמירת α) אפשר להניח ששום משתנה קשור ב M אינו חפשי ב xN. במקרה זה [N/x]M הוא בפשטות תוצאה של החלפת כל x חפשי ב M עלידי N ללא שינויים במשתנים קשורים . • לפי למה 2A11 למעלה אנחנו יכולים להניח ש • Subject(Γ1)U{x}=FV(M) • Subject(Γ2) = FV(N) • ואז התוצאה נובעת מאינדוקציה על |M|
רדוקציה והרחבה של נושא • משפט הרדוקציה של נושא • אםP:τΓ├ וגם P►βηQ אזי Γ├Q:τ
הוכחה: • לפי למה 2A11 קיימת הסקה Δ של Γ¯├P:τעבור איזה Γ¯ subset of Γ כך ש subject(Γ¯)=FV(P) • לפי משפט קודם FV(P) superset of FV(Q) (בגלל ש P►βηQ) • לכן לפי 9C5 מספיק להוכיח כאשר P הוא פשט β ו Q כווץ (contractum)
הוכחה(המשך) • מקרה 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) - דומה
הוכחה(המשך) • מקרה 2 • P≡λx .Mx Q=M x ε/ FV(M) ואז ρ→σ≡τ עבור איזה שהם σρ ולפי משפט בנית הנושא הצעדים האחרונים ב Δ הם מהצורה • Γ¯├ M:ρ→σ x:ρ├ x:ρ • ---------------------------------- (→E) • Γ¯, x:ρ ├ Mx:σ • --------------------------------- (→I)main • Γ¯ (λx.Mx):ρ→σ • כלומר Δ מכילה הסקה של Γ¯ ├M:τ כפי שנדרש (שורה ראשונה) • כאן M≡Q מצאנו שהטיפוס של Q הוא גם כן τ
הגדרות(1D5 בספר) • כווץ β(λx.M) N ►β [N/x]M נקרא מבטל את N אם x לא מופיע חפשי ב M • הכווץ נקרא מכפיל (את N ) אם x מופיע לכל הפחות פעמיים באופן חפשי ב M • הפחתת β נקראת לא-מכפילה אם אף אחד מהכווצים אינו מכפיל • היא נקראת לא-מבטלת אם אף אחד מהכווצים אינו מבטל
משפט הרחבת נושא(ללא הוכחה) • אם Γ├Q:τ וגם P►βQ עם כווץ לא מכפיל ולא מבטל אזי Γ├P:τ
מסקנה משני המשפטים • אם P הוא ביטוי BCIλ סגור וגם P ►βQ אזי Γ├ P:τ ↔ Γ├Q:τ • הוכחה – השתמש במשפט הכווץ בשביל להוכיח ש • Γ├Pτ => Γ├ Q:τ • להלן למת עזר (לא הופיעה בהרצאה קודמת)1D6 • כל הפחתת β של ביטוי λI הוא לא מבטל • כל ביטוי BCKλ הוא לא מכפיל וכל ביטוי BCIλ הוא גם לא מבטל וגם לא מכפיל • אם נעזר בלמה הזו ובמשפט ההרחבה נקבל Γ├ Q:τ => Γ├P:τ
דוגמאות כאשר תנאי משפט לא מתקימים • דוגמא 1 • P►Q עלידי ביטוי כן מבטל ול Q יש טיפוס אבל ל P אין טיפוס • P≡(λuv.v)(λx.xx) Q=λv.v • אזי מתקיים Q:a→a├ אבל שום הפחתה TAλ לא תהיה בצורה P:τ├ משום שאז הייתה הסקה (λx.xx):σ├ עבור איזהשהוא σ וראינו שזה לא אפשרי בהרצאה קודמת. • הבעיה היא שיש כן ביטוי מבטל בניגוד לתנאי המשפט
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • דוגמא 2 • P►Q עלידי ביטוי כן מכפיל ו לQ יש טיפוס, אבל ל P אין טיפוס • .נסמן ב I את ביטוי הזהות I≡a→a • וגם נסמן P≡(λx.xx)I Q=II • אזי מתקיים a→aQ: ├ אבל ל P אין טיפוס כי ל x.xxλ אין טיפוס
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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 אין מגבלה כזו
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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 מופיע פעמים לכן יש מגבלה)
דוגמאות כאשר תנאי משפט לא מתקיימים(המשך) • 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
הגדרות (סוגי M) • הגדרה אם M סגורה הגדר Types(M) להיות כל ה τ כך ש M:τ├ • בפרק הבא נראה שאם Types(M) לא ריק הטיפוסים שבו הם התממשות substitution-instance)) של טיפוס אחד - הטיפוס העיקרי של M. לפיכך Types(M) הוא או ריק או אנסופי
למה • נניח P סגורה אזי • (1) אם P►βQ אזי Types(P) subset of Types(Q) • (2) אם P►βQ עי הפחתה לא מבטלת ולא מכפילה אזי Types(P) = Types(Q) • הוכחה לפי משפטי ההפחתה וההרחבה.(כמו במסקנה שם)
הערה(שימור של המרה) • הדוגמאות מראות שלא תמיד מתקיים M=βN => Types(M)=Types(N) • למעשה נראה בעתיד (7A2.1) מקרה שבו M=βN אבל Types(M)∩Types(N)=Φ • כך ש Types(M) לא משתמר תחת המרה • זה חסרון של מערכת הטיפוסים נוסח Curry לעומת זו של Church
הערה(המשך) • בפרק 4 נראה חוק נוסף ל TAλ כך שהפגיעה לא גדולה • אם נראה את חישוב הטיפוס M:σ→τ כאומר שאפליקציה של M לכל ביטוי עם הטיפוס σ הוא "בטוח" אז התכונה המעשית החשובה ביותר הוא משפט הפחתת הנושא שאומר שאם לM יש הטיפוס σ→τהוא לא יאבד את תכונת ה "בטיחות" אחרי הפחתה • . • אם Types(M) גדלה כאשר M מופחת זה לא בעיה אלא אומר ש M בטוחה יותר • ביחוד שפות מעשיות כמו ML וקרובות אליה פועלות מאד בהצלחה בלי שימור בזמן המרה