Combining a verification condition generator for a bytecode language with static analyses

  • Authors:
  • Benjamin Grégoire;Jorge Luis Sacchini

  • Affiliations:
  • INRIA Sophia Antipolis, Méditerranée, France;INRIA Sophia Antipolis, Méditerranée, France and FCEIA, Univesidad Nacional de Rosario, Argentina

  • Venue:
  • TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

In Proof-Carrying Code, the verification condition generator (VCgen) generates a set of formulas whose validity implies that the code satisfies the consumer policy. Applying a VCgen to a bytecode language with exceptions (such as Java bytecode) can result in a large number of proof obligations, due to the amount of branching instructions. We present a VCgen for Java bytecode that uses static analyses to reduce the number of proof obligations. As a result, the task of producing a proof is simpler, and the subsequent proof terms smaller. We formalize the VCgen as a deep embedding in Coq and prove soundness with respect to the Bicolano formalization of the Java bytecode semantics.