skip to main content

Quantitative Inhabitation for Different Lambda Calculi in a Unifying Framework

Published:11 January 2023Publication History
Skip Abstract Section

Abstract

We solve the inhabitation problem for a language called λ!, a subsuming paradigm (inspired by call-by-push-value) being able to encode, among others, call-by-name and call-by-value strategies of functional programming. The type specification uses a non-idempotent intersection type system, which is able to capture quantitative properties about the dynamics of programs. As an application, we show how our general methodology can be used to derive inhabitation algorithms for different lambda-calculi that are encodable into λ!.

References

  1. Beniamino Accattoli, Stéphane Graham-Lengrand, and Delia Kesner. 2020. Tight typings and split bounds, fully developed. J. Funct. Program., 30 (2020), e14. https://doi.org/10.1017/S095679682000012X Google ScholarGoogle ScholarCross RefCross Ref
  2. Beniamino Accattoli and Giulio Guerrieri. 2022. Call-by-Value Solvability and Multi Types. CoRR, abs/2202.03079 (2022), arXiv:2202.03079. arxiv:2202.03079 Google ScholarGoogle Scholar
  3. Beniamino Accattoli and Giulio Guerrieri. 2022. The theory of call-by-value solvability. Proc. ACM Program. Lang., 6, ICFP (2022), 855–885. https://doi.org/10.1145/3547652 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beniamino Accattoli and Delia Kesner. 2010. The structural lambda-calculus. In Proceedings of 24th EACSL Conference on Computer Science Logic, Anuj Dawar and Helmut Veith (Eds.) (LNCS, Vol. 6247). Springer, 381–395. Google ScholarGoogle Scholar
  5. Beniamino Accattoli and Luca Paolini. 2012. Call-by-Value Solvability, Revisited. In FLOPS, Tom Schrijvers and Peter Thiemann (Eds.) (LNCS, Vol. 7294). Springer, 4–16. Google ScholarGoogle Scholar
  6. Victor Arrial. 2023. An Implementation of the Quantitative Inhabitation for Different Lambda Calculi in a Unifying Framework. https://github.com/ArrialVictor/InhabitationLambdaBang Google ScholarGoogle Scholar
  7. Henk Barendregt. 1984. The Lambda Calculus: Its Syntax and Semantics (revised ed.) (Studies in logic and the foundation of mathematics, Vol. 103). North-Holland, Amsterdam. Google ScholarGoogle Scholar
  8. Jan Bessai. 2013. Synthesizing Dependency Injection Configurations for the Spring Framework. Master’s thesis. Technical University of Dortmund. Google ScholarGoogle Scholar
  9. Jan Bessai, Tzu-Chun Chen, Andrej Dudenhefner, Boris Düdder, Ugo de’Liguoro, and Jakob Rehof. 2018. Mixin Composition Synthesis based on Intersection Types. Log. Methods Comput. Sci., 14, 1 (2018), https://doi.org/10.23638/LMCS-14(1:18)2018 Google ScholarGoogle ScholarCross RefCross Ref
  10. Jan Bessai, Andrej Dudenhefner, Boris Düdder, Moritz Martens, and Jakob Rehof. 2014. Combinatory Logic Synthesizer. In Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change, Tiziana Margaria and Bernhard Steffen (Eds.). 8802, Springer Berlin Heidelberg, Berlin, Heidelberg. 26–40. isbn:978-3-662-45233-2 978-3-662-45234-9 https://doi.org/10.1007/978-3-662-45234-9_3 Series Title: Lecture Notes in Computer Science Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Antonio Bucciarelli, Delia Kesner, Alejandro Ríos, and Andrés Viso. 2020. The Bang Calculus Revisited. In Functional and Logic Programming - 15th International Symposium, FLOPS 2020, Akita, Japan, September 14-16, 2020, Proceedings, Keisuke Nakano and Konstantinos Sagonas (Eds.) (Lecture Notes in Computer Science, Vol. 12073). Springer, 13–32. isbn:978-3-030-59024-6 https://doi.org/10.1007/978-3-030-59025-3 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Antonio Bucciarelli, Delia Kesner, and Simona Ronchi Della Rocca. 2014. The Inhabitation Problem for Non-idempotent Intersection Types. In Theoretical Computer Science - 8th IFIP TC 1/WG 2.2 International Conference, TCS 2014, Rome, Italy, September 1-3, 2014. Proceedings, Josep Díaz, Ivan Lanese, and Davide Sangiorgi (Eds.) (Lecture Notes in Computer Science, Vol. 8705). Springer, 341–354. https://doi.org/10.1007/978-3-662-44602-7_26 Google ScholarGoogle ScholarCross RefCross Ref
  13. Antonio Bucciarelli, Delia Kesner, and Simona Ronchi Della Rocca. 2021. Solvability = Typability + Inhabitation. Logical Methods in Computer Science, Volume 17, Issue 1 (2021), Jan., https://doi.org/10.23638/LMCS-17(1:7)2021 Google ScholarGoogle ScholarCross RefCross Ref
  14. Antonio Bucciarelli, Delia Kesner, and Simona Ronchi Della Rocca. 2018. Inhabitation for Non-idempotent Intersection Types. Logical Methods in Computer Science, 14, 3 (2018), https://doi.org/10.23638/LMCS-14(3:7)2018 Google ScholarGoogle ScholarCross RefCross Ref
  15. Alberto Carraro and Giulio Guerrieri. 2014. A Semantical and Operational Account of Call-by-Value Solvability. In Foundations of Software Science and Computation Structures - 17th International Conference, FOSSACS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014, Proceedings, Anca Muscholl (Ed.) (Lecture Notes in Computer Science, Vol. 8412). Springer, 103–118. https://doi.org/10.1007/978-3-642-54830-7_7 Google ScholarGoogle ScholarCross RefCross Ref
  16. Iliano Cervesato, Joshua S. Hodas, and Frank Pfenning. 2000. Efficient resource management for linear logic proof search. Theoretical Computer Science, 232, 1 (2000), Feb., 133–163. issn:0304-3975 https://doi.org/10.1016/S0304-3975(99)00173-5 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Hubert Comon, Max Dauchet, Rémi Gilleron, Florent Jacquemard, Denis Lugiez, Christof Löding, Sophie Tison, and Marc Tommasi. 2008. Tree Automata Techniques and Applications. https://hal.inria.fr/hal-03367725 Google ScholarGoogle Scholar
  18. Mario Coppo and Mariangiola Dezani-Ciancaglini. 1978. A new type assignment for λ -terms. Archiv für mathematische Logik und Grundlagenforschung, 19, 1 (1978), 139–156. https://doi.org/10.1007/BF02011875 Google ScholarGoogle ScholarCross RefCross Ref
  19. Mario Coppo and Mariangiola Dezani-Ciancaglini. 1980. An extension of the basic functionality theory for the λ -calculus. Notre Dame J. Formal Log., 21, 4 (1980), 685–693. https://doi.org/10.1305/ndjfl/1093883253 Google ScholarGoogle ScholarCross RefCross Ref
  20. Mario Coppo, Mariangiola Dezani-Ciancaglini, and Betti Venneri. 1981. Functional Characters of Solvable Terms. Math. Log. Q., 27, 2-6 (1981), 45–58. https://doi.org/10.1002/malq.19810270205 Google ScholarGoogle ScholarCross RefCross Ref
  21. Daniel de Carvalho. 2007. Sémantiques de la logique linéaire et temps de calcul. Ph. D. Dissertation. Université Aix-Marseille II. Google ScholarGoogle Scholar
  22. Daniel de Carvalho. 2018. Execution time of λ -terms via denotational semantics and intersection types. Math. Struct. Comput. Sci., 28, 7 (2018), 1169–1203. https://doi.org/10.1017/S0960129516000396 Google ScholarGoogle ScholarCross RefCross Ref
  23. Boris Düdder. 2014. Automatic Synthesis of Component & Connector-Software Architectures with Bounded Combinatory Logic. Ph. D. Dissertation. https://doi.org/10.17877/DE290R-6528 Google ScholarGoogle ScholarCross RefCross Ref
  24. Thomas Ehrhard. 2016. Call-By-Push-Value from a Linear Logic Point of View. In Programming Languages and Systems - 25th European Symposium on Programming, ESOP 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016, Proceedings, Peter Thiemann (Ed.) (Lecture Notes in Computer Science, Vol. 9632). Springer, 202–228. https://doi.org/10.1007/978-3-662-49498-1_9 Google ScholarGoogle ScholarCross RefCross Ref
  25. Thomas Ehrhard and Giulio Guerrieri. 2016. The Bang Calculus: an untyped lambda-calculus generalizing call-by-name and call-by-value. In Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming, Edinburgh, United Kingdom, September 5-7, 2016, James Cheney and Germán Vidal (Eds.). ACM, 174–187. https://doi.org/10.1145/2967973.2968608 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Claudia Faggian and Giulio Guerrieri. 2021. Factorization in Call-by-Name and Call-by-Value Calculi via Linear Logic. In Foundations of Software Science and Computation Structures - 24th International Conference, FOSSACS 2021, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021, Luxembourg City, Luxembourg, March 27 - April 1, 2021, Proceedings, Stefan Kiefer and Christine Tasson (Eds.) (Lecture Notes in Computer Science, Vol. 12650). Springer, 205–225. isbn:978-3-030-71994-4 https://doi.org/10.1007/978-3-030-71995-1_11 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Philippa Gardner. 1994. Discovering needed reductions using type theory. In Theoretical Aspects of Computer Software, Masami Hagiya and John C. Mitchell (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 555–574. isbn:978-3-540-48383-0 Google ScholarGoogle Scholar
  28. Jean-Yves Girard. 1987. Linear Logic. Theor. Comput. Sci., 50 (1987), 1–102. https://doi.org/10.1016/0304-3975(87)90045-4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Giulio Guerrieri and Giulio Manzonetto. 2018. The Bang Calculus and the Two Girard’s Translations. In Proceedings Joint International Workshop on Linearity & Trends in Linear Logic and Applications, [email protected] 2018 (EPTCS, Vol. 292). 15–30. https://doi.org/10.4204/EPTCS.292.2 Google ScholarGoogle ScholarCross RefCross Ref
  30. Giulio Guerrieri and Federico Olimpieri. 2021. Categorifying Non-Idempotent Intersection Types. In 29th EACSL Annual Conference on Computer Science Logic, CSL 2021, January 25-28, 2021, Ljubljana, Slovenia (Virtual Conference), Christel Baier and Jean Goubault-Larrecq (Eds.) (LIPIcs, Vol. 183). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 25:1–25:24. https://doi.org/10.4230/LIPIcs.CSL.2021.25 Google ScholarGoogle ScholarCross RefCross Ref
  31. Joshua S. Hodas and Dale Miller. 1994. Logic Programming in a Fragment of Intuitionistic Linear Logic. Information and Computation, 110, 2 (1994), May, 327–365. issn:0890-5401 https://doi.org/10.1006/inco.1994.1036 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Jack Hughes and Dominic Orchard. 2020. Resourceful Program Synthesis from Graded Linear Types. In Logic-Based Program Synthesis and Transformation: 30th International Symposium, LOPSTR 2020, Bologna, Italy, September 7–9, 2020, Proceedings. Springer-Verlag, Berlin, Heidelberg. 151–170. isbn:978-3-030-68445-7 https://doi.org/10.1007/978-3-030-68446-4_8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Axel Kerinec, Giulio Manzonetto, and Simona Ronchi Della Rocca. 2021. Call-By-Value, Again!. In 6th International Conference on Formal Structures for Computation and Deduction, FSCD 2021, July 17-24, 2021, Buenos Aires, Argentina (Virtual Conference), Naoki Kobayashi (Ed.) (LIPIcs, Vol. 195). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 7:1–7:18. https://doi.org/10.4230/LIPIcs.FSCD.2021.7 Google ScholarGoogle ScholarCross RefCross Ref
  34. Delia Kesner and Andrés Viso. 2021. Encoding Tight Typing in a Unified Framework. CoRR, abs/2105.00564 (2021), arxiv:2105.00564. arxiv:2105.00564 Google ScholarGoogle Scholar
  35. Jan Willem Klop, Vincent van Oostrom, and Femke van Raamsdonk. 1993. Combinatory Reduction Systems: Introduction and Survey. Theor. Comput. Sci., 121, 1&2 (1993), 279–308. https://doi.org/10.1016/0304-3975(93)90091-7 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Paul Blain Levy. 1999. Call-by-Push-Value: A Subsuming Paradigm. In Typed Lambda Calculi and Applications, Jean-Yves Girard (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 228–243. isbn:978-3-540-48959-7 https://doi.org/10.1007/3-540-48959-2_17 Google ScholarGoogle ScholarCross RefCross Ref
  37. Zohar Manna and Richard J. Waldinger. 1980. A Deductive Approach to Program Synthesis. ACM Trans. Program. Lang. Syst., 2, 1 (1980), 90–121. https://doi.org/10.1145/357084.357090 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Dale Miller, Gopalan Nadathur, Frank Pfenning, and Andre Scedrov. 1991. Uniform Proofs as a Foundation for Logic Programming. Ann. Pure Appl. Log., 51, 1-2 (1991), 125–157. https://doi.org/10.1016/0168-0072(91)90068-W Google ScholarGoogle ScholarCross RefCross Ref
  39. Robin Milner. 1978. A Theory of Type Polymorphism in Programming. J. Comput. System Sci., 17, 3 (1978), 348–375. Google ScholarGoogle ScholarCross RefCross Ref
  40. Dominic Orchard, Vilem-Benjamin Liepelt, and Harley Eades III. 2019. Quantitative program reasoning with graded modal types. Proceedings of the ACM on Programming Languages, 3, ICFP (2019), 110:1–110:30. https://doi.org/10.1145/3341714 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Luca Paolini and Simona Ronchi Della Rocca. 1999. Call-By-Value Solvability. RAIRO Theoretical Informatics and Applications, 33, 6 (1999), 507–534. https://doi.org/10.1051/ita:1999130 Google ScholarGoogle ScholarCross RefCross Ref
  42. S Plate. 2013. Automatische Generierung einer Konfiguration fur virtuelle Maschinen unter Zuhilfenahme eines Inhabitationsalgorithmus. Universität Dortmund, Department of Computer Science. Google ScholarGoogle Scholar
  43. Gordon D. Plotkin. 1975. Call-by-Name, Call-by-Value and the lambda-Calculus. Theor. Comput. Sci., 1, 2 (1975), 125–159. https://doi.org/10.1016/0304-3975(75)90017-1 Google ScholarGoogle ScholarCross RefCross Ref
  44. Garrel Pottinger. 1980. A type assignment for the strongly normalizable λ -terms. In To H.B.Curry: Essays on Combinatory Logic, Lambda-calculus and Formalism. Academic Press, 561–577. Google ScholarGoogle Scholar
  45. Pawel Urzyczyn. 1999. The Emptiness Problem for Intersection Types. Journal of Symbolic Logic, 64, 3 (1999), 1195–1215. https://doi.org/10.2307/2586625 Google ScholarGoogle ScholarCross RefCross Ref
  46. Anna Vasileva. 2013. Synthese von Orchestrationscode für Cloud-basierte Dienste. Ph. D. Dissertation. Universität Dortmund, Fakultät Informatik. Google ScholarGoogle Scholar
  47. P Wolf. 2013. Entwicklung einer Adapters mit VI Scripting (LabVIEW) zur Synthese von LEGO(R) NXT-VIs aus einem Repository. Universität Dortmund, Department of Computer Science. Google ScholarGoogle Scholar

Index Terms

  1. Quantitative Inhabitation for Different Lambda Calculi in a Unifying Framework

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Article Metrics

        • Downloads (Last 12 months)127
        • Downloads (Last 6 weeks)13

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!