Modular inference of subprogram contracts for safety checking

  • Authors:
  • Yannick Moy;Claude Marché

  • Affiliations:
  • AdaCore - 46 rue dAmsterdam, F-75009 Paris, France;INRIA Saclay - Île-de-France, 4 rue Jacques Monod, F-91893 Orsay, France and LRI, CNRS & Univ. Paris-Sud 11, F-91405 Orsay, France

  • Venue:
  • Journal of Symbolic Computation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Contracts expressed by logic formulas allow one to formally specify expected behavior of programs. But writing such specifications manually takes a significant amount of work, in particular for uninteresting contracts which only aim at avoiding run-time errors during the execution. Thus, for programs of large size, it is desirable to at least partially infer such contracts. We propose a method to infer contracts expressed as boolean combinations of linear equalities and inequalities by combining different kinds of static analyses: abstract interpretation, weakest precondition computation and quantifier elimination. An important originality of our approach is to proceed modularly, considering subprograms independently. The practical applicability of our approach is demonstrated on experiments performed on a library and two benchmarks of vulnerabilities of C code.