Type-directed Bounding of Collections in Reactive Programs

10/24/2018
by   Tianhan Lu, et al.
0

Our aim is to statically verify that in a given reactive program, the length of collection variables does not grow beyond a given bound. We propose a scalable type-based technique that checks that each collection variable has a given refinement type that specifies constraints about its length. A novel feature of our refinement types is that the refinements can refer to AST counters that track how many times an AST node has been executed. This feature enables type refinements to track limited flow-sensitive information. We generate verification conditions that ensure that the AST counters are used consistently, and that the types imply the given bound. The verification conditions are discharged by an off-the-shelf SMT solver. Experimental results demonstrate that our technique is scalable, and effective at verifying reactive programs with respect to requirements on length of collections.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/06/2018

Calculational Verification of Reactive Programs with Reactive Relations and Kleene Algebra

Reactive programs are ubiquitous in modern applications, and thus verifi...
research
11/25/2017

Refinement Types for Ruby

Refinement types are a popular way to specify and reason about key progr...
research
08/30/2021

HELMHOLTZ: A Verifier for Tezos Smart Contracts Based on Refinement Types

A smart contract is a program executed on a blockchain, based on which m...
research
07/28/2023

Answer Refinement Modification: Refinement Type System for Algebraic Effects and Handlers

Algebraic effects and handlers are a mechanism to structure programs wit...
research
01/19/2023

OblivIO: Securing reactive programs by oblivious execution with bounded traffic overheads

Traffic analysis attacks remain a significant problem for online securit...
research
10/25/2019

Pointer Life Cycle Types for Lock-Free Data Structures with Memory Reclamation

We consider the verification of lock-free data structures that manually ...
research
06/24/2017

Local Refinement Typing

We introduce the Fusion algorithm for local refinement type inference, y...

Please sign up or login with your details

Forgot password? Click here to reset