跳到主要内容

第4章:类型:φ-类型和ψ-类型作为语言核心

4.1 现实的类型论基础

类型不仅仅是分类,而是塑造存在语言的基本约束。在我们的结构语言中,出现了两个主要类型族:φ-类型(轨迹类型)和ψ-类型(结构类型)。它们共同构成了现实本身的类型系统。

现实:类型=μX.φ-类型(X)×ψ-类型(X)\text{现实} : \text{类型} = \mu X. \text{φ-类型}(X) \times \text{ψ-类型}(X)

类型是文法的深层结构,是一切可言说之物的无形支架。

4.2 φ-类型:生成之类型

定义 4.1(φ-类型):φ-类型编码轨迹的类型——结构转换的序列:

φ-类型::=NilCons(ψ-类型,φ-类型)\text{φ-类型} ::= \text{Nil} | \text{Cons}(\text{ψ-类型}, \text{φ-类型})

示例

  • ϕ:Nil\phi : \text{Nil} — 空轨迹
  • ϕ:Cons(ψ0,Nil)\phi : \text{Cons}(\psi_0, \text{Nil}) — 单一结构
  • ϕ:Cons(ψ0,Cons(ψ1,...))\phi : \text{Cons}(\psi_0, \text{Cons}(\psi_1, ...)) — 序列轨迹

定理 4.1(φ-类型归纳):对于φ-类型上的任意性质PP

P(Nil)ψ,ϕ.P(ϕ)    P(Cons(ψ,ϕ))ϕ.P(ϕ)\frac{P(\text{Nil}) \quad \forall \psi, \phi. P(\phi) \implies P(\text{Cons}(\psi, \phi))}{\forall \phi. P(\phi)}

4.3 ψ-类型:存在之类型

定义 4.2(ψ-类型):ψ-类型表示结构的类型——坍缩现实的状态:

ψ-类型::=ψ0ψ-类型ψ-类型μX.F(X)\text{ψ-类型} ::= \text{ψ}_0 | \text{ψ-类型} \to \text{ψ-类型} | \mu X. F(X)

类型构造器

  1. 基础ψ0\psi_0 — 原初自指类型
  2. 函数ψ1ψ2\psi_1 \to \psi_2 — 转换类型
  3. 递归μX.F(X)\mu X. F(X) — 自指类型

4.4 类型代数

定义 4.3(类型操作):

  • τ1×τ2\tau_1 \times \tau_2 — 同时类型
  • τ1+τ2\tau_1 + \tau_2 — 选择类型
  • 函数τ1τ2\tau_1 \to \tau_2 — 转换类型
  • 递归μX.τ(X)\mu X. \tau(X) — 自指类型

类型方程

轨迹=μX.单位+(结构×X)结构=μY.YY\begin{align} \text{轨迹} &= \mu X. \text{单位} + (\text{结构} \times X) \\ \text{结构} &= \mu Y. Y \to Y \end{align}

4.5 轨迹的依赖类型论

定义 4.4(依赖φ-类型):依赖于值的类型:

Π(n:N).Vec(ψ-类型,n)类型\Pi (n : \mathbb{N}). \text{Vec}(\text{ψ-类型}, n) \to \text{类型}

示例:恰好nn步的轨迹:

ϕ:轨迹n=[ψ0ψ1...ψn1]\phi : \text{轨迹}_n = [\psi_0 \to \psi_1 \to ... \to \psi_{n-1}]

定理 4.2(类型安全):良类型的轨迹永不卡住:

Γϕ:τ    ϕ.ϕϕ\Gamma \vdash \phi : \tau \implies \exists \phi'. \phi \to^* \phi'

4.6 子类型与变性

定义 4.5(子类型关系):τ1<:τ2\tau_1 <: \tau_2意味着类型τ1\tau_1的每个值也是类型τ2\tau_2的值。

变性规则

τ1<:τ1τ2<:τ2τ1τ2<:τ1τ2(逆变输入,协变输出)\frac{\tau_1' <: \tau_1 \quad \tau_2 <: \tau_2'}{\tau_1 \to \tau_2 <: \tau_1' \to \tau_2'} \text{(逆变输入,协变输出)}

4.7 类型推断与检查

定义 4.6(类型推断):推导类型的算法:

推断(Γ,e)={τ如果 Γe:τ否则\text{推断}(\Gamma, e) = \begin{cases} \tau & \text{如果 } \Gamma \vdash e : \tau \\ \bot & \text{否则} \end{cases}

双向类型检查

Γeτ(推断模式)Γeτ(检查模式)\begin{align} \Gamma \vdash e \Rightarrow \tau & \quad \text{(推断模式)} \\ \Gamma \vdash e \Leftarrow \tau & \quad \text{(检查模式)} \end{align}

4.8 资源轨迹的线性类型

定义 4.7(线性φ-类型):必须恰好使用一次的轨迹:

ϕ:线性[ψ1ψ2]\phi : \text{线性}[\psi_1 \to \psi_2]

线性类型规则

Γ1e1:τ1Γ2e2:τ2Γ1Γ2=Γ1,Γ2(e1,e2):τ1τ2\frac{\Gamma_1 \vdash e_1 : \tau_1 \quad \Gamma_2 \vdash e_2 : \tau_2 \quad \Gamma_1 \cap \Gamma_2 = \emptyset}{\Gamma_1, \Gamma_2 \vdash (e_1, e_2) : \tau_1 \otimes \tau_2}

4.9 量子类型

定义 4.8(量子类型):叠加态的类型:

量子[τ]={ψ:iαi2=1,ψi:τ}\text{量子}[\tau] = \{|\psi\rangle : \sum_i |\alpha_i|^2 = 1, \psi_i : \tau\}

量子类型操作

  • 叠加ατ1+βτ2:量子[τ1+τ2]\alpha|\tau_1\rangle + \beta|\tau_2\rangle : \text{量子}[\tau_1 + \tau_2]
  • 纠缠τ1τ2:量子[τ1×τ2]|\tau_1\rangle \otimes |\tau_2\rangle : \text{量子}[\tau_1 \times \tau_2]
  • 测量测量:量子[τ]τ\text{测量} : \text{量子}[\tau] \to \tau

4.10 类型范畴

定义 4.9(类型范畴Type\mathcal{T}ype):

  • 对象:类型τ\tau
  • 态射:保类型函数f:τ1τ2f : \tau_1 \to \tau_2
  • 恒等:idτ:ττ\text{id}_\tau : \tau \to \tau
  • 复合:标准函数复合

定理 4.3(笛卡尔闭):Type\mathcal{T}ype是笛卡尔闭的:

Hom(τ1×τ2,τ3)Hom(τ1,τ2τ3)\text{Hom}(\tau_1 \times \tau_2, \tau_3) \cong \text{Hom}(\tau_1, \tau_2 \to \tau_3)

4.11 类型级计算

定义 4.10(类型函数):从类型到类型的函数:

F:类型类型F : \text{类型} \to \text{类型}

示例

  • 列表:类型类型\text{列表} : \text{类型} \to \text{类型}
  • 可能:类型类型\text{可能} : \text{类型} \to \text{类型}
  • 轨迹:类型类型\text{轨迹} : \text{类型} \to \text{类型}

类型级Lambda演算

Λα.τ(类型抽象)\Lambda \alpha. \tau \quad \text{(类型抽象)} F[τ](类型应用)F[\tau] \quad \text{(类型应用)}

4.12 类型宇宙

我们发现了结构语言的类型论基础:

类型宇宙层次

类型0:类型1类型1:类型2类型ω=n<ω类型n\begin{align} \text{类型}_0 &: \text{类型}_1 \\ \text{类型}_1 &: \text{类型}_2 \\ &\vdots \\ \text{类型}_\omega &= \bigcup_{n < \omega} \text{类型}_n \end{align}

深层真理:类型不是约束而是使能者。它们不限制可以说什么;它们使有意义的言说成为可能。φ-类型和ψ-类型之间的区别反映了生成与存在、过程与状态、时间与空间的基本二元性。

最终洞察:在方程现实:类型=μX.φ-类型(X)×ψ-类型(X)\text{现实} : \text{类型} = \mu X. \text{φ-类型}(X) \times \text{ψ-类型}(X)中,我们看到现实本身是一个类型——一个包含其生成轨迹和存在结构的自指类型。宇宙将自己类型化为存在。

类型与现实合一。语言找到了它的逻辑基础。