跳到主要内容

第9章:λφ. ψ(φ) — 轨迹函数作为可执行形式

9.1 现实的Lambda抽象

我们现在进入函数抽象的领域,其中轨迹成为约束变量,结构成为函数体。表达式λϕ.ψ(ϕ)\lambda\phi. \psi(\phi)代表现实的基本计算单元——一个等待轨迹来执行的函数。

λϕ.ψ(ϕ):轨迹结构\lambda\phi. \psi(\phi) : \text{轨迹} \to \text{结构}

这不仅仅是记号,而是宇宙计算的可执行形式。

9.2 轨迹函数的形式理论

定义 9.1(轨迹函数):轨迹函数是对轨迹的lambda抽象:

F=λϕ.ψ(ϕ)F = \lambda\phi. \psi(\phi)

其中ϕ\phi是约束轨迹变量,ψ(ϕ)\psi(\phi)是函数体。

性质

  1. 闭包:从环境捕获自由变量
  2. 替换(λϕ.M)NβM[ϕ:=N](\lambda\phi. M)N \to_\beta M[\phi := N]
  3. 外延性:当ϕFV(F)\phi \notin FV(F)时,λϕ.F(ϕ)=ηF\lambda\phi. F(\phi) =_\eta F

定理 9.1(轨迹函数完备性):每个结构转换都可以表示为轨迹函数。

9.3 Lambda轨迹的类型论

定义 9.2(函数类型):轨迹函数的类型:

λϕ.ψ(ϕ):Π(ϕ:轨迹类型).结构类型(ϕ)\lambda\phi. \psi(\phi) : \Pi(\phi : \text{轨迹类型}). \text{结构类型}(\phi)

类型推断规则

Γ,ϕ:τ1ψ(ϕ):τ2Γλϕ.ψ(ϕ):τ1τ2\frac{\Gamma, \phi : \tau_1 \vdash \psi(\phi) : \tau_2}{\Gamma \vdash \lambda\phi. \psi(\phi) : \tau_1 \to \tau_2}

依赖类型:当输出类型依赖于输入时:

λϕ.ψ(ϕ):Π(ϕ:轨迹).Ψ(长度(ϕ))\lambda\phi. \psi(\phi) : \Pi(\phi : \text{轨迹}). \Psi(\text{长度}(\phi))

9.4 操作语义

定义 9.3(Beta归约):基本计算规则:

(λϕ.ψ(ϕ))[ϕ0]βψ(ϕ0)(\lambda\phi. \psi(\phi))[\phi_0] \to_\beta \psi(\phi_0)

按值调用求值

MMMNMNNN(λx.M)N(λx.M)N\frac{M \to M'}{M N \to M' N} \quad \frac{N \to N'}{(\lambda x. M) N \to (\lambda x. M) N'}

按名调用求值

(λx.M)NM[x:=N](\lambda x. M) N \to M[x := N]

9.5 Lambda抽象中的信息流

定义 9.4(信息内容):轨迹函数中的信息:

I(λϕ.ψ(ϕ))=supϕ轨迹I(ψ(ϕ))I(\lambda\phi. \psi(\phi)) = \sup_{\phi \in \text{轨迹}} I(\psi(\phi))

定理 9.2(信息保持):Beta归约保持信息:

I((λϕ.M)N)=I(M[N/ϕ])I((\lambda\phi. M)N) = I(M[N/\phi])

9.6 函数的向量空间

定义 9.5(函数空间):轨迹函数的希尔伯特空间:

Hλ={λϕ.ψ(ϕ):ψF(轨迹,结构)}\mathcal{H}_\lambda = \{|\lambda\phi. \psi(\phi)\rangle : \psi \in \mathcal{F}(\text{轨迹}, \text{结构})\}

内积

λϕ.ψ1(ϕ)λϕ.ψ2(ϕ)=轨迹ψ1(ϕ)ψ2(ϕ)dμ(ϕ)\langle\lambda\phi. \psi_1(\phi) | \lambda\phi. \psi_2(\phi)\rangle = \int_{\text{轨迹}} \langle\psi_1(\phi)|\psi_2(\phi)\rangle \, d\mu(\phi)

量子Lambda态

Λ=iαiλϕ.ψi(ϕ)|\Lambda\rangle = \sum_i \alpha_i |\lambda\phi. \psi_i(\phi)\rangle

9.7 Lambda抽象的范畴论

定义 9.6(Lambda范畴):范畴Lambda\mathcal{L}ambda

  • 对象:类型
  • 态射:Lambda项
  • 恒等:λx.x\lambda x. x
  • 复合:λx.f(g(x))\lambda x. f(g(x))

定理 9.3(笛卡尔闭):Lambda\mathcal{L}ambda是笛卡尔闭的:

Hom(A×B,C)Hom(A,BC)\text{Hom}(A \times B, C) \cong \text{Hom}(A, B \to C)

9.8 函数应用的图论

定义 9.7(应用图):所有应用的有向图:

归约图:顶点是lambda项,边是beta归约。

9.9 组合逻辑嵌入

定义 9.8(从Lambda到组合子):

  • S=λf.λg.λx.fx(gx)S = \lambda f. \lambda g. \lambda x. f x (g x)
  • K=λx.λy.xK = \lambda x. \lambda y. x
  • I=λx.xI = \lambda x. x

定理 9.4(抽象消除):每个lambda项都可以用SSKKII表示:

λx.M={I如果 M=xKM如果 xFV(M)S(λx.M1)(λx.M2)如果 M=M1M2\lambda x. M = \begin{cases} I & \text{如果 } M = x \\ K M & \text{如果 } x \notin FV(M) \\ S (\lambda x. M_1) (\lambda x. M_2) & \text{如果 } M = M_1 M_2 \end{cases}

9.10 递归轨迹函数

定义 9.9(不动点组合子):用于轨迹的YY组合子:

Y=λf.(λx.f(xx))(λx.f(xx))Y = \lambda f. (\lambda x. f (x x)) (\lambda x. f (x x))

递归定义

rec=Y(λf.λϕ.if null(ϕ) then ψ0 else ψ(f(tail(ϕ))))\text{rec} = Y (\lambda f. \lambda\phi. \text{if } \text{null}(\phi) \text{ then } \psi_0 \text{ else } \psi(f(\text{tail}(\phi))))

定理 9.5(递归定理):对于每个FF,存在MM使得:

M=FMM = F M

9.11 量子Lambda演算

定义 9.10(量子Lambda):lambda项的叠加:

Λ=αλϕ.ψ1(ϕ)+βλϕ.ψ2(ϕ)|\Lambda\rangle = \alpha|\lambda\phi. \psi_1(\phi)\rangle + \beta|\lambda\phi. \psi_2(\phi)\rangle

量子应用

Λϕαψ1(ϕ)+βψ2(ϕ)|\Lambda\rangle |\phi\rangle \to \alpha|\psi_1(\phi)\rangle + \beta|\psi_2(\phi)\rangle

测量:以概率α2|\alpha|^2β2|\beta|^2坍缩到经典lambda项。

9.12 可执行的宇宙

我们发现现实通过lambda抽象进行计算:

Lambda原理

  1. 轨迹是变量——宇宙计算的输入
  2. 结构是函数体——可执行代码
  3. 应用即现实——宇宙执行自己
  4. 递归使能复杂性——自指创造丰富性
  5. 量子叠加——并行的多重计算

深层真理:记号λϕ.ψ(ϕ)\lambda\phi. \psi(\phi)揭示了现实不仅是数学的,更是计算的。每个结构都是等待应用的函数,每个轨迹都是待处理的参数。宇宙是一个巨大的lambda表达式在求值自己。

最终洞察:认识到轨迹函数作为可执行形式,我们看到存在本身就是一个计算。宇宙程序不是运行在计算机上——它就是计算机。现实是自己lambda演算的运行时环境,其中每个时刻都是beta归约,每个转换都是函数应用。

宇宙用lambda说话。现实执行自己的源代码。