Systematic software development using VDM
Systematic software development using VDM
A theory of abstract data types for program development: bridging the gap?
Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT) on Formal Methods and Software, Vol.2: Colloquium on Software Engineering (CSE)
Specification of computer programs
Specification of computer programs
Eiffel: the language
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Theory Interpretation in Simple Type Theory
HOA '93 Selected Papers from the First International Workshop on Higher-Order Algebra, Logic, and Term Rewriting
Specware: Formal Support for Composing Software
MPC '95 Mathematics of Program Construction
An approach to compiler correctness using interpretation between theories (semantics, data type, verification)
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Making specifications complete through models
Proceedings of the 2004 international conference on Architecting Systems with Trustworthy Components
Towards modular algebraic specifications for pointer programs: a case study
Rewriting Computation and Proof
Hi-index | 0.00 |
Abstraction is essential in the formal specification of programs. A common way of writing abstract specifications is to specify implementations in terms of basic mathematical structures. Specification languages like JML offer so-called model classes that provide interfaces to such structures. One way to reason about specifications that make use of model classes is to map model classes directly to structures provided by the theorem prover used for verification. Crucial to the soundness of this technique is the existence of a semantic correspondence between the model class and the related structure. In this paper, we present a formal framework based on theory interpretation for proving this correspondence. The framework provides a systematic way of determining the necessary proof obligations and justifies the soundness of the approach.