Conditional Contextual Refinement (CCR)

03/14/2022
by   Youngju Song, et al.
0

Contextual refinement (CR) is one of the standard notions of specifying open programs. CR has two main advantages: (i) (horizontal and vertical) compositionality that allows us to decompose a large contextual refinement into many smaller ones enabling modular and incremental verification, and (ii) no restriction on programming features thereby allowing, e.g., mutually recursive, pointer-value passing, and higher-order functions. However, CR has a downside that it cannot impose conditions on the context since it quantifies over all contexts, which indeed plays a key role in support of full compositionality and programming features. In this paper, we address the problem of finding a notion of refinement that satisfies all three requirements: support of full compositionality, full (sequential) programming features, and rich conditions on the context. As a solution, we propose a new theory of refinement, called CCR (Conditional Contextual Refinement), and develop a verification framework based on it, which allows us to modularly and incrementally verify a concrete module against an abstract module under separation-logic-style pre and post conditions about external modules. It is fully formalized in Coq and provides a proof mode that combines (i) simulation reasoning about preservation of sideffects such as IO events and termination and (ii) propositional reasoning about pre and post conditions. 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 2

page 3

page 4

research
09/07/2021

Abstraction Logic: The Marriage of Contextual Refinement and Separation Logic

Contextual refinement and separation logics are successful verification ...
research
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...
research
10/29/2019

Differential Hoare Logics and Refinement Calculi for Hybrid Systems with Isabelle/HOL

We present simple new Hoare logics and refinement calculi for hybrid sys...
research
01/25/2020

Verification of a Generative Separation Kernel

We present a formal verification of the functional correctness of the Mu...
research
10/23/2018

Ordering Strict Partial Orders to Model Behavioral Refinement

Software is now ubiquitous and involved in complex interactions with the...
research
03/02/2023

Securing Verified IO Programs Against Unverified Code in F*

We introduce SCIO*, a formally secure compilation framework for statical...
research
12/28/2022

Verification of C++ Programs with VeriFast

VeriFast is a prototype tool based on separation logic for modular verif...

Please sign up or login with your details

Forgot password? Click here to reset