Abstract:
Assertion based program verification is a well-known formal approach to (dis)prove correctness of algorithms associated to software systems. Assertions are input and outp...Show MoreMetadata
Abstract:
Assertion based program verification is a well-known formal approach to (dis)prove correctness of algorithms associated to software systems. Assertions are input and output properties a correct program must satisfy. These properties are traditionally written in a specification language based on classical logic. Associated classical reasoning (inference) systems are then used to (dis)prove program correctness. However, when programs manipulate mutable data structures such as pointers, classical logical operators have been unable to successfully model syntactically unrelated expressions. In this article, we study separation logics, which are equipped with specially-purposed operators to model mutable data structures. We describe the use of this logic as a specification language in the verification of a database management system (DMS). In particular, we detect several bugs in two DMS libraries regarding heap manipulation. We describe these bugs in detail and propose solutions.
Published in: 2020 8th International Conference in Software Engineering Research and Innovation (CONISOFT)
Date of Conference: 04-06 November 2020
Date Added to IEEE Xplore: 31 December 2020
ISBN Information: