Answers:
这是一个已知的问题,称为高阶统一。
不幸的是,这个问题通常是无法确定的。有一个可确定的片段,称为米勒模式片段。除其他外,它广泛用于具有元变量或模式匹配的依赖类型程序的类型检查。该片段是统一变量仅应用于不同的绑定程序变量的地方。
本文提供了一个很好的教程,介绍了高阶统一的工作原理,并逐步介绍了(相对)简单的实现。
不幸的是,您的函数看起来不属于此模式片段。也就是说,我所看到的与功能组合非常相似。以下功能是否满足您的要求?
我们有:
我想对带有恒等函数的方程式有一个部分答案:
我们希望通过找到对式来解决它,这将是这样的形式(λ p 。中号)与一些未知的表达中号作为其主体。让我们用它替换我在原来的公式:
然后将该函数应用于左侧的:
但是我们这里有什么?:>这个方程式是我们要寻找的表达式的公式,用x代替p中每次出现的p,它表示之后的样子应该像右手边:)换句话说,我们寻找的是:
当然哪个是正确的答案:)
让我们尝试相同的方法来找到组合器的公式。我们希望它以某种方式工作,当应用于自身时,将产生应用于自身的自身:
现在,让我们发现对于式其为形式的(λ X 。中号)对于一些未知表达中号。将其代入方程式,我们得到:
将其应用于左侧的参数可得出的公式:
这是说的每一个发生后取代在中号与ω它产生ω,因此我们可以推断出替换之前的原始表达式 M应该为 x,因此我们要查找的函数应如下所示:
的确是这样:)
但是我有一种感觉,它可能变得如此简单,因为右侧已经在我们要查找的形式中。