Extracting Purely Functional Contents from Logical Inductive Types

  • David Delahaye
  • Catherine Dubois
  • Jean-Frédéric Étienne
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4732)


We propose a method to extract purely functional contents from logical inductive types in the context of the Calculus of Inductive Constructions. This method is based on a mode consistency analysis, which verifies if a computation is possible w.r.t. the selected inputs/outputs, and the code generation itself. We prove that this extraction is sound w.r.t. the Calculus of Inductive Constructions. Finally, we present some optimizations, as well as the implementation designed in the coq proof assistant framework.


Functional Program Proof Assistant Inductive Type Evaluation Context Inductive Construction 
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.
    Attali, I., Parigot, D.: Integrating Natural Semantics and Attribute Grammars: the Minotaur System. Technical Report 2339, INRIA (1994)Google Scholar
  2. 2.
    Berghofer, S., Nipkow, T.: Executing Higher Order Logic. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 24–40. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. 3.
    Borras, P., Clément, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the System. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (PSDE) 24(2), 14–24 (1988)CrossRefGoogle Scholar
  4. 4.
    Dubois, C., Gayraud, R.: Compilation de la sémantique naturelle vers ML. In: Weis, P. (ed.) Journées Francophones des Langages Applicatifs (JFLA), Morzine-Avoriaz (France) (February 1999)Google Scholar
  5. 5.
    Hermenegildo, M.V., Puebla, G., Bueno, F., López-García, P.: Integrated Program Debugging, Verification, and Optimization using Abstract Interpretation (and the Ciao System Preprocessor). Science of Computer Programming 58(1-2), 115–140 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Letouzey, P.: A New Extraction for Coq. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 200–219. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Overton, D., Somogyi, Z., Stuckey, P.J.: Constraint-based Mode Analysis of Mercury. In: Principles and Practice of Declarative Programming (PPDP), Pittsburgh (PA, USA), October 2002, pp. 109–120. ACM Press, New York (2002)Google Scholar
  8. 8.
    Pettersson, M.: A Compiler for Natural Semantics. In: Gyimóthy, T. (ed.) CC 1996. LNCS, vol. 1060, pp. 177–191. Springer, Heidelberg (1996)Google Scholar
  9. 9.
    Stärk, R.F.: Input/Output Dependencies of Normal Logic Programs. Journal of Logic and Computation 4(3), 249–262 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    The Coq Development Team: Coq, version 8.1. INRIA (November 2006), available at:
  11. 11.
    The Cristal Team: Objective Caml, version 3.09.3. INRIA (September 2006), available at:
  12. 12.
    Verdejo, A., Martí-Oliet, N.: Executable Structural Operational Semantics in Maude. Journal of Logic and Algebraic Programming 67(1-2), 226–293 (2006)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • David Delahaye
    • 1
  • Catherine Dubois
    • 1
  • Jean-Frédéric Étienne
    • 1
  1. 1.CEDRIC/CNAM-ENSIIE, ParisFrance

Personalised recommendations