函数式编程的论域论基础
第1章 引论
第2章 PCF及其操作语义
本章我们引入原型函数式编程语言PCF及其操作语义.
语言PCF是一个类型化的语言, 其类型集合
Type
被归纳定义如下
基本类型
nat
是一个类型, 并且
每当
σ
和
τ
是类型, 那么
(
σ
→
τ
)
也是一个类型.
我们经常将基本类型
nat
记作
ι
, 将
(
σ
→
τ
)
记作
σ
→
τ
, 其中
→
被理解为
Type
上的一个右结合的二元运算, 例如
σ
1
→
σ
2
→
σ
3
代表
σ
1
→
(
σ
2
→
σ
3
)
.
Γ
,
x
:
σ
,
Δ
⊢
x
:
σ
Γ
,
x
:
σ
⊢
M
:
τ
Γ
⊢
(
λ
x
:
σ
.
M
)
:
σ
→
τ
Γ
⊢
M
:
σ
→
τ
Γ
⊢
N
:
σ
Γ
⊢
M
⁡
(
N
)
:
τ
Γ
⊢
M
:
σ
→
σ
Γ
⊢
Y
σ
⁡
(
M
)
:
σ
Γ
⊢
zero
:
nat
Γ
⊢
M
:
nat
Γ
⊢
succ
⁡
(
M
)
:
nat
Γ
⊢
M
:
nat
Γ
⊢
pred
⁡
(
M
)
:
nat
Γ
⊢
M
i
:
nat
,
i
=
1
,
2
,
3
Γ
⊢
ifz
⁡
(
M
1
,
M
2
,
M
3
)
:
nat
图2.1 PCF的定型规则
x
⇓
x
λ
x
:
σ
.
M
⇓
λ
x
:
σ
.
M
图2.2 PCF的大步语义
第3章 PCF的Scott模型