Presburger-Definable Parameterized Typestates

12/23/2017
by   Ashish Mishra, et al.
0

Typestates are good at capturing dynamic states of a program as compared to normal types that can capture static structural properties of data and program. Although useful, typestates are suitable only for specifying and verifying program properties defined using finite-state abstractions. Many useful dynamic properties of programs are not finite-state definable. To address these issues, we introduce parameterized typestates (p-typestates). p-typestates associate a logical property with each state of regular typestate, thereby allowing specification of properties beyond finite-state abstractions. We present a dependent type system to express and verify p-typestate properties and a typestate-oriented core programming language incorporating these dependent types. Automatic inductive type-checking of p-typestate properties usually requires a programmer to provide loop invariants as annotations. Here we propose a way to calculate loop invariants automatically, using loop acceleration techniques for Presburger definable transition systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/31/2021

Solving Constrained Horn Clauses over ADTs by Finite Model Finding

First-order logic is a natural way of expressing the properties of compu...
research
06/26/2019

Ilinva: Using Abduction to Generate Loop Invariants

We describe a system to prove properties of programs. The key feature of...
research
04/09/2021

Beyond the Elementary Representations of Program Invariants over Algebraic Data Types

First-order logic is a natural way of expressing properties of computati...
research
05/24/2019

Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers (Extended Manuscript)

We address the problem of analyzing asynchronous event-driven programs, ...
research
03/18/2021

Computing Parameterized Invariants of Parameterized Petri Nets

A fundamental advantage of Petri net models is the possibility to automa...
research
09/10/2021

Regular Path Clauses and Their Application in Solving Loops

A well-established approach to reasoning about loops during program anal...
research
04/04/2021

A Logical Programming Language as an Instrument for Specifying and Verifying Dynamic Memory

This work proposes a Prolog-dialect for the found and prioritised proble...

Please sign up or login with your details

Forgot password? Click here to reset