< Back to previous page

Publication

Generating inductive shape predicates for runtime checking and formal verification

Book Contribution - Book Chapter Conference Contribution

© Springer Nature Switzerland AG 2018. Knowing the shapes of dynamic data structures is key when formally reasoning about pointer programs. While modern shape analysis tools employ symbolic execution and machine learning to infer shapes, they often assume well-structured C code or programs written in an idealised language. In contrast, our Data Structure Investigator (DSI) tool for program comprehension analyses concrete executions and handles even C programs with complex coding styles. Our current research on memory safety develops ways for DSI to synthesise inductive shape predicates in separation logic. In the context of trusted computing, we investigate how the inferred predicates can be employed to generate runtime checks for securely communicating dynamic data structures across trust boundaries. We also explore to what extent these predicates, together with additional information extracted by DSI, can be used within general program verifiers such as VeriFast. This paper accompanies a talk at the ISoLA 2018 track “A Broader View on Verification: From Static to Runtime and Back”. It introduces DSI, highlights the above use cases, and sketches our approach for synthesising inductive shape predicates.
Book: ISoLA 2018: Leveraging Applications of Formal Methods, Verification and Validation. Verification
Pages: 64 - 74
Number of pages: 10
ISBN:9783030034207
Publication year:2018
Accessibility:Open