Checking Well-Formedness of Pure-Method Specifications
Checking Well-Formedness of Pure-Method Specifications
复制标题
检查纯方法规范的格式良好性
DOI:
10.1007/978-3-540-68237-0_7
复制
发表时间:
2008
期刊:
影响因子:
--
通讯作者:
Peter Müller
中科院分区:
文献类型:
--
作者:
A. Rudich;Ádám Darvas;Peter Müller
Contract languages such as JML and Spec# specify invariants and pre- and postconditions using side-effect free expressions of the programming language, in particular, pure methods. For such contracts to be meaningful, they must be well-formed: First, they must respect the partiality of operations, for instance, the preconditions of pure methods used in the contract. Second, they must enable a consistent encoding of pure methods in a program logic, which requires that their specifications are satisfiable and that recursive specifications are well-founded.
This paper presents a technique to check well-formedness of contracts. We give proof obligations that are sufficient to guarantee the existence of a model for the specification of pure methods. We improve over earlier work by providing a systematic solution including a soundness result and by supporting more forms of recursive specifications. Our technique has been implemented in the Spec# programming system.