Automatic Complexity Analysis for Programs Extracted from Coq Proof

  • Authors:
  • Jean-Pierre Jouannaud;Weiwen Xu

  • Affiliations:
  • LIX, École Polytechnique, 91400 Palaiseau, France;LIX, École Polytechnique, 91400 Palaiseau, France

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.01

Visualization

Abstract

We describe an automatic complexity analysis mechanism for programs extracted from proofs carried out with the proof assistant Coq. By extraction, we mean the automatic generation of MiniML code [Pierre Letouzey. Programmation fonctionnelle certifiee - l'extraction de programmes dans l'asistant coq. Technical report, 2004]. By complexity analysis, we mean the automatic generation of a description of the time-complexity of a MiniML program in terms of the number of steps needed for its execution. This description can be a natural number for closed program, that is, programs coming along with their actual inputs. For programs per se, the description is given in terms of a set of recurrence relations which relate the number of steps of a computation in terms of the size of the inputs. Going from these recurrence relation to actual complexity functions is a hard task that requires the use of sophisticated tools for symbolic computations. This part is not implemented for the moment although we have manually used the MAPLE computer algebra system in some cases.