ConSORT: Context- and Flow-Sensitive Ownership Refinement Types for Imperative Programs

02/18/2020
by   John Toman, et al.
0

We present ConSORT, a type system for safety verification in the presence of mutability and aliasing. Mutability requires strong updates to model changing invariants during program execution, but aliasing between pointers makes it difficult to determine which invariants must be updated in response to mutation. Our type system addresses this difficulty with a novel combination of refinement types and fractional ownership types. Fractional ownership types provide flow-sensitive and precise aliasing information for reference variables. ConSORT interprets this ownership information to soundly handle strong updates of potentially aliased references. We have proved ConSORT sound and implemented a prototype, fully automated inference tool. We evaluated our tool and found it verifies non-trivial programs including data structure implementations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/10/2020

Data Flow Refinement Type Inference

Refinement types enable lightweight verification of functional programs....
research
03/22/2022

ANOSY: Approximated Knowledge Synthesis with Refinement Types for Declassification

Non-interference is a popular way to enforce confidentiality of sensitiv...
research
07/08/2022

Flux: Liquid Types for Rust

We introduce Flux, which shows how logical refinements can work hand in ...
research
05/31/2021

Diffy: Inductive Reasoning of Array Programs using Difference Invariants

We present a novel verification technique to prove interesting propertie...
research
08/27/2019

Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning

Analyzing and verifying heap-manipulating programs automatically is chal...
research
06/30/2018

Flexible recovery of uniqueness and immutability (Extended Version)

We present an imperative object calculus where types are annotated with ...
research
08/04/2020

Intensional Datatype Refinement

The pattern-match safety problem is to verify that a given functional pr...

Please sign up or login with your details

Forgot password? Click here to reset