Incorrectness Proofs for Object-Oriented Programs via Subclass Reflection
Inheritance and method overriding are crucial concepts in object-oriented programming (OOP) languages. These concepts support a hierarchy of classes that reuse common data and methods. Most existing works for OO verification focus on modular reasoning in which they could support dynamic dispatching and thus efficiently enforce the Liskov substitution principle on behavioural subtyping. They are based on superclass abstraction to reason about the correctness of OO pro- grams. However, techniques to reason about the incorrectness of OOP are yet to be investigated. In this paper, we present a mechanism that 1) specifies the normal and abnormal execution OO programs by using ok specifications and er specifications respectively; 2) verifies the specifications by a novel under- approximation proof system based on incorrectness logic that can sup- port dynamic modularity. We introduce subclass reflection with dynamic views and an adapted subtyping relation for under-approximation. Our proposal can deal with both OOP aspects (e.g., behavioural subtyping and lossless casting) and under-approximation aspects (e.g., dropping paths). To demonstrate how the proposed proof system can soundly verify the specifications, we prove its soundness, prototype the proof system, and report on experimental results. The results show that our system can precisely reason about the incorrectness of programs with OOP aspects, such as proving the presence of casting errors and null- pointer-exceptions.
Wed 29 NovDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
10:30 - 12:00 | |||
10:30 30mTalk | Incorrectness Proofs for Object-Oriented Programs via Subclass Reflection APLAS 2023 Wenhua Li National University of Singapore, Quang Loc Le University College London, Yahui Song , Wei-Ngan Chin National University of Singapore | ||
11:00 30mTalk | m-CFA Exhibits Perfect Stack Precision APLAS 2023 Kimball Germane Brigham Young University | ||
11:30 30mTalk | TorchProbe: Fuzzing Dynamic Deep Learning Compilers APLAS 2023 Qidong Su University of Toronto / Vector Institute, Chuqin Geng McGill University, Gennady Pekhimenko University of Toronto / Vector Institute, Xujie Si University of Toronto |