arXivDaily arXiv每日学术速递 周一至周五更新
arXiv cs/0501043cs.LOcs.PL
收藏

正规程序的正确性和完备性证明--一种说明性方法

Proving Correctness and Completeness of Normal Programs - a Declarative Approach

W. Drabent, M. Milkowska

摘要:

我们提倡使用声明性方法来证明逻辑程序的属性。完全正确性可以分为正确性、完整性和干净终止;后者包括非挣扎。只有干净的终止依赖于操作语义,特别是选择规则。我们展示了如何处理的正确性和完整性的声明方式,治疗程序只从逻辑的角度来看。这种方法中使用的规范是解释(或理论)。我们指出,规范的正确性可能不同于那些完整性,因为通常有答案,既不被认为是错误的,也不需要计算。给出了确定性程序正确性和完备性的证明方法,并将其推广到正规程序。对于正常的程序,我们使用3值完成语义;这是一个标准的语义对应于否定有限失败。证明方法仅采用经典的2值逻辑。我们使用的3值完成语义,这可能是单独的利益的2值表征。所提出的方法进行了比较与基于操作语义的方法。我们还采用这项工作的想法推广一个已知的方法证明终止正常程序。

英文摘要:

We advocate a declarative approach to proving properties of logic programs. Total correctness can be separated into correctness, completeness and clean termination; the latter includes non-floundering. Only clean termination depends on the operational semantics, in particular on the selection rule. We show how to deal with correctness and completeness in a declarative way, treating programs only from the logical point of view. Specifications used in this approach are interpretations (or theories). We point out that specifications for correctness may differ from those for completeness, as usually there are answers which are neither considered erroneous nor required to be computed. We present proof methods for correctness and completeness for definite programs and generalize them to normal programs. For normal programs we use the 3-valued completion semantics; this is a standard semantics corresponding to negation as finite failure. The proof methods employ solely the classical 2-valued logic. We use a 2-valued characterization of the 3-valued completion semantics which may be of separate interest. The presented methods are compared with an approach based on operational semantics. We also employ the ideas of this work to generalize a known method of proving termination of normal programs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑