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
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

11/10/2020

Data Flow Refinement Type Inference

Refinement types enable lightweight verification of functional programs....
06/05/2017

Towards a Flow- and Path-Sensitive Information Flow Analysis: Technical Report

This paper investigates a flow- and path-sensitive static information fl...
05/31/2021

Diffy: Inductive Reasoning of Array Programs using Difference Invariants

We present a novel verification technique to prove interesting propertie...
10/15/2020

Refinement Types: A Tutorial

Refinement types enrich a language's type system with logical predicates...
10/24/2018

Type-directed Bounding of Collections in Reactive Programs

Our aim is to statically verify that in a given reactive program, the le...
06/30/2018

Flexible recovery of uniqueness and immutability (Extended Version)

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

Intensional Datatype Refinement

The pattern-match safety problem is to verify that a given functional pr...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.