PRECIS: Inferring invariants using program path guided clustering

  • Authors:
  • Parth Sagdeo;Viraj Athavale;Sumant Kowshik;Shobha Vasudevan

  • Affiliations:
  • Coordinated Science Laboratory, University of Illinois, Urbana-Champaign, 61801, USA;Coordinated Science Laboratory, University of Illinois, Urbana-Champaign, 61801, USA;Coordinated Science Laboratory, University of Illinois, Urbana-Champaign, 61801, USA;Coordinated Science Laboratory, University of Illinois, Urbana-Champaign, 61801, USA

  • Venue:
  • ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose PRECIS, a methodology for automatically generating invariants at function and loop boundaries through program path guided clustering. We instrument function inputs and outputs together with predicates for branch conditions and record their values during each execution. Program runs that share the same path are grouped together based on predicate words. For each group with sufficient data we use linear regression to express the output as a function of the inputs. Groups with insufficient data are examined as candidates for clustering with neighboring groups. Candidates that share the same output function are merged into a cluster. For each cluster, we write an invariant that summarizes the behavior of the corresponding set of paths. We evaluate our technique using Siemens benchmarks. When compared to Daikon, we find that our method has significant advantages.