自然数和有效简单类型的lambda演算术语之间的映射是什么?

时间:2015-02-23 23:00:03

标签: algorithm search functional-programming enumeration lambda-calculus

是否有任何有效的算法可以在简单类型的lambda演算和自然数的良好类型,闭合项之间进行映射?例如,使用bruijn索引(可能是错误的顺序):

0 → (λ 0)
1 → (λ (λ (0 1)))
2 → (λ (λ (1 0)))
3 → (λ 0 (λ 0))
4 → (λ (λ 0) 0)
5 → (λ (λ 1) 0)
6 → ... so on

相关问题:是否有一种算法可以在简单类型的lambda演算的自然数和规范化项之间进行映射?此外,同样的问题适用于无类型的lambda演算。

1 个答案:

答案 0 :(得分:1)

二元Lambda微积分定义了无类型lambda演算中任何闭合项的二进制编码,并且还建议自然数和二进制字符串之间的双射,但前者不是满射的。 论文http://arxiv.org/abs/1401.0379 “计算Binary Lambda微积分中的术语” 可能会产生有效的排名/排名映射。