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.
[1]
Alan Bundy,et al.
Constructing Induction Rules for Deductive Synthesis Proofs
,
2006,
CLASE.
[2]
Robert L. Constable,et al.
Automated computational complexity analysis
,
2001
.
[3]
Ralph Benzinger,et al.
Automated complexity analysis of Nuprl extracted programs
,
2001,
Journal of Functional Programming.
[4]
R. Simmons,et al.
Complexity Analysis of
,
1993
.
[5]
Pierre Letouzey,et al.
Programmation fonctionnelle certifiée : L'extraction de programmes dans l'assistant Coq. (Certified functional programming : Program extraction within Coq proof assistant)
,
2004
.