A Hoare Logic for Call-by-Value Functional Programs

  • Authors:
  • Yann Régis-Gianas;François Pottier

  • Affiliations:
  • INRIA Saclay - Île-de-France, ProVal, Orsay, F-91893 LRI, Université Paris-Sud, CNRS, Orsay, F-91405;INRIA Paris - Rocquencourt, Gallium, Domaine de Voluceau, F-78153

  • Venue:
  • MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a Hoare logic for a call-by-value programming language equipped with recursive, higher-order functions, algebraic data types, and a polymorphic type system in the style of Hindley and Milner. It is the theoretical basis for a tool that extracts proof obligations out of programs annotated with logical assertions. These proof obligations, expressed in a typed, higher-order logic, are discharged using off-the-shelf automated or interactive theorem provers. Although the technical apparatus that we exploit is by now standard, its application to call-by-value functional programming languages appears to be new, and (we claim) deserves attention. As a sample application, we check the partial correctness of a balanced binary search tree implementation.