͢͜ͱ
୯७ܕ͖ϥϜμܭࢉ
ࣗવԋ៷ʢ໋ཧʣ
Curry–HowardಉܕରԠ
System F
ͤͳ͍͜ͱʢ࣌ؒతʹʣ
w ϥϜμܭࢉͷৄࡉ
w ड़ޠཧ
w ݹయཧͱ؍ओٛཧ
Slide 4
Slide 4 text
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
Slide 5
Slide 5 text
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
w ϥϜμܭࢉʜ୯७ͳϓϩάϥϛϯάݴޠΈ͍ͨͳͷ
w ม
w ؔ
w ؔద༻ͷͭͷΈ
w ؔܕϓϩάϥϛϯάͷཧతͳج൫
w ୯७ܕ͖ϥϜμܭࢉͦΕʹܕΛ͚ͭͨͷͷɺ
࠷؆୯ͳͷ
Slide 6
Slide 6 text
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
t ::= -- ߲
x -- ม
λx: T. t -- λநʢؔʣ
t t -- ؔద༻
T ::= -- ܕ
X -- ܕม
T → T -- ؔͷܕ
Slide 7
Slide 7 text
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
w ܕ͚نଇ࣍ͷΑ͏ͳܗͰॻ͘
ʮલఏ͕ͯ͢Γཱͭͱ͖ɺ݁Γཱͭʯ
w લఏ݁࣍ͷΑ͏ͳܗࣜ
ʮจ຺ΓͷԼͰɺ߲ tTͱ͍͏ܕΛͭʯ
ৈଥ (0 ڎΤࣣ)
ٗ
` t : T
Slide 8
Slide 8 text
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
x
:
A
2
`
x
:
A
, x
:
A
`
t
:
B
`
x
:
A. t
:
A
!
B
` t1 : A ! B ` t2 : A
` t1 t2 : B
Slide 9
Slide 9 text
ࣗ વ ԋ ៷
Slide 10
Slide 10 text
ࣗ વ ԋ ៷
w ཧֶͷܗࣜମܥͷͻͱͭ
w ཧతʹਖ਼໋͍͠ʢఆཧʣ
จ຺ʹΑΒͣ߃ʹਅͳ໋
w ܗࣜମܥͦͷΑ͏ͳఆཧΛಋͨ͘Ίͷͷ
w ͳΜ͔ࣗવͬΆ͍ʢਓ͕ؒߦ͏ਪʹࣅ͍ͯΔʣ
w ͜ͷεϥΠυͰ໋ཧͷൣғΈߟ͑·͢
Slide 11
Slide 11 text
ࣗ વ ԋ ៷
P ::= -- ໋
X -- ໋ม
P → P -- ཧแؚʮͳΒʯ
P ∧ P -- ཧੵʮ͔ͭʯ
P ∨ P -- ཧʮ·ͨʯ
¬P -- ൱ఆ
Slide 12
Slide 12 text
ࣗ વ ԋ ៷
w ಋग़نଇ࣍ͷΑ͏ͳܗͰॻ͘
ʮલఏ͕ͯ͢Γཱͭͱ͖ɺ݁Γཱͭʯ
w લఏ݁࣍ͷΑ͏ͳܗࣜ
ʮจ຺ΓͷԼͰɺP߃ʹਅʯ
ৈଥ (0 ڎΤࣣ)
ٗ
` P
Slide 13
Slide 13 text
ࣗ વ ԋ ៷
A 2
` A
, A ` B
` A ! B
` A ! B ` A
` B
Slide 14
Slide 14 text
ࣗ વ ԋ ៷
A 2
` A
, A ` B
` A ! B
` A ! B ` A
` B
x
:
A
2
`
x
:
A
, x
:
A
`
t
:
B
`
x
:
A. t
:
A
!
B
` t1 : A ! B ` t2 : A
` t1 t2 : B
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
Slide 15
Slide 15 text
ࣗ વ ԋ ៷
A 2
` A
, A ` B
` A ! B
` A ! B ` A
` B
x
:
A
2
`
x
:
A
, x
:
A
`
t
:
B
`
x
:
A. t
:
A
!
B
` t1 : A ! B ` t2 : A
` t1 t2 : B
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
໋㱻ܕ
Slide 16
Slide 16 text
ࣗ વ ԋ ៷
A 2
` A
, A ` B
` A ! B
` A ! B ` A
` B
x
:
A
2
`
x
:
A
, x
:
A
`
t
:
B
`
x
:
A. t
:
A
!
B
` t1 : A ! B ` t2 : A
` t1 t2 : B
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
Curry–Howard
ಉܕରԠ
Slide 17
Slide 17 text
ࣗ વ ԋ ៷
A 2
` A
, A ` B
` A ! B
` A ! B ` A
` B
x
:
A
2
`
x
:
A
, x
:
A
`
t
:
B
`
x
:
A. t
:
A
!
B
` t1 : A ! B ` t2 : A
` t1 t2 : B
୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
ͱΜ͔ͭDJ
Slide 18
Slide 18 text
C u r r y – H o w a rd ಉ ܕ ର Ԡ
ଞͷཧԋࢉࢠʹؔͯ͠ରԠΛߟ͑Δ͜ͱͰ͖Δ
ࣗ વ ԋ ៷ ୯ ७ ܕ ͖ ϥϜ μ ܭ ࢉ
໋ ܕ
ఆ ཧ ߲ ͕ ଘ ࡏ ͢ Δ ܕ
ཧ แ ؚ → ؔ ͷ ܕ →
Slide 19
Slide 19 text
C u r r y – H o w a rd ಉ ܕ ର Ԡ
ϥϜμܭࢉͰɺ͋Δܕͷ߲͕ଘࡏ͢Δ͜ͱΛࣔ͢
ରԠ͢Δ໋ʢఆཧʣͷূ໌
→ ূ໌ࢧԉγεςϜʢ$PRͳͲʣ
ϥϜμܭࢉͷ߲ʢϓϩάϥϜʣΛॻ͘
ίϯϐϡʔλʔ͕ܕΛ֬ೝ
ఆཧ͕ূ໌Ͱ͖ͨ
Slide 20
Slide 20 text
Sy s t e m F
Slide 21
Slide 21 text
Sy s t e m F
w ֊ͷܕ͖ϥϜμܭࢉ
୯७ܕ͖ϥϜμܭࢉܕʹؔ͢Δந
w ໋ཧͷൣғΛશͯΧόʔͰ͖Δ
ܕʹؔ͢ΔநͰཧԋࢉࢠΛΤϯίʔυՄೳ
Slide 22
Slide 22 text
Sy s t e m F
t ::= -- ߲
x -- ม
λx: T. t -- λநʢؔʣ
t t -- ؔద༻
ΛX. t -- ܕʹؔ͢Δநʢؔʣ
t [T] -- ܕͷద༻
T ::= -- ܕ
X -- ܕม
T → T -- ௨ৗͷؔͷܕ
∀X. T -- શশྔԽ͞Εͨܕ
Slide 23
Slide 23 text
Sy s t e m F
, X ` t : A
` ⇤X. t : 8X. A
` t : 8X. A
` t [B] : [X 7! B]A
Slide 24
Slide 24 text
Sy s t e m F
֤छཧԋࢉࢠͷΤϯίʔυҎԼͷͱ͓Γ
A ^ B ⌘ 8X. ((A ! B ! X) ! X) ! X
A _ B ⌘ 8X. ((A ! X) ! (B ! X) ! X) ! X
? ⌘ 8X. X
¬A ⌘ A ! ?
9X. A ⌘ 8Y. (8X. A ! Y ) ! Y
Slide 25
Slide 25 text
Sy s t e m F
w ূ໌ࢧԉγεςϜͬΆ͍ͷΛ࣮ͯ͠Έͨ
IUUQTHJUIVCDPNTVTJTVTZTUFNGKTJNQM
w σϞʢ͕࣌ؒ͋ΕʣʢͨͿΜ࣌ؒͳ͍ʣ
Slide 26
Slide 26 text
· ͱ Ί
Slide 27
Slide 27 text
· ͱ Ί
w Curry–HowardಉܕରԠཧֶͱϓϩάϥϜͷؒͷ
ରԠؔ
w System FΛ࣮͢Δͷָ͔ͬͨ͠ʢंྠͷ࠶ൃ໌ʣ
ࣗ વ ԋ ៷ ܕ ͖ ϥϜ μ ܭ ࢉ
໋ ܕ
ఆ ཧ ߲ ͕ ଘ ࡏ ͢ Δ ܕ
Slide 28
Slide 28 text
λ→
λ2
λω
λ ω
λP
λPω
λP2
λC
Slide 29
Slide 29 text
λ→
λ2
λω
λ ω
λP
λPω
λP2
λC
୯७ܕ͖ϥϜμܭࢉ
System F
System Fω
(Haskell)
CoC
(Coq)
Slide 30
Slide 30 text
λ→
λ2
λω
λ ω
λP
λPω
λP2
λC
୯७ܕ͖ϥϜμܭࢉ
System F
System Fω
(Haskell)
CoC
(Coq)
:zenzenyowai:
Slide 31
Slide 31 text
ࢀ ߟ จ ݙ
• ஜେֶͷܭࢉཧֶͷߨٛࢿྉ
http://www.cs.tsukuba.ac.jp/~kam/complogic/
•
ޒेཛྷ ३, ϓϩάϥϛϯάݴޠͷجૅ֓೦, αΠΤϯε
ࣾ, 2011
• B. C. Pierce, Types and Programming Languages,
The MIT press, 2002
ʢຊޠ༁͋Δʣ