模式lambda演算中的eta展开


12

克洛普(Klop),范·奥斯特罗姆(van Oostrom)和德弗里耶(de Vrijer)撰写了一篇有关带模式的λ演算的论文。

http://www.sciencedirect.com/science/article/pii/S0304397508000571

从某种意义上说,模式是一棵变量树-尽管我只是将其视为变量的嵌套元组,例如((x,y),z),(t,s))。

在论文中,他们表明,如果模式是线性的,则从某种意义上说,模式中没有重复变量,则规则

(\p . m) n = m [n/p]

其中p是可变模式,n是与p形状完全相同的项的元组是合流的。

我很好奇文学中关于lambda演算的相似发展,包括模式和附加的eta规则(扩展,约简或仅相等)。

尤其是eta,我的意思是

m = \lambda p . m p

更直接地,我很好奇这样的lambda演算将具有什么性质。例如,它会合吗?

它强制关闭分类类别,因为它强制

m p = n p implies m = n 

通过在两者之间使用\ xi-rule。但是也许可能出问题了?


你能写出什么意思的eta规则吗?除非很奇怪,否则您应该能够使用总和对它进行编码并给出模拟参数。
Max New

2
@MaxNew:好像他在问未类型的演算。关于模式的所有内容都可以完美地与类型配合使用(我有点谦虚地建议我自己着重于模式匹配),但是未类型化的lambda演算与类型化的LC(尤其是wrt eta)有足够的区别,我不敢不做证明就不敢回答。 。
Neel Krishnaswami

@MaxNew:求和编码会带来什么?
乔纳森·加拉格尔

@NeelKrishnaswami:我实际上对两者都感兴趣。我想让产品类型的变量与eta规则一起感到紧张。我认为已完成,例如dicosmo.org/Articles/JFP96.pdf。但是,如果我弄错了,请纠正我。然后,您具有\ lambda x .mx = m = \ lambda(p,q)的等式。例如,m(p,q)。感谢您的论文链接!
乔纳森·加拉格尔

Answers:


7

这不是一个完整的答案。这个评论太大了。

如果使用带投影消除器(即乘积消除器fst(e)snd(e))的产品扩展类型化的Lambda演算,则基本上没有任何问题。花了很长时间才弄清楚的原因是,事实证明,进行eta 扩展而不是eta 减少更为自然。参见巴里·杰伊的《埃塔扩展的美德》

如果您希望产品具有图案样式的消除器

let (a,b) = e in t 

那么事情就更复杂了。模式匹配的主要困难是通勤转换。也就是说,这些计算公式具有

C[let (a,b) = e in t] === let (a,b) = e in C[t]

并弄清楚(a)C[-]使用哪个上下文,以及(b)如何确定该方程的方向。IMO,重写样式方法的最新技术是Sam Lindley的Sums的 扩展重写和Gabriel Scherer的Sums和Empty Type的等效决定,这两个都考虑了乘积和求和的Lambda演算。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.