Lecture Notes in Computer Science
DOI: 10.1007/978-3-540-68237-0_7
|View full text |Cite
|
Sign up to set email alerts
|

Checking Well-Formedness of Pure-Method Specifications

Abstract: Abstract. 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 satisfiab… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
19
0

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 29 publications
(19 citation statements)
references
References 19 publications
0
19
0
Order By: Relevance
“…The pure method can call itself if its measure decreases. Ensuring consistency of the encoding of pure methods is an active area of research [LM09,RADM08].…”
Section: Flexible Pure Methodsmentioning
confidence: 99%
See 1 more Smart Citation
“…The pure method can call itself if its measure decreases. Ensuring consistency of the encoding of pure methods is an active area of research [LM09,RADM08].…”
Section: Flexible Pure Methodsmentioning
confidence: 99%
“…More liberal schemes for ensuring consistency can be found in the literature (e.g. [DL07,RADM08]). The well-typedness criterion is used to ensure the program does not get stuck due to Field-and MethodNotFound errors.…”
Section: Definitionmentioning
confidence: 99%
“…They encode pure methods and their contracts in first-order logic as uninterpreted functions and axioms respectively [20,17,34]. Checking wellformedness of pure method specifications is vital in this step, because inconsistent axiomatizations can result from unsatisfiable specifications or recursive specifications which are ill-founded [35]. A pure method call in an assertion is encoded as an application of the corresponding uninterpreted function.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…Our implementation extends the Spec# verification tool [5] by a new module that performs well-definedness and well-foundedness checks on specifications using the Y procedure. Details of the technique applied in the well-formedness checker are described in [26]. Additionally, in order to be able to compare the different procedures, we have built a prototype that implements the D, L, and Y procedures for the syntax given in Figure 1.…”
Section: Implementation and Empirical Resultsmentioning
confidence: 99%
“…We have implemented the new procedure in the Spec# verification tool [5] in the context of the well-formedness checking of method specifications [26]. We have compared our procedure with D and L using two automated theorem provers.…”
Section: Introductionmentioning
confidence: 99%