DeepAI
Log In Sign Up

Abstraction Logic: The Marriage of Contextual Refinement and Separation Logic

09/07/2021
by   Youngju Song, et al.
0

Contextual refinement and separation logics are successful verification techniques that are very different in nature. First, the former guarantees behavioral refinement between a concrete program and an abstract program while the latter guarantees safety of a concrete program under certain conditions (expressed in terms of pre and post conditions). Second, the former does not allow any assumption about the context when locally reasoning about a module while the latter allows rich assumptions. In this paper, we present a new verification technique, called abstraction logic (AL), that inherently combines contextual refinement and separation logics such as Iris and VST, thereby taking the advantages of both. Specifically, AL allows us to locally verify a concrete module against an abstract module under separation-logic-style pre and post conditions about external modules. AL are fully formalized in Coq and provides a proof mode that supports a combination of simulation-style reasoning using our own tactics and SL-style reasoning using IPM (Iris Proof Mode). Using the proof mode, we verified various examples to demonstrate reasoning about ownership (based on partial commutative monoids) and purity (i.e., termination with no system call), cyclic and higher-order reasoning about mutual recursion and function pointers, and reusable and gradual verification via intermediate abstractions. Also, the verification results are combined with CompCert, so that we formally establish behavioral refinement from top-level abstract programs, all the way down to their assembly code.

READ FULL TEXT

page 1

page 3

03/14/2022

Conditional Contextual Refinement (CCR)

Contextual refinement (CR) is one of the standard notions of specifying ...
09/16/2021

Trillium: Unifying Refinement and Higher-Order Distributed Separation Logic

We present a unification of refinement and Hoare-style reasoning in a fo...
01/29/2019

Abstract I/O Specification

We recently proposed an approach for the specification and modular forma...
10/23/2018

Ordering Strict Partial Orders to Model Behavioral Refinement

Software is now ubiquitous and involved in complex interactions with the...
08/15/2022

Exact Separation Logic

Over-approximating (OX) program logics, such as separation logic, are us...
01/28/2020

Unifying graded and parameterised monads

Monads are a useful tool for structuring effectful features of computati...
10/26/2021

Flexible Refinement Proofs in Separation Logic

Refinement transforms an abstract system model into a concrete, executab...