许多教科书涵盖了Lambda-Calculus中的交叉点类型。交叉点的打字规则可以定义如下(在简单键入的lambda-calculus的基础上):

$ dfrac { gamma vdash m:t_1 quad gamma vdash m:t_2} { gamma vdash m:t_1 wedge t_2}( wedge i) vdash m: top}( top i)$$

相交类型在归一化方面具有有趣的属性:

  • 可以在不使用$ top i $规则的情况下键入lambda-term,如果它非常正常化。
  • lambda-term允许不包含$ top $的类型,其具有正常表格。

如果我们添加工会,那该怎么办?

$ dfrac { gamma vdash m:t_1} { gamma vdash m:t_1 vee t_2}( vee i_1) qquad qquad qquad qquad qquad dfrac { gamma gamma vdash m: vdash m:t_2} M:T_1 VEE T_2}( VEE I_2)$$

具有简单类型,亚型和工会的Lambda-Calculus是否具有任何有趣的类似属性?如何将术语与联合键入键入?

有帮助吗?

解决方案

在第一个系统中,您所说的子类型是这两个规则:

$$ dfrac {γ,x:t_1 vdash m:s} {γ,x:t_1 t_2 t_2 vdash m:s}(∧e_1) quad quad dfrac {γ,x:x:t_2 vdash m:s} {γ,x:t_1∧t_2 vdash m:s}(∧e_2)$$

它们对应于$ $ $的淘汰规则;没有他们,连接$∧$或多或少是毫无用处的。

在第二个系统中(带有Connectives $∨$和$→$,我们也可以添加$⊥$),上述子类型规则无关紧要,我认为您想到的随附的规则如下:

$$ dfrac {γ,x:t_1 vdash m:s quadγ,x:t_2 vdash m:s} {γ,x:t_1 t_2 t_2 t_2 vdash m:s}(s}(s}(∨e) quad quad dfrac dfrac dfrac {} {γ,x:{⊥} vdash m:s}({⊥} e)$$

对于它的价值,此系统允许键入$(λx。i)ω:a→a $(使用$ {⊥} e $ rule),不能仅使用具有正常形式的简单类型键入,但是不是很正常。


随机想法:(也许这值得在TCS上询问)

这使我猜想相关属性是类似的:

  • λ-Term $ m $承认一种不包含$ liff $ mn $的类型的类型,所有$ n $的正常表格具有正常表格。 ($δ$都失败了两个测试,但上述λ任期通过了)
  • 可以在不使用$ {⊥} e $规则的情况下键入λ-Term $ m $ Iff $ mn $,对于所有强烈正常化的$ n $都非常正常化。

锻炼: 证明我是错的。

这似乎是一个退化的情况,也许我们应该考虑添加 这家伙 进入图片。据我所记得的,它将允许获得$a∨(a→{⊥})$?

其他提示

我只想解释为什么相交类型非常适合表征标准化类(强,头部或弱),而其他类型的系统则不能。 (简单地使用或系统f)。

关键区别在于您必须说:“如果我可以输入$ m_2 $和$ m_1→m_2 $,那么我可以输入$ m_1 $”。在非交流类型中通常不正确,因为可以重复一个术语:

$$( lambda x.mxx)n→mnn $$

然后键入$ MNN $表示您可以键入$ n $的两个出现,但不能以相同类型的类型键入,例如$$ m:t_1→t_2→t_2→t_3 qquad n:t_1 qquad n:qquad n:t_2 $$带有相交类型的T_2 $$您可以将其转换为:$$ M:T_1 Wedge T_2→T_1 wedge T_2→T_3 qquad n:T_1 Wedge T_2 $$,然后关键步骤现在非常简单:$$( lambda X.MXX) :T_1 Wedge T_2→T_3 qquad n:t_1 wedge t_2 $$ so $( lambda x.mxx)n $ can通过与交叉点类型键入。

现在关于联合类型:假设您可以键入$( lambda x.xx)( lambda yy)$与某些联合类型,然后您还可以键入$ lambda x.xx $,然后获得某些类型的$ s,t_1 ,点$ $ $$ x:t_1 vee t_2 vee dots vee t_nt_n⊢xx:s $$,但您仍然必须证明每一个$ i $,$ x:t_i⊢xx:s $似乎是不可能的,这似乎是不可能的甚至是$ s $也是工会类型。

这就是为什么我认为联合类型的归一化不容易表征的原因。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top