Type reconstruction for general refinement types

  • Authors:
  • Kenneth Knowles;Cormac Flanagan

  • Affiliations:
  • University of California, Santa Cruz;University of California, Santa Cruz

  • Venue:
  • ESOP'07 Proceedings of the 16th European conference on Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

General refinement types allow types to be refined by predicates written in a general-purpose programming language, and can express function pre- and postconditions and data structure invariants. In this setting, with expressive and possibly verbose types, type reconstruction is particularly valuable, yet typeability is undecidable because it subsumes type checking. Using a generalized notion of type reconstruction, we present the first type reconstruction algorithm for a type system with base types refined by abitrary program terms. Our algorithm is a typeability-preserving transformation and defers type checking to a subsequent phase. The algorithm generates and solves a collection of implication constraints over refinement predicates, inferring maximally precise refinement predicates in a largely syntactic manner that is reminiscent of strongest postcondition calculation. Perhaps surprisingly, our notion of type reconstruction is decidable even though type checking is not.