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

Post on 06-Jan-2016

49 views 9 download

description

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

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

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

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

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

z y | | x

| ----- +------| | | |

yz | | | +----------------+-------------------+

x(yz) | |

z.x(yz)λ |

| λyz.x(yz)

| |

λxyz.x(yz)

השוואה בין שני הציורים

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

Bשל •

משפט בנית הנושא

אזי M:τ ├ Γ של הנוסחה TAλ הסקת Δנניח •

כל דבר פרט לנושא Δ)אם נשמיט מכל נוסחה ב )1• יהפוך עץ של ביטויים שהוא בדיוק עץ היצירה Δאז

Mעבור ואזx:τ} }=Γ אזי , M≡xנניח , הוא אטום M)אם )2•

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

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

Δ אזי הצעד האחרון בM=(PQ)אם (3)•לשתי ( E)→מוכרח להיות אפליקציה של

נוסחאות מהצורה

•Γ † P ├ P:σ→τ Γ†Q├ Q:σ

σעבור איזשהו

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

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

יותר מזה

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

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

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

P:σ

TAλהגדרה הסקה בספר)9C1(סעיף

) הם עצים בעלי תויות מגדרים TAλהסקה הגדרה)• TAλכדלהלן כל צמת נושא שתי תויות נוסחת

.ומיקוםהסקה אטומית היא צמת יחיד מסומן באקסיומה )1(•

ומיקום ריק כך•x:τ ├ x:τ position

הן הסקות וצמתי התחתית שלהם Δ1 Δ2 אם )2(• במיקום והנוסחאות הן בהתאמה מסומנות

•Γ1 ├ P:{σ→τ), Γ2 ├ Q:σ עקיב Γ1 U Γ2 וגם •

TAλהגדרה הסקה בספר)המשך9C1(סעיף

1) נבנית על ידי כך ששמים Δ1,Δ2אזי יש הסקה חדשה הקרויה )• ואז בונים 2Δ לימין של כל מיקום ב 2 ושמים Δ 1לימין כל מיקום של

ההסקות ששונו כפי שרואים בשרטוט2צמת נוסף בין

•Modified Δ1 modified Δ2•Γ1├ P:σ→τ 1 Γ2 ├Q:σ

•------------------------------------------------•Γ1 U Γ2 ├ PQ:τ

├Γ היא הסקה וצמת תחתית מסמן ב מקום והנוסחה Δ1 אם )3(•P:τ היא עקיבה עםx:σ , אז ההסקה החדשה נקראת )λx.Δ1(

TAλהסקה הגדרה בספר)9C1 (סעיף

בקצה 0והיא נבנית עלידי כך שרושמים • ושמים 1Δהשמאלי של כל תוית מיקום ב

צמת חדש בין ההסקה המתקנת כמו בשירטוט הבא

– modified Δ1– Γ ├ P:τ 0

–Γ –x ├ (λx.P):σ→τ

הוכחה של המשפט

|Mבאינדוקציה על |•9C1 נובע מהגדרה של הסקת מסקנות בסעיף ( 3( )2( )1)עבור • בהרצאה(I)- נשתמש בהגדרות של M≡λx.P (4)עבור • היהΔהקודמת נקבל שהצעד האחרון ב

→(I )main Γ,x:ρ ├ P:σ FV(P) xε אם ----------------

λx.P:ρ→σ Γ├

→)I(vac Γ├ P:σxε\ FV(P) אם -----------

Γ├ λx.P:ρ→σ

משל

אינה יחידהΔהסקה של

Γ├M:τ ההסקה של Δ אם Mעבור ביטוי • Mאזי מהמשפט הקודם נובע שעץ הבניה של

וגם את הביטויים Δ קובע את עץ הבניה של אבל אין להסיק מכך שכל Δבכל הצמתים של

נקבעים עלי ידי זה משום Δהמרכיבים של שיש חופש לקבוע את הטיפוסים בצמתים לא

Δתחתונים של

2B21A דוגמא

τ≡a→a Γ=Фונניח גם M≡(λxy.y)(λz.z) נניח •להלן הסקת המסקנות •

•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

יכול להיות כלשהוא!σוהטיפוס –

הערה לדוגמא

) I λ הוא בצורה נורמלית או ביטוי Mאם • P x ב λx.Mכלומר כל תת ביטוי מהצורה

מופיע חפשי לכל הפחות פעם אחת)

(ההסקה) Δאז החופש בחירה הזה יעלם ואז •. נראה זאת בלמה Mתיקבע באופן מחלט ע"י

הבאה.

.

nfלמה – יחידות ההסקה עבור (normal forms)

(כלומר לא מכיל פשטי nf- β הוא Mנניח •β ונניח (Δ היא הסקה TAλ שלM:τ ├ Γאזי

או τ קיים מופע ב Δ לכל טיפוס ב ) 1(•Γבטיפוס ב

•)2 ( Δ אם גם , כלומר, הוא יחיד Δ ’ היאΔ≡Δ ’ אז M:τ ├ Γהסקה של

הוכחה של הלמה

|Mנשתמש באינדוקציה על |• -nf הוא M זה קל משום M≡λx.P ו M≡yעבור •

β כי אז τ הוא ρ→σ ואלה הטיפוסים ב λx.P

נזכור : M=yP1..Pnעבור •(לא הצגה)1B10להלן למה קודמת מהספר • ניתן להיות מבוטא באופן יחיד nf- β שהוא Nכל •

N=λx1x2 λxm.yN1N2 Nmבצורה

סגור אזי Nואם , nf- β הם N1 .. Nmכאשר •yε{x1,x2,x3 xm}

הוכחה של הלמה)המשך(

n>1 ו M≡yP1.. Pnנניח • תכיל את האכסיומה 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)כדי להוכיח את • Δi של הנחת האינדוקציה כל טיפוס ב (1)לפי חלק •

Γ ולכן ב i Γ או ב i ρמופיע ב )1( לכן מתקיים Γ מופיע ב yכמו כן הטיפוס של • חיב ’ Δ הטענה למעלה מראה ש ) 2(כדי להוכיח את •

והטיפוס שמתאם Δלהשתמש באותם חוקים באותו מקום כמו ב וההנחה שהטיפוסים התלויים בהקשר Γ נקבע עי ’ Δ ב y ל P1..Pn ) הם עקיבים לכן הסוגים של type-context(ה

.yנקבעים על ידי הסוג של

שימו לב )תכונת של תת-הנוסחה(

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

לפרק הלאה מופיעה או במסקנה או בהנחה לא ( Undischarged assumptionמשוחררת. )

, σ מכילה את הטיפוס TAλ הסקת 2B21Aבדוגמא •שאינו מופיע במסקנה או בהנחה לא משוחררת

שם הוא לא בצורה נורמלית – יש שם Mהסיבה לכך היא שב•β פשט

למת השמה ראשונה עבור הסקה

למה ראשונה עבור הצבה• Γ├ λ M:τנניח • עבור y התוצאה של הצבת Γ[ y/x] וגם •

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

הוכחת הלמה הראשונה

בספר 2A11נזכר בלמה •• •Γ├M:τ (1) אםם subjects(Γ) superset of FV(M)

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

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

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

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

הוכחת למה ראשונה )המשך(

[ תנאי העקיבות עבור Γ]y/xבשני המקרים מקיים •CONTEXT

קיימת הסקה2A11לכן לפי למה •• Γ¯├M:τ עבור איזשהיא Γ¯ subset of Γ כאשר

Subjects(Γ¯)=M ואז [y/x]Γ ¯עקיב | ונראה שM ואז באינדוקציה על |

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

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

[z/y]P|=|P|

הוכחת הלמה הראשונה)המשך(

נזכר בלמת ההחלשה מההרצאה הקודמת••Γ├M:τ , Γ+ superset of Γ => Γ+ ├ M:τ

כנדרשΓ ├ (]y/x[M):τ[y/x]ואז נקבל •

INVARIANT) ) αלמת שמור

├Q:τ Γ אזי P≡αQ וגם ├P:τ Γאם •( 9Cהוכחה (מסתמך על •מספיק להוכיח עבור שנוי אחד של משתנה •

מדובר על החלפות של משתנים αקשור(בשוויון קשורים)

על ידי P ב x.M λלדוגמא ההחלפה של מרכיב •y.]y/x[M λ אם y ε/ FV(M).

אזי התוצאה נובעת מהלמה הקודמת x.M≡P λאם •)y ב x(שם החלפנו

(למת 59C זה נובע מ P הוא חלק מ λx.Mאם •ההחלפה)

(9C5למת ההחלפה בספר)

ונניח M:τ ├ Γ של הנוסחהTAλ הוא הסקת Δאם • מכילה תת Δ. אזי p במקום P מכילה מרכיב Mש

עבור Γp ├ P:σp של נוסחה בצורה p Δהסקה .p σ ו Γpאיזה שהם

p במקום P התוצאה של החלפת }T/P}pMתהי • שהוא ΓT עבור איזה ΓT ├ T:σp כך T ע"י ביטוי

superset של ΓP אזי λ {T/P}p M:τ ├ Γ

למת ההצבה השניה עבור הסקה

Γ1,x:σ ├ M:τ ונניח 2Γ עקיבה עם 1Γנניח • ├ Γ1 U Γ2 אזי N:σ ├ 2Γ וגם

]N/x[M:τ

הוכחה של למת ההצבה השנייה עבור הסקה

(אם לא שייך זה ברור – זה סתם הצבה) xεFV(M)נניח •) אפשר להניח ששום משתנה αלפי למה קודמת(של שמירת •

הוא M[N/x]. במקרה זה xN אינו חפשי ב Mקשור ב ללא N עלידי M חפשי ב xבפשטות תוצאה של החלפת כל

שינויים במשתנים קשורים . למעלה אנחנו יכולים להניח ש 2A11 לפי למה •

•Subject(Γ1)U{x}=FV(M) •Subject(Γ2) = FV(N)

|Mואז התוצאה נובעת מאינדוקציה על |•

רדוקציה והרחבה של נושא

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

הוכחה:

עבור Γ¯├P:τ של Δ קיימת הסקה 2A11לפי למה •subject(Γ¯)=FV(P) כך ש Γ¯ subset of Γאיזה

FV(P) superset of FV(Q) לפי משפט קודם •)P►βηQ(בגלל ש

ו β הוא פשט P מספיק להוכיח כאשר 9C5לכן לפי •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 = Γכאשר • )Q=]N/x[M נקבל (נזכור ש N ו Mבמשפט ההצבה השני עבור ••Γ1 U Γ2 ├ ]N/x[M:τ כלומר הראינו ש Q מהטיפוס τ - דומה FV(M) לא ב xאם •

הוכחה(המשך)

2מקרה ••P≡λx .Mx Q=M x ε/ FV(M) ואז ρ→σ≡τ עבור איזה שהם

σ ρ ולפי משפט בנית הנושא הצעדים האחרונים ב Δ הם מהצורה

•Γ¯├ M:ρ→σ x:ρ├ x:ρ•→) ----------------------------------E(

•Γ¯, x:ρ ├ Mx:σ •→) ---------------------------------I(main

•Γ¯ (λx.Mx):ρ→σ כפי שנדרש (שורה Γ¯ ├M:τ מכילה הסקה של Δכלומר •

ראשונה)τ הוא גם כן Q מצאנו שהטיפוס של M≡Qכאן •

בספר(1D5הגדרות)

מבטל נקרא β (λx.M) N ►β ]N/x[Mכווץ • M לא מופיע חפשי ב x אם Nאת

מופיע x) אם N (את מכפילהכווץ נקרא •Mלכל הפחות פעמיים באופן חפשי ב

אם אף אחד לא-מכפילה נקראת βהפחתת •מהכווצים אינו מכפיל

אם אף אחד מהכווצים לא-מבטלתהיא נקראת •אינו מבטל

משפט הרחבת נושא)ללא הוכחה(

עם כווץ לא P►βQ וגם Γ├Q:τאם • Γ├P:τמכפיל ולא מבטל אזי

מסקנה משני המשפטים

P ►βQ סגור וגם BCIλ הוא ביטוי Pאם •Γ├ P:τ ↔ Γ├Q:τאזי

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

מבטל וגם לא מכפילΓ├ Q:τ => Γ├P:τאם נעזר בלמה הזו ובמשפט ההרחבה נקבל •

דוגמאות כאשר תנאי משפט לא מתקימים

1דוגמא ••P►Q עלידי ביטוי כן מבטל ול Q יש טיפוס אבל ל P אין

טיפוס

•P≡(λuv.v)(λx.xx) Q=λv.v

לא תהיה TAλ ├ אבל שום הפחתה Q:a→aאזי מתקיים • ├ עבור λx.xx:(σ( ├ משום שאז הייתה הסקה P:τבצורה

וראינו שזה לא אפשרי בהרצאה קודמת.σאיזהשהוא

הבעיה היא שיש כן ביטוי מבטל בניגוד לתנאי המשפט•

דוגמאות כאשר תנאי משפט לא מתקיימים)המשך(

2דוגמא ••P►Qעלידי ביטוי כן מכפיל ו ל Qיש טיפוס ,

אין טיפוס P אבל ל

I≡a→a את ביטוי הזהות I.נסמן ב •

P≡(λx.xx)I Q=IIוגם נסמן •

אין טיפוס P├ אבל ל :a→a Qאזי מתקיים • אין טיפוס x.xx λכי ל

דוגמאות כאשר תנאי משפט לא מתקיימים)המשך(

•P►βQל , על ידי ביטול P ו Qאבל ל , יש טיפוסיםQ יש Pיותר טיפוסים מאשר ל

•P≡λxyz.(λu.y)(xz) ו Q≡λxyz.y

Q:a→b→c→b ├ ו ├P:(c→d)→b→c→bאפשר להראות •

הם Q ו P מראים שהטיפוסים של 3E1בהמשך הספר • פרמטר ראשון P יש יותר אפשרויות: ב Qהרשומים כאן וב

אין מגבלה כזו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 ├

לא מקבל כל P יראה ש 3E1גם כאן שימוש ב • מופיע פעמים לכן יש מגבלה)P v (ב Qטיפוסים של

דוגמאות כאשר תנאי משפט לא מתקיימים)המשך(

•P עובר η ל Q ל P Q אבל ל , יש טיפוסים Q יש יותר טיפוסים מאשר ל P.

•P≡λxy.xy Q≡λy.yאפשר לראות ש ••├P:(a→b)→a→b ├Q:a→a

├ לא אפשרית P:a→a של TAλאבל הסקה •P היא במקום של פונקציה ב xכי

(Mהגדרות )סוגי

Types(M) סגורה הגדר Mהגדרה אם • ├M:τ כך ש τלהיות כל ה

לא ריק Types(M)בפרק הבא נראה שאם •-substitutionהטיפוסים שבו הם התממשות

instance( של טיפוס אחד - הטיפוס העיקרי ( הוא או ריק או Types(M). לפיכך Mשל

אנסופי

למה

סגורה אזיPנניח •Types(P) subset of Types(Q) אזי P►βQ אם (1)•

עי הפחתה לא מבטלת ולא מכפילה P►βQאם ) 2(•

Types(P) = Types(Q)אזי

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

הערה)שימור של המרה(

M=βNהדוגמאות מראות שלא תמיד מתקיים •=> Types(M)=Types(N)

M=βN) מקרה שבו 7A2.1למעשה נראה בעתיד (•Types(M)∩Types(N)=Φאבל

לא משתמר תחת המרה Types(M)כך ש •

לעומת זו Curryזה חסרון של מערכת הטיפוסים נוסח •Churchשל

הערה)המשך(

כך שהפגיעה לא גדולהTAλ נראה חוק נוסף ל 4בפרק • כאומר שאפליקציה של M:σ→τאם נראה את חישוב הטיפוס •

M לכל ביטוי עם הטיפוס σ הוא "בטוח" אז התכונה המעשית Mהחשובה ביותר הוא משפט הפחתת הנושא שאומר שאם ל

הוא לא יאבד את תכונת ה "בטיחות" אחרי σ→τ יש הטיפוס הפחתה

•. מופחת זה לא בעיה אלא אומר M גדלה כאשר Types(M)אם •

בטוחה יותר Mש וקרובות אליה פועלות מאד MLביחוד שפות מעשיות כמו •

בהצלחה בלי שימור בזמן המרה