逻辑编程 - 只有一个功能符号的子集图灵 - 完成?

Nan*_*ncy 2 prolog logic-programming subset turing-complete

如果我有一个只包含一个功能符号的逻辑编程子集,我能做什么吗?

我想我不能,但我不确定.如果编程语言是图灵完备语言,它可以做任何用户想要的事情.我被告知这意味着它必须能够执行if..then..else命令,递归和自然数应该被定义.

任何帮助和意见将不胜感激!

lam*_*y.x 5

在经典谓词逻辑中,公式级别和术语级别之间存在区别.由于n元函数可以表示为(n + 1)个 - 谓词,因此仅限制函数符号的数量不会降低表达性.

在prolog中,公式和术语水平之间没有区别.您可以选择一个n元符号p并尝试通过p的嵌套对图灵机或等效概念(例如递归函数)进行编码.

根据我的直觉,我认为这是不可能的:你基本上可以用变量作为叶子描述n-ary树,但是你可以随时统一这些树.这意味着每个规则头将在递归派生期间匹配,因此您无法表达任何案例区别.不过,这只是一个非正式的论点,而不是一个证据.

PS你可能也对monadic逻辑感兴趣,其中只允许一元谓词.这个一阶逻辑片段是可判定的.

  • 同样作为补充:这是Herbrand宇宙上的某种隐式推理 - 在一个符号的情况下,术语树中每个节点的标签都是相同的. (2认同)