β范式
(重定向自Beta范式)
在λ演算中,若一个项不能β归约,则称为β范式(β规范型);如果既不能β归约,又不能η归约,则称为β-η范式。如果不能在头部β归约,则称为头部范式。
β归约[编辑]
在λ演算中,β可归约式(redex)是如下形式的项
- <math> ((\mathbf{\lambda} x . A(x)) t) </math>
这里的<math>A(x)</math>是(可能)涉及变量<math>x</math>的项。
“在头部位置的β归约”是把如下重写规则应用于一个β可归约式
- <math> ((\mathbf{\lambda} x . A(x)) t) \rightarrow A(t)</math>
这里的<math>A(t)</math>是把项<math>A(x)</math>中变量<math>x</math>替换为项<math>t</math>的结果。
一个β归约在头部位置,如果它有如下形式:
- <math> \lambda x_0 \ldots \lambda x_{i-1} . (\lambda x_i . A(x_i)) M_1 M_2 \ldots M_n \rightarrow
\lambda x_0 \ldots \lambda x_{i-1} . A(M_1) M_2 \ldots M_n </math>, where <math> i \geq 0, n \geq 1 </math>.
不是这种形式的任何归约都是内部β归约。
归约策略[编辑]
一般的说,对于给定项有多个不同的可能的β归约。正规序归约是一种求值策略,它始终应用“头部位置的β归约”的规则,直到没有更多的这种归约是可能的。在这一点上,结果的项是“头部范式”。
相反的,在应用序归约中,首先应用内部归约,而只在没有更多的内部归约是可能的时候应用头部归约。
正规序归约是完备的,在如果一个项有头部范式则正规序归约总是能最终达到它的意义上。相反的,应用序归约可能不终止,即使在这个项有规范形式的时候。例如,使用应用序归约,下列归约序列是可能的:
- <math> (\mathbf{\lambda} x . z) ((\lambda w. w w w) (\lambda w. w w w)) </math>
- <math> \rightarrow (\lambda x . z) ((\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w))</math>
- <math> \rightarrow (\lambda x . z) ((\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w))</math>
- <math> \rightarrow (\lambda x . z) ((\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w) (\lambda w. w w w))</math>
- <math>\ldots</math>
而使用正规序归约,同样的起点迅速的归约到范式:
- <math> (\mathbf{\lambda} x . z) ((\lambda w. w w w) (\lambda w. w w w)) </math>
- <math> \rightarrow z </math>