Certifying and Reasoning on Cost Annotations of Functional Programs

  • Roberto M. Amadio
  • Yann Régis-Gianas
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7177)


We present a so-called labelling method to insert cost annotations in a higher-order functional program, to certify their correctness with respect to a standard compilation chain to assembly code, and to reason on them in a higher-order Hoare logic.


Functional Program Proof Obligation Source Program Execution Cost Functional Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Amadio, R.M., Ayache, N., Régis-Gianas, Y., Saillard, R.: Certifying cost annotations in compilers. Université Paris Diderot, Research Report (2010),
  2. 2.
    Amadio, R.M., Régis-Gianas, Y.: Certifying and reasoning on cost annotations of functional programs Université Paris Diderot, Research Report (2011),
  3. 3.
    AbsInt Angewandte Informatik,
  4. 4.
    Bonenfant, A., Ferdinand, C., Hammond, K., Heckmann, R.: Worst-Case Execution Times for a Purely Functional Language. In: Horváth, Z., Zsók, V., Butterfield, A. (eds.) IFL 2006. LNCS, vol. 4449, pp. 235–252. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Chlipala, A.: A verified compiler for an impure functional language. In: Proc. ACM-POPL, pp. 93–106 (2010)Google Scholar
  6. 6.
    The Coq Development Team. The Coq Proof Assistant. INRIA-Rocquencourt (December 2001),
  7. 7.
    Gurr, D.: Semantic frameworks for complexity. PhD thesis, University of Edinburgh (1991)Google Scholar
  8. 8.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  9. 9.
    Morrisett, J., Walker, D., Crary, K., Glew, N.: From system F to typed assembly language. ACM Trans. Program. Lang. Syst. 21(3), 527–568 (1999)CrossRefGoogle Scholar
  10. 10.
    Perlis, A.: Epigrams on programming. SIGPLAN Notices 17(9), 7–13 (1982)CrossRefGoogle Scholar
  11. 11.
    Plotkin, G.: Call-by-name, Call-by-value and the lambda-Calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
    Régis-Gianas, Y., Pottier, F.: A Hoare Logic for Call-by-Value Functional Programs. In: Audebaud, P., Paulin-Mohring, C. (eds.) MPC 2008. LNCS, vol. 5133, pp. 305–335. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  13. 13.
    Sands, D.: Complexity Analysis for a Lazy Higher-Order Language. In: Jones, N.D. (ed.) ESOP 1990. LNCS, vol. 432, pp. 361–376. Springer, Heidelberg (1990)CrossRefGoogle Scholar
  14. 14.
    Régis-Gianas, Y.: An annotating compiler for MiniML,

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Roberto M. Amadio
    • 1
  • Yann Régis-Gianas
    • 1
    • 2
  1. 1.Université Paris Diderot (UMR-CNRS 7126)France
  2. 2.INRIA (Team PI.R2)France

Personalised recommendations