我真的不知道这是否经过科学证明,但我读过一本书(这是Peter Norvig的一本相对现代的AI书),二阶逻辑编程可能比现有的一阶语言更具表现力
问题是:在统计上/符号上证明高阶谓词逻辑在其表达能力上超过一阶谓词吗?或者他们只是为您的知识库带来模块化/便利/可维护性?
此外:如果有某种坚定的方向,我可以寻求比我更具表现力的力量(我的意思是我用给定的语义/语法写出的符号的描述性潜力) - 那么我会很高兴听到几乎所有的事情:)
谢谢。
答案 0 :(得分:8)
二阶逻辑比一阶逻辑更强大,更具表现力。除了变量之外,二阶逻辑允许人们量化关系;因此,使用二阶逻辑的单个句子,可以表达需要无限数量的一阶逻辑句子的东西。这种关系类似于FOL和命题逻辑之间的关系。
作为示例,请考虑SOL声明:
\forall R \exists x \exists y (x R y)
这表明对于任何关系R,存在x和y,使得x R y成立。为了在FOL中表达这一点,人们需要语言中每个关系R的陈述,这显然可以是无限的。
对于一个更有趣的例子,可以看一下关系的传递闭包在FOL中无法表达的证明。如果你想看,我可以发布它;但为了简洁起见,我会省略它,除非有人想要它。
编辑:您可能也对Descriptive Complexity感兴趣 - 基本上,它将复杂性和可表达性的概念联系在一起 - 如果您能够在某个逻辑片段中完全陈述问题,那么您知道它是包含在相应的复杂性类中。例如,如果问题可以在存在性二阶逻辑中说明,则它在NP中;如果它可以在一阶逻辑+一个最小不动点运算符中说明,则它在P中。如果你能证明存在二阶逻辑的每个陈述都可以转换为FOL(LFP),那么你已经证明了P = NP 。 (好吧,你已经证明了NP \子集P,但由于其他的遏制已经知道,你已经证明了平等......)
答案 1 :(得分:1)
您可能需要查看dependent type theories。