arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1003.0773cs.LOcs.PL
收藏

S-程序演算

S-Program Calculus

Aleksandar Kupusinac, Dusan Malbaski

摘要:

本文给出了一阶谓词逻辑的一个特殊子集S-程序演算(简称S-演算)。S-演算是一种演算,由在虚拟机的抽象状态空间上定义的所谓S-公式组成。我们表明,S-公式是一个高度通用的工具,用于分析程序的语义,因为霍尔三元组的全部和部分的正确性不超过两个S-公式。此外,霍尔逻辑的所有规则都可以由S-公式和一阶谓词演算的公理/定理导出。S-演算是一种强大的机制,用于证明程序的正确性,以及使用谓词逻辑的定理构建额外的证明工具。每个证明都是基于导出一些S-公式的有效性,所以这个过程可以使用自动定理证明器(我们将在本文中使用Coq)来自动化。作为使用S-演算的一个例子,我们将证明Dijsktra算子wp的四个基本性质。Dijkstra给出的证明并没有完全形式化,我们将证明使用S-演算可以实现完全形式化。最后,我们在上述四个定理的基础上再增加一个定理,即否定律。

英文摘要:

This paper presents a special subset of the first-order predicate logic named S-program calculus (briefly S-calculus). The S-calculus is a calculus consisting of so-called S-formulas that are defined over the abstract state space of a virtual machine. We show that S-formulas are a highly general tool for analyzing program semantics inasmuch as Hoare triplets of total and partial correctness are not more than two S-formulas. Moreover, all the rules of Hoare logic can be derived using S-formulas and axioms/theorems of first-order predicate calculus. The S-calculus is a powerful mechanism for proving program correctness as well as for building additional proving tools using theorems of the predicate logic. Every proof is based on deriving the validity of some S-formula, so the procedure may be automated using automatic theorem provers (we will use Coq in this paper). As an example of the use of S-calculus, we will prove the four basic properties of Dijsktra's operator wp. The proofs given by Dijkstra are not completely formalized and we will show that a full formalization can be achieved using S-calculus. Finally, we add one more theorem to the above-mentioned four, namely the law of negation.

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

↑