Affiliation:
1. University of Central Florida, FL, USA
2. Stevens Institute of Technology, NJ, USA
Abstract
Verification of a dynamically dispatched method call,
E
.
m
(), seems to depend on
E
’s dynamic type. To avoid case analysis and allow incremental development, object-oriented program verification uses supertype abstraction. In other words, one reasons about
E
.
m
() using
m
’s specification for
E
’s static type. Supertype abstraction is valid when each subtype in the program is a behavioral subtype. This article semantically formalizes supertype abstraction and behavioral subtyping for a Java-like sequential language with mutation and proves that behavioral subtyping is both necessary and sufficient for the validity of supertype abstraction. Specification inheritance, as in JML, is also formalized and proved to entail behavioral subtyping.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference76 articles.
1. Lecture Notes in Computer Science;Alagic Suad
2. Lecture Notes in Computer Science;America Pierre
3. Lecture Notes in Computer Science;America Pierre
4. Proving total correctness of recursive procedures
5. Ten Years of Hoare's Logic: A Survey—Part I
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Incorrectness Proofs for Object-Oriented Programs via Subclass Reflection;Programming Languages and Systems;2023
2. A Relational Program Logic with Data Abstraction and Dynamic Framing;ACM Transactions on Programming Languages and Systems;2022-12-31
3. Further Lessons from the JML Project;The Logic of Software. A Tasting Menu of Formal Methods;2022
4. Verified Software Units for Simple DFA Modules and Objects in C;Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering;2022
5. Modular specification and verification of closures in Rust;Proceedings of the ACM on Programming Languages;2021-10-20