Mai*_*tor 12 haskell functional-programming equation lambda-calculus solver
假设您想要找到T
满足以下等式的λ演算程序:
(T (? f x . x)) = (? a t . a)
(T (? f x . (f x))) = (? a t . (t a))
(T (? f x . (f (f x)))) = (? a b t . (t a b))
(T (? f x . (f (f (f x)))) = (? a b c t . (t a b c))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我手动找到了这个解决方案:
T = (? t . (t (? b c d . (b (? e . (c e d)))) (? b . b) (? b . b)))
Run Code Online (Sandbox Code Playgroud)
有没有自动解决这种λ演算方程的策略?这个主题的现状是什么?
我不确定最先进的技术,但William E Byrd关于关系翻译的工作(如本文)允许这种程序合成.
另外,请参阅他的PolyConf演讲,了解一些搜索程序术语的好东西.您的示例似乎很容易以这种方式表达.