Program-ing finger trees in Coq

  • Authors:
  • Matthieu Sozeau

  • Affiliations:
  • LRI: Université Paris Sud, Orsay, France

  • Venue:
  • ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Finger Trees (Hinze & Paterson, 2006) are a general purpose persistent data structure with good performance. Their genericity permits developing a wealth of structures like ordered sequences or interval trees on top of a single implementation. However, the type systems used by current functional languages do not guarantee the coherent parameterization and specialization of Finger Trees, let alone the correctness of their implementation. We present a certified implementation of Finger Trees solving these problems using the Program extension of Coq. We not only implement the structure but also prove its invariants along the way, which permit building certified structures on top of Finger Trees in an elegant way.