login

Verification of Java Programs Using Symbolic Execution and Invariant Generation

Lecture notes in computer sciencePublished 1 January 2004
Corina S. Păsăreanu, Willem Visser
Citations118
SJR quartileQ2
SJR score0.35
SNIP0.55

TL;DR

This work presents a novel iterative technique that uses invariant strengthening and approximation for discovering loop invariants automatically and it was used for the verification of several non-trivial Java programs.

Abstract

Software verification is recognized as an important and difficult problem. We present a norel framework, based on symbolic execution, for the automated verification of software. The framework uses annotations in the form of method specifications an3 loop invariants. We present a novel iterative technique that uses invariant strengthening and approximation for discovering these loop invariants automatically. The technique handles different types of data (e.g. boolean and numeric constraints, dynamically allocated structures and arrays) and it allows for checking universally quantified formulas. Our framework is built on top of the Java PathFinder model checking toolset and it was used for the verification of several non-trivial Java programs.

Keywords

Computer Science