Our position is that logic programming is not programming in the Horn clause sublogic of classical logic, but programming in a logic of (inductive) definitions. Thus, the similarity between prototypical Prolog programs (e.g., member, append, ...) and how inductive definitions are expressed in mathematical text, is not coincidental but essential. We argue here that this provides a natural solution to the main lingering semantic questions of Logic Programming and its extensions.
翻译:我们的立场是,逻辑编程并非经典逻辑中霍恩子句子逻辑的编程,而是在(归纳)定义逻辑中的编程。因此,典型Prolog程序(如成员、追加等)与数学文本中归纳定义表达方式之间的相似性并非偶然,而是本质性的。我们在此论证,这为逻辑编程及其扩展领域中长期悬而未决的主要语义问题提供了一种自然的解决方案。