λx.x (λz.λx.x z) (λx.x)(λz.(λx.x)z) (λz.(λx.x) z) Call-by Name. Normal Order. (λz.z)

Similar documents
HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.


PL10



OCaml

04-다시_고속철도61~80p

untitled

untitled

Homework 1 SNU , Fall 2012 Kwangkeun Yi Due: 9/14, 24:00 Exercise 1 리스트합 큰순서대로 (descending order) 나열된정수리스트두개를받아서하나의 순서리스트로만드는함수 merge: int lis

Page 2 of 6 Here are the rules for conjugating Whether (or not) and If when using a Descriptive Verb. The only difference here from Action Verbs is wh

歯엑셀모델링

본문01

04 형사판례연구 hwp

step 1-1

untitled

2 동북아역사논총 50호 구권협정으로 해결됐다 는 일본 정부의 주장에 대해, 일본군 위안부 문제는 일 본 정부 군 등 국가권력이 관여한 반인도적 불법행위이므로 한일청구권협정 에 의해 해결된 것으로 볼 수 없다 는 공식 입장을 밝혔다. 또한 2011년 8월 헌 법재판소는

Exercise (10pts) k-친수 일반적으로 k진수(k > 1)는 다음과 같이 표현한다. d0 dn 여기서 di {0,, k 1}. 그리고 d0 dn 은 크기가 d0 k dn k n 인 정수를 표현한다. 이것을 살짝 확장해서 k친수 를 다음과 같이 정의

public key private key Encryption Algorithm Decryption Algorithm 1

Modern Javascript


untitled

BS°æÁ¦ÀλçÀÌÆ®7.22

SIGPLwinterschool2012

Page 2 of 5 아니다 means to not be, and is therefore the opposite of 이다. While English simply turns words like to be or to exist negative by adding not,

PowerPoint 프레젠테이션

DIY 챗봇 - LangCon

#Ȳ¿ë¼®

Semantic Consistency in Information Exchange

methods.hwp

e hwp


노동경제논집 38권 4호 (전체).hwp

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint - semantics

<C1A4BAB8B9FDC7D031362D335F E687770>

컴파일러

歯2350h.PDF

슬라이드 1

歯15-ROMPLD.PDF

歯2710h.PDF

chap 5: Trees

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona


저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

20, 41..,..,.,.,....,.,, (relevant).,.,..??.,

PowerPoint 프레젠테이션

slide2

- 2 -

CS322 중간고사.docx


<30352DC0CCC7F6C8F B1B3292DBFACB1B8BCD2B1B3C1A42E687770>

14È£À¯½Åȸº¸¸ñÂ÷.ps

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

기본자료형만으로이루어진인자를받아서함수를결과값으로반환하는고차함수 기본자료형과함수를인자와결과값에모두이용하는고차함수 다음절에서는여러가지예를통해서고차함수가어떤경우에유용한지를설명한다. 2 고차함수의 예??장에서대상체만바뀌고중간과정은동일한계산이반복될때함수를이용하면전체연산식을간 단

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

Microsoft Word - ExecutionStack

KT AI MAKERS KIT 사용설명서 (Node JS 편).indd

산은매거진13


Microsoft PowerPoint - 27.pptx

untitled

03장.스택.key

I&IRC5 TG_08권

歯49손욱.PDF

PowerPoint 프레젠테이션

*º¹ÁöÁöµµµµÅ¥-¸Ô2Ä)

KM-380BL,BLB(100908)

untitled

슬라이드 제목 없음

에너지경제연구 Korean Energy Economic Review Volume 11, Number 2, September 2012 : pp. 1~26 실물옵션을이용한해상풍력실증단지 사업의경제성평가 1

10 (10.1) (10.2),,

2 환경법과 정책 제16권( ) Ⅰ. 들어가며 Ⅱ. 가습기살균제 사건의 경과 Ⅲ. 가습기살균제 사건과 제조물 책임 Ⅳ. 가습기살균제 사건과 인과관계 입증 완화 Ⅴ. 나가며 Ⅰ. 들어가며 피해유발행위(혹은 인자)가 직접적인 손해를 즉각적으로 유발하는 경우

cat_data3.PDF

DBPIA-NURIMEDIA

1229_¶È¶ÈÇÑÀÎÁöÇൿġ·áº»¹®.PDF

untitled

#KM-235(110222)

DBPIA-NURIMEDIA

about_by5

, 41 ( ) * 1) ***.,. I.,..., ( ) ( ).,. ( ) *. ** 1

<31342D3034C0E5C7FDBFB52E687770>

nonpara6.PDF

182 동북아역사논총 42호 금융정책이 조선에 어떤 영향을 미쳤는지를 살펴보고자 한다. 일제 대외금융 정책의 기본원칙은 각 식민지와 점령지마다 별도의 발권은행을 수립하여 일본 은행권이 아닌 각 지역 통화를 발행케 한 점에 있다. 이들 통화는 일본은행권 과 等 價 로 연

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

274 한국문화 73

<C1DF3320BCF6BEF7B0E8C8B9BCAD2E687770>

歯처리.PDF

DocsPin_Korean.pages

untitled

10주차.key

ps

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

272 石 堂 論 叢 49집 기꾼이 많이 확인된 결과라 할 수 있다. 그리고 이야기의 유형이 가족 담, 도깨비담, 동물담, 지명유래담 등으로 한정되어 있음도 확인하였 다. 전국적인 광포성을 보이는 이인담이나 저승담, 지혜담 등이 많이 조사되지 않은 점도 특징이다. 아울

Observational Determinism for Concurrent Program Security

PowerPoint 프레젠테이션

Microsoft PowerPoint - 7-Work and Energy.ppt

ALTIBASE HDB Patch Notes

Á¶´öÈñ_0304_final.hwp

영남학17합본.hwp

Transcription:

λx.x (λz.λx.x z) (λx.x)(λz.(λx.x)z) (λz.(λx.x) z) Call-by Name. Normal Order. (λz.z)

Simple Type System - -

1+malloc(), {x:=1,y:=2}+2,... (stuck) { } { } ADD σ,m e 1 n 1,M σ,m e 1 σ,m e 2 n 2,M + e 2 n 1 + n 2, M = = E1 + E2 E1 E2 E.1 E1 := E2 if E1 E2 E3

P1 P2 accept P1 reject P2

.. P1 P5 P2 P4 P6 P3 accept P1 P2 reject P4 P3 P5 P6

.. P1 P5 P2 P4 P6 P3 accept P1 P2 reject P4 P3 P5 P6

= (formal logic)

) f T F f f f f f f f

) [T ] = true [F ] = false [ f ] = not[f ] [f 1 f 2 ] = [f 1 ] andalso [f 2 ] [f 1 f 2 ] = [f 1 ] orelse [f 2 ] [f 1 f 2 ] = [f 1 ] implies [f 2 ]

) T f 1 f 2 f 1 f 2

) Γ f Γ f Γ T Γ f f Γ Γ F Γ f Γ f Γ f f f f Γ f 1 Γ f 2 Γ f 1 f 2 Γ f 1 f 2 Γ f 1 Γ f 1 Γ f 1 f 2 Γ {f 1 } f 3 Γ {f 2 } f 3 Γ f 1 f 2 Γ f 3 Γ {f 1 } f 2 Γ f 1 f 2 Γ f 1 Γ f 1 f 2 Γ f 2 Γ {f} F Γ f Γ f Γ f Γ F

) = Γ f 1 Γ f 2 Γ f 1 f 2 {p p, p} p {p p, p} p p {p p, p} p {p p, p} p {p p, p} F {p p} p

) f f f f f f f

: & E n x λx.e EE E + E v n λx.e [] { } E 1 E1 E 1 E 2 E1 E 2 E 2 E2 ve 2 ve2 (λx.e) v {x v}e E 1 E1 E 1 +E 2 E1+E 2 E 2 E2 v+e 2 v+e2 z 1 +z 2 z 1 + z 2

Γ E : τ τ ι τ τ ( ) Γ Id fin Type [Γ E : τ ] = true iff σ = Γ.E 이영원히돌든가, 값을계산 E v 하면 v : τ. (=, tau )

Γ E : τ Γ n : ι Γ(x) =τ Γ x : τ Γ + x : τ 1 E : τ 2 Γ λx.e : τ 1 τ 2.. λx.x + 1 : ι ι (λy.y) 2 : ι (λx.x + 1) ((λy.y) 2) : ι.!. λy.y : ι ι λz.z : ι λx.x + 1 : ι ι (λy.y) (λz.z) : ι (λx.x + 1) ((λy.y) (λz.z)) : ι Γ E 1 : τ 1 τ 2 Γ E 2 : τ 1 Γ E 1 E 2 : τ 2 {x : ι} x : ι λx.x : ι ι {x : ι ι} x : ι ι λx.x : (ι ι) (ι ι) Γ E 1 : ι Γ E 2 : ι Γ E 1 +E 2 : ι.. {f : τ τ } f : τ τ {f : τ τ } f : τ τ = τ τ {f : τ τ } f f : τ λf.f f : (τ τ ) τ

e : τ 이고 e 가값이아니면반드시 e e. e : τ 이고 e e 이면 e : τ. Γ v : τ 이고 Γ + x : τ E : τ 이면 Γ {v/x}e : τ.

Lemma 1 (Progress). Suppose E is a closed, well-typed term (that is, E : τ for some τ). Then either E is a value or else there is some E with E E. Proof. By structural induction on E. E = n: Immediate, since E is a value. E = λx.e 1 : Immediate, since E is a value. E = x: Cannot occur (because E is closed). E = E 1 E 2 : By the following typing rule, E 1 : τ τ E 2 : τ E 1 E 2 : τ E 1 and E 2 are well-typed. Thus, induction hypothesis (I.H.) says that either E 1 is a value or else it can make a step of evaluation, and likewise E 2. There are three cases to consider. If E 1 is not a value: By I.H. (E 1 E 1) and the evaluation rules, E 1 E 2 E 1 E 2. If E 1 is a value and E 2 can take a step: By I.H. (E 2 E 2) and the evaluation rules, E 1 E 2 E 1 E 2. If both E 1 and E 2 are values, because of E 1 : τ τ, E 1 must be E 1 = λx.e. E 1 E 2 = λx.e v {x v}e E = E 1 +E 2 (exercise)

Lemma 2 (Preservation). If E : τ and E E, then E : τ. Proof. By structural induction on E. E = n or λx.e 1 : Vacuously satisfied. E = x: Cannot occur (because E is closed). E 1 : τ τ E 2 : τ E = E 1 E 2 :Bytypingrule, E 1 E 2 : τ, E 1 and E 2 are welltyped. Thus, induction hypothesis (I.H.) says that If E 1 E1 then E1 : τ τ If E 2 E2 then E2 : τ There are three cases in order for E 1 E 2 to make a step (E 1 E 2 E ): E 1 E1 and hence E 1 E 2 E1 E 2 : By I.H. and typing rules, E1 E 2 : τ E 2 E2 and hence E 1 E 2 E 1 E2: By I.H. and typing rules, E 1 E2 : τ Both E 1 and E 2 are values: E 1 must be λx.e, and hence E 1 E 2 = λx.e v. That is, E 1 E 2 = λx.e v {x v}e.byλx.e : τ τ Γ + x : τ 1 E : τ 2 and the typing rule Γ λx.e : τ 1 τ 2, x : τ E : τ holds. From x : τ E : τ and v : τ, {x v}e : τ (Preservation under Substitution Lemma). E = E 1 +E 2 (exercise)

Lemma 3 (Preservation under Substitution). If Γ v : τ and Γ + x : τ E : τ, then Γ {x v}e : τ. Proof. By induction on a derivation of Γ + x : τ E : τ. E = λy.e : Assume y {x} FV(v). Then, {x v}λy.e λy.{x v}e. T.S. Γ λy.{x v}e : τ = τ 1 τ 2 From Γ + x : τ λy.e : τ 1 τ 2 and typing rules, Γ + x : τ + y : τ 1 E : τ 2 By weakening Γ v : τ (and from the fact that y is new, i.e., y FV(v)), Γ + y : τ 1 v : τ I.H. Γ +y : τ 1 v : τ Γ +y : τ 1 +x : τ E : τ 2 Γ +y : τ 1 {x v}e : τ 2 From the I.H. and typing rules, Γ λy.{x v}e : τ 1 τ 2 Other cases: (exercise)

Γ n : ι Γ(x) =τ Γ x : τ Γ + x : τ 1 E : τ 2 Γ λx.e : τ 1 τ 2 Γ E 1 : τ 1 τ 2 Γ E 2 : τ 1 Γ E 1 E 2 : τ 2 Γ E 1 : ι Γ E 2 : ι Γ E 1 +E 2 : ι

? E : τ E τ

? (?) Γ n : ι Γ (x) =τ Γ x : τ Γ E 1 : τ 1 τ 2 Γ E 2 : τ 1 Γ E 1 E 2 : τ 2 Γ + x : τ 1 E : τ 2 Γ λx.e : τ 1 τ 2

Γ n : ι Γ (x) =τ Γ x : τ Γ E 1 : τ 1 τ 2 Γ E 2 : τ 1 Γ E 1 E 2 : τ 2 Γ + x : τ 1 E : τ 2 Γ λx : τ 1.E : τ 1 τ 2

(λx. x ) 1 1 3 2 4 α 1 = α x α 2 = α β α 3 = ι α = α 3 β = α x α x = α α 4 = β

α 1 = α x α 2 = α β α 3 = ι α = α 3 β = α x α x = α α 4 = β α 1 = α x α 2 = α β α 3 = ι α = ι β = α x α x = α α 4 = β α 1 = α x α 2 = ι β α 3 = ι α = ι β = α x α x = ι α 4 = β α 1 = ι α 2 = ι β α 3 = ι α = ι β = ι α x = ι α 4 = β α 1 = ι α 2 = ι ι α 3 = ι α = ι β = ι α x = ι α 4 = ι

TyEqn u τ =τ 타입방정식 u u 연립 Type τ α TyVar 타입변수 ι τ τ V (Γ, n, τ) = τ =ι V (Γ, x, τ) = τ =τ if x : τ Γ V (Γ, E 1 + E 2, τ) = τ =ι V (Γ, E 1, ι) V (Γ, E 2, ι) V (Γ, λx.e, τ) = τ = α 1 α 2 V (Γ + x : α 1, e, α 2 ) new α 1,α 2 V (Γ, E 1 E 2, τ) = V (Γ, E 1, α τ) V (Γ, E 2, α) new α

V (, (λx.x) 1, τ) = V (, λx.x, α τ) V (, 1, α) new α = α τ =. α 1 α 2 V (x : α 1,x,α 2 ) α =. ι = α τ.. = α 1 α 2 α 1 = α 2 α =. ι new α 1, α 2 V (Γ, n, τ) = τ =ι V (Γ, x, τ) = τ =τ if x : τ Γ V (Γ, E 1 + E 2, τ) = τ =ι V (Γ, E 1, ι) V (Γ, E 2, ι) V (Γ, λx.e, τ) = τ = α 1 α 2 V (Γ + x : α 1, e, α 2 ) new α 1,α 2 V (Γ, E 1 E 2, τ) = V (Γ, E 1, α τ) V (Γ, E 2, α) new α

} V (Γ,E,τ) Γ E : τ Proof. By structural induction on E.

( ) (unifier) S TyVar fin Type {{α ι} } = α =. ι {α ι, α 1 ι, α 2 ι, τ ι} = α τ =.. α 1 α 2 α 1 = α 2 α =. ι unify(τ, τ ) : TyVar fin Type unify(ι, ι) = unify(α, τ) or unifty(τ, α) = {α τ} if α does not occur in τ unify(τ 1 τ 2, τ 1 τ 2) = let S = unify(τ 1, τ 1) S = unify(sτ 2, Sτ 2) in S S unify( ) = fail

unify(α, int int) ={α int int} unify(α, int α) = fail unify(α β, int int) ={α int, β int} unify(α β, int α) = S = unify(α, int) ={α int} S = unify({α int}β, {α int}α) =unify(β, int) ={β int} S S = {β int}{α int} S S { }{ S = {a b},s = {b c} S (Sa)=S b = c S (S a)=sa= b

unify-all(τ =τ, S) = (unify(τ, τ ))S unify-all(u u, S) = let T = unify-all(u, S) in unify-all(t u, T ) U : TyEqn (TyVar fin Type) U(V (, E, α)) (new α)

S S S S S = TSfor some T ι. = ι = ι {}: most general {} unifier {α ι} : a (less general) unifier

: (* polymorphic functions *) let I = \x.x const = \n.10 in I I; const 1 + const true end