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 


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