Abstract Interpretation Paper

Only available on StudyMode
  • Download(s) : 145
  • Published : March 5, 2013
Open Document
Text Preview
Introduction
Our Contribution

Generation of Program Invariants using Abstract
Interpretation Framework
41st Annual International IEEE/IFIP conference, DSN- 2011,
Hong Kong

Anirban Roy Choudhury
Homi Bhabha National Institute
Mumbai, India

30 June, 2011

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Motivation
A faulty computer software can cause significant economic
and human loss
eg. ESA’s Ariane 5 rocket failure, Therac-25 disaster

For safety critical softwares the impact is particularly severe

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Motivation
A faulty computer software can cause significant economic
and human loss
eg. ESA’s Ariane 5 rocket failure, Therac-25 disaster

For safety critical softwares the impact is particularly severe We need:
Detection of Runtime Errors
Find errors like division by zero, out of bound array access

Program Verification:
Given a program with some assertions, verify whether or not
the assertions are valid

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Motivation
A faulty computer software can cause significant economic
and human loss
eg. ESA’s Ariane 5 rocket failure, Therac-25 disaster

For safety critical softwares the impact is particularly severe We need:
Detection of Runtime Errors
Find errors like division by zero, out of bound array access

Program Verification:
Given a program with some assertions, verify whether or not
the assertions are valid

Testing is inadequate and incomplete
Solution may lie in Static Program Analysis
Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Program Invariants

For Runtime Error Detection
Check runtime assertions with constraints relating program
variables
Hoare Style of Program Verification
Depend on similar constraints relating program variables
These constraints are Program Invariants
Assertions at desired program locations that always remain
true for every execution of the program
Aim is automatic generation of meaningful Invariants

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Example of Program Invariants

Figure: Code for Insertion Sort

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Example of Program Invariants

Figure: Annoted code,no out of bound array access

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

The Challenge
Generating invariants is a computationally hard problem
Main Issues
How to generate invariants fast
How to generate sufficiently strong invariants for a particular proof requirement
How to minimize irrelevant invariants

Different Invariant generation approaches
Heuristics
Constraint based Invariant generation [Sankaranarayanan, Sipma and Manna: 2004]
Abstract Interpretation [Cousot, Cousot: 1976]

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction
Our Contribution

Abstract Interpretation
Abstract Domains

Definition

A general theory of the approximation of program semantics
using a class of abstract program properties

Anirban Roy Choudhury

Generation of Program Invariants using Abstract Interpretation

Introduction...
tracking img