Matching Modulo Superdevelopments Application to Second-Order Matching

  • Germain Faure
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4246)


To perform higher-order matching, we need to decide the βη-equivalence on λ-terms. The first way to do it is to use simply typed λ-calculus and this is the usual framework where higher-order matching is performed. Another approach consists in deciding a restricted equivalence based on finite superdevelopments. We consider higher-order matching modulo this equivalence over untyped λ-terms for which we propose a terminating, sound and complete matching algorithm.

This is in particular of interest since all second-order β-matches are matches modulo superdevelopments. We further propose a restriction to second-order matching that gives exactly all second-order matches.


Free Variable Transformation Rule Program Transformation Matching Variable Complete Match 
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. [Acz78]
    Aczel, P.: A general church rosser theorem. Technical report, University of Mancherster (July 1978)Google Scholar
  2. [Ali05]
    Alias, C.: Program Optimization by Template Recognition and Replacement. PhD thesis, University of Versailles, Versailles, France (December 2005)Google Scholar
  3. [Bar84]
    Barendregt, H.: The Lambda-Calculus, its syntax and semantics. Elsevier Science Publishers B.V., North-Holland (1984)MATHGoogle Scholar
  4. [CLW03]
    Cirstea, H., Liquori, L., Wack, B.: Rewriting calculus with fixpoints: Untyped and first-order systems. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 147–161. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. [DHK00]
    Dowek, G., Hardin, T., Kirchner, C.: Higher-order unification via explicit substitutions. Information and Computation 157(1/2), 183–235 (2000)MATHCrossRefMathSciNetGoogle Scholar
  6. [dMS01]
    de Moor, O., Sittampalam, G.: Higher-order matching for program transformation. Theoretical Computer Science 269 (2001)Google Scholar
  7. [Dow01]
    Dowek, G.: Higher-order unification and matching. In: Handbook of Automated Reasoning. Elsevier, Amsterdam (2001)Google Scholar
  8. [DSP91]
    Dalrymple, M., Shieber, S.M., Pereira, F.: Ellipsis and higher-order unification. Linguistics and Philosophy 14, 399–452 (1991)CrossRefGoogle Scholar
  9. [GS89]
    Gallier, J., Snyder, W.: Higher-order unification revisited: Complete sets of transformations. JSCOMP: Journal of Symbolic Computation 8 (1989)Google Scholar
  10. [HL78]
    Huet, G., Lang, B.: Proving and applying program transformations expressed with second-order patterns. Acta Informatica (1978)Google Scholar
  11. [JK06]
    Jay, C.B., Kesner, D.: Pure pattern calculus. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 100–114. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. [KvOvR93]
    Klop, van Oostrom, and van Raamsdonk: Combinatory reduction systems: Introduction and survey. TCS: Theoretical Computer Science, 121 (1993)Google Scholar
  13. [Lév78]
    Lévy, J.-J.: Reductions Correctes et Optimales dans le Lambda-Calcul. Ph.D. thesis, Université de Paris (1978)Google Scholar
  14. [Mil90]
    Miller, D.: Higher-order logic programming. In: Int. Conf. on Logic Programming, p. 784 (1990)Google Scholar
  15. [Mil91]
    Miller, D.: A logic programming language wiith lambda-abstraction, function variables, and simple unification. Jour. of Log. and Comp. (1991)Google Scholar
  16. [MN98]
    Mayr, R., Nipkow, T.: Higher-order rewrite systems and their confluence. Theoretical Computer Science, 192 (1998)Google Scholar
  17. [MRV03]
    Moreau, P.-E., Ringeissen, C., Vittek, M.: A pattern matching compiler for multiple target languages. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 61–76. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. [NP98]
    Nipkow, T., Prehofer, C.: Higher-order rewriting and equational reasoning. In: Automated Deduction: A Basis for Applications. Kluwer, Dordrecht (1998)Google Scholar
  19. [Oos94]
    Oostrom, V.V.: Confluence for abstract and higher-order rewriting. PhD thesis, Vrije Universiteit (1994)Google Scholar
  20. [Pfe01]
    Pfenning, F.: Logical frameworks. In: Handbook of Automated Reasoning, vol. II ch. 17, pp. 1063–1147. Elsevier Science, Amsterdam (2001)CrossRefGoogle Scholar
  21. [Qia96]
    Qian, Z.: Unification of higher-order patterns in linear time and space. J. Log. Comput. (1996)Google Scholar
  22. [Shi94]
    Shi, H.: Extended matching with applications to program transformation. PhD thesis, Universität Bremen (1994)Google Scholar
  23. [Sit01]
    Sittampalam, G.: Higher-order Matching for Program Transformation. PhD thesis, Magdalen College (2001)Google Scholar
  24. [Vis05]
    Visser, E.: A survey of strategies in rule-based program transformation systems. Journal of Symbolic Computation 40(1) (2005)Google Scholar
  25. [vOvR93]
    van Oostrom, V., van Raamsdonk, F.: HOA 1993. LNCS, vol. 816. Springer, Heidelberg (1993)Google Scholar
  26. [vR93]
    van Raamsdonk, F.: Confluence and superdevelopments. Rewriting Techniques and Applications (1993)Google Scholar
  27. [Wac06]
    Wack, B.: A Curry-Howard-De Bruijn Isomorphism Modulo (Under submission) (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Germain Faure
    • 1
  1. 1.Université Henri Poincaré & LORIAVandoeuvre-lès-NancyFrance

Personalised recommendations