×

Pure pattern calculus à la de Bruijn. (English) Zbl 07313967

Nalon, Cláudia (ed.) et al., Proceedings of the 15th international workshop on logical and semantic frameworks, with applications, LSFA 2020, virtual workshop, August 27–28, 2020. Amsterdam: Elsevier. Electron. Notes Theor. Comput. Sci. 351, 95-113 (2020).
Summary: It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the \(\lambda\)-calculus. The advantage of this approach relies on the fact that so-called \(\alpha\)-equivalence becomes syntactical equality when working with indices.
In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with \(\alpha\)-conversion and binders capturing simultaneously several variable names. Such is the case of the Pure Pattern Calculus (PPC): a natural extension of \(\lambda\)-calculus that allows to abstract virtually any term.
This paper extends de Bruijn’s ideas to properly overcome the multi-binding problem by introducing a novel presentation of PPC with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on PPC that captures path polymorphism.
For the entire collection see [Zbl 1451.68025].

MSC:

68N18 Functional programming and lambda calculus
03B40 Combinatory logic and lambda calculus

References:

[1] Ayala-Rincón, M.; Bonelli, E.; Edi, J.; Viso, A., Typed path polymorphism, Theor. Comput. Sci., 781, 111-130 (2019) · Zbl 1423.68089
[2] Barendregt, H. P., The lambda calculus – its syntax and semantics, Studies in logic and the foundations of mathematics, vol. 103 (1985), North-Holland · Zbl 0597.03009
[3] Bonelli, E.; Kesner, D.; Lombardi, C.; Ríos, A., Normalisation for dynamic pattern calculi, (Tiwari, A., 23rd International Conference on Rewriting Techniques and Applications (RTA’12). 23rd International Conference on Rewriting Techniques and Applications (RTA’12), RTA 2012, May 28-June 2, 2012, Nagoya, Japan. 23rd International Conference on Rewriting Techniques and Applications (RTA’12). 23rd International Conference on Rewriting Techniques and Applications (RTA’12), RTA 2012, May 28-June 2, 2012, Nagoya, Japan, LIPIcs, vol. 15 (2012)), 117-132 · Zbl 1437.68040
[4] Bonelli, E.; Kesner, D.; Lombardi, C.; Ríos, A., On abstract normalisation beyond neededness, Theor. Comput. Sci., 672, 36-63 (2017) · Zbl 1387.68143
[5] Bonelli, E.; Kesner, D.; Ríos, A., de Bruijn indices for metaterms, J. Log. Comput., 15, 855-899 (2005) · Zbl 1085.68074
[6] Cerrito, S.; Kesner, D., Pattern matching as cut elimination, Theor. Comput. Sci., 323, 71-127 (2004) · Zbl 1078.68135
[7] Cirstea, H.; Kirchner, C., ρ-calculus. Its Syntax and Basic Properties, (CCL (1998)), 66-85
[8] de Bruijn, N. G., Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the church-rosser theorem, Indagationes Mathematicae, 75, 381-392 (1972) · Zbl 0253.68007
[9] de Bruijn, N. G., A namefree lambda calculus with facilities for internal definition of expressions and segments (1978), WSK, Dept. of Mathematics and Computing Science, Technische Hogeschool: WSK, Dept. of Mathematics and Computing Science, Technische Hogeschool Eindhoven, EUT report · Zbl 0423.68048
[10] Edi, J.; Viso, A.; Bonelli, E., Efficient type checking for path polymorphism, (Uustalu, T., 21st International Conference on Types for Proofs and Programs. 21st International Conference on Types for Proofs and Programs, TYPES 2015, May 18-21, 2015, Tallinn, Estonia. 21st International Conference on Types for Proofs and Programs. 21st International Conference on Types for Proofs and Programs, TYPES 2015, May 18-21, 2015, Tallinn, Estonia, LIPIcs, vol. 69 (2015)), 6:1-6:23 · Zbl 1433.68094
[11] Glauert, J. R.W.; Kesner, D.; Khasidashvili, Z., Expression reduction systems and extensions: An overview, (Middeldorp, A.; van Oostrom, V.; van Raamsdonk, F.; de Vrijer, R. C., Processes, Terms and Cycles: Steps on the Road to Infinity, Essays Dedicated to Jan Willem Klop, on the Occasion of His 60th Birthday. Processes, Terms and Cycles: Steps on the Road to Infinity, Essays Dedicated to Jan Willem Klop, on the Occasion of His 60th Birthday, Lecture Notes in Computer Science, vol. 3838 (2005)), 496-553 · Zbl 1171.68510
[12] Jay, B., The pattern calculus, ACM Trans. Program. Lang. Syst., 26, 911-937 (2004)
[13] Jay, B., Pattern Calculus - Computing with Functions and Structures (2009), Springer · Zbl 1215.68055
[14] Jay, B.; Kesner, D., Pure pattern calculus, (Sestoft, P., Programming Languages and Systems, 15th European Symposium on Programming. Programming Languages and Systems, 15th European Symposium on Programming, ESOP 2006, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2006, Vienna, Austria, March 27-28, 2006, Proceedings. Programming Languages and Systems, 15th European Symposium on Programming. Programming Languages and Systems, 15th European Symposium on Programming, ESOP 2006, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2006, Vienna, Austria, March 27-28, 2006, Proceedings, Lecture Notes in Computer Science, vol. 3924 (2006)), 100-114 · Zbl 1178.03039
[15] Jay, B.; Kesner, D., First-class patterns, J. Funct. Program., 19, 191-225 (2009) · Zbl 1163.68315
[16] W. Kahl, Basic pattern matching calculi: Syntax, reduction, confluence, and normalisation, 2003.
[17] Kamareddine, F.; Ríos, A., A lambda-calculus à la de Bruijn with explicit substitutions, (Hermenegildo, M. V.; Swierstra, S. D., Programming Languages: Implementations, Logics and Programs, 7th International Symposium. Programming Languages: Implementations, Logics and Programs, 7th International Symposium, PLILP’95, Utrecht, The Netherlands, September 20-22, 1995, Proceedings. Programming Languages: Implementations, Logics and Programs, 7th International Symposium. Programming Languages: Implementations, Logics and Programs, 7th International Symposium, PLILP’95, Utrecht, The Netherlands, September 20-22, 1995, Proceedings, Lecture Notes in Computer Science, vol. 982 (1995)), 45-62 · Zbl 1530.68028
[18] Klop, J. W.; van Oostrom, V.; de Vrijer, R. C., Lambda calculus with patterns, Theor. Comput. Sci., 398, 16-31 (2008) · Zbl 1145.68012
[19] Martín, A.; Ríos, A.; Viso, A., Pure pattern calculus à la de Bruijn (2020), Extended report · Zbl 07313967
[20] Mayr, R.; Nipkow, T., Higher-order rewrite systems and their confluence, Theor. Comput. Sci., 192, 3-29 (1998) · Zbl 0895.68078
[21] Melliès, P.-A., Description Abstraite des Systèmes de Réécriture (1996), Université Paris VII, Ph.D. thesis
[22] Nipkow, T., Higher-order critical pairs, (Proceedings of the Sixth Annual Symposium on Logic in Computer Science. Proceedings of the Sixth Annual Symposium on Logic in Computer Science, LICS ’91, Amsterdam, The Netherlands, July 15-18, 1991 (1991)), 342-349
[23] van Oostrom, V., Lambda calculus with patterns (1990), Vrije Universiteit: Vrije Universiteit Amsterdam, Technical Report IR-228
[24] van Oostrom, V.; van Raamsdonk, F., The dynamic pattern calculus as a higher-order pattern rewriting system, (7th International Workshop on Higher-Order Rewriting. 7th International Workshop on Higher-Order Rewriting, HOR 2014, Held as Vienna Summer of Logic, VSL 2014, Vienna, Austria, July 9-24, 2014. Proceedings (2014))
[25] van Raamsdonk, F., Confluence and Normalization for Higher-Order Rewriting (1996), Amsterdam University, Ph.D. thesis
[26] van Raamsdonk, F., Outermost-fair rewriting, (de Groote, P., Typed Lambda Calculi and Applications, Third International Conference on Typed Lambda Calculi and Applications. Typed Lambda Calculi and Applications, Third International Conference on Typed Lambda Calculi and Applications, TLCA ’97, Nancy, France, April 2-4, 1997, Proceedings. Typed Lambda Calculi and Applications, Third International Conference on Typed Lambda Calculi and Applications. Typed Lambda Calculi and Applications, Third International Conference on Typed Lambda Calculi and Applications, TLCA ’97, Nancy, France, April 2-4, 1997, Proceedings, Lecture Notes in Computer Science, vol. 1210 (1997)), 284-299 · Zbl 1063.68593
[27] Viso, A., Un estudio semántico sobre extensiones avanzadas del λ-cálculo: patrones y operadores de control (2020), Universidad de Buenos Aires, Ph.D. thesis
[28] Viso, A.; Bonelli, E.; Ayala-Rincón, M., Type soundness for path polymorphism, (Benevides, M. R.F.; Thiemann, R., Proceedings of the Tenth Workshop on Logical and Semantic Frameworks, with Applications. Proceedings of the Tenth Workshop on Logical and Semantic Frameworks, with Applications, LSFA 2015, Natal, Brazil, August 31-September 1, 2015. Proceedings of the Tenth Workshop on Logical and Semantic Frameworks, with Applications. Proceedings of the Tenth Workshop on Logical and Semantic Frameworks, with Applications, LSFA 2015, Natal, Brazil, August 31-September 1, 2015, Electronic Notes in Theoretical Computer Science, vol. 323 (2015)), 235-251 · Zbl 1390.68170
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.