我花了一两个星期编写一个简单的逻辑求解器。构建它之后,我发现自己想知道它所解决的语言是否是图灵完备的。所以我编写了一小组方程,它们接受 SKI 组合子演算中的任何有效表达式,并生成一个包含该表达式的正常形式的结果集。由于 SKI是图灵完备的,证明我的语言可以执行 SKI 将证明其图灵完备。
但是,有一个小故障。求解器不会按正常顺序减少表达式。实际上它所做的是尝试所有可能的减少顺序。这意味着解决方案集通常是巨大的。如果一个范式存在,它会在某个地方,但很难说在哪里。
这给我带来了两个问题:
我的语言图灵完备吗?还是我需要找到更好的证据?
解决方案的数量是输入的可计算函数吗?
(起初我假设解决方案集的大小是输入大小的指数或阶乘。但仔细观察,这是不正确的。你可以编写已经是正常形式的巨大表达式,以及不会终止的微小表达式.我有一种感觉,确定解决方案集的大小可能等同于解决停止问题,但我不完全确定......)