Implementing separation logic using an SMT-backed Frame RuleRemote
Symbolic execution is a technique frequently used to reason about code. In symbolic execution, an analyzer keeps track of the program state’s logic representation and validates the correctness of state transitions. This verification is usually discharged to SMT solvers as queries to the logical state.
Separation logic is frequently used to express and verify properties of programs with pointers or references. However, most SMT solvers (like Z3) do not support separation logic natively. Recently, the CVC5 SMT solver has introduced support for a decidable fragment of separation logic, which has not yet been integrated into more high-level tools.
This work aims to address this gap, by providing a proof of concept for implementing the Frame Rule using SMT queries to mentioned solver. We conclude that this encoding can simplify the machinery dealing with separation logic, such as that present in tools verifying separation logic with symbolic execution like Smallfoot or GRASShopper.
Sat 20 JanDisplayed time zone: London change
16:00 - 17:30 | |||
16:00 30mTalk | asai: a Library for Compiler Diagnostics WITS | ||
16:30 30mTalk | Efficient Evaluation with Controlled Definition Unfolding WITS András Kovács University of Gothenburg | ||
17:00 30mTalk | Implementing separation logic using an SMT-backed Frame RuleRemote WITS |