逻辑编程和自动定理证明(ATP)之间有什么区别(例如与E-Prover,Spass或Princess)?
我搜索了很多,我发现的唯一信息是ATP是逻辑编程的先驱。但我没有看到差异。但我想这不仅仅是语法。
答案 0 :(得分:9)
就问题的Prolog部分而言,Richard O'Keefe最好说:
Prolog是一种高效的编程语言,因为它是一个愚蠢的定理证明者。
因此,Prolog和定理证明之间存在联系。 Prolog具有定理证明器的一些特征,例如,它搜索证明或更确切地说解析反驳,但它以不完整的方式执行这更适合通用编程语言。
当然,Prolog和定理证明器之间相对紧密的亲和力使Prolog成为实施更成熟的定理证明器的绝佳选择。
事实上,增加和扩展Prolog的不完整默认执行策略相对容易,以便搜索更加完整。
注意虽然Prolog也表现出一些超出定理证明范围的超逻辑特征,实际上常常会妨碍声明性推理。另请参阅 logical-purity 。