skip to main content
10.1007/978-981-97-2300-3_15guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Language-parameterized Proofs for Functional Languages with Subtyping

Published: 21 June 2024 Publication History

Abstract

Language designers often strive to prove that their programming languages satisfy the properties that were intended at the time of design. LANG-N-PROVE is a DSL for expressing language-parametrized proofs, that is, proofs that apply to classes of languages rather than a single language. Prior work has used LANG-N-PROVE to express the language-parametrized proofs of type soundness (excluding the substitution lemmas) for a certain class of functional languages. In this paper, we address this class of languages when subtyping is added to them. We provide the language-parametrized proofs of their type soundness (excluding the substitution lemmas) and of the equivalence between algorithmic and declarative subtyping. To express these proofs naturally, we have extended LANG-N-PROVE with new operations. Our extension of LANG-N-PROVE generates Abella proofs that machine-check the type soundness of a nontrivial class of functional languages with declarative and algorithmic subtyping, when just a few simple lemmas are admitted.

References

[1]
Altenkirch T and Reus B Flum J and Rodriguez-Artalejo M Monadic presentations of lambda terms using generalized inductive types Computer Science Logic 1999 Heidelberg Springer 453-468
[2]
Appel AW and Leroy X A list-machine benchmark for mechanized metatheory: (extended abstract) Electron. Notes Theor. Comput. Sci. 2007 174 5 95-108
[3]
Bach Poulsen, C., Rouvoet, A., Tolmach, A., Krebbers, R., Visser, E.: Intrinsically-typed definitional interpreters for imperative languages. In: Proceedings of the ACM on Programming Languages (PACMPL), vol. 2, no. POPL, December 2017.
[4]
Baelde D et al. Abella: a system for reasoning about relational specifications J. Formaliz. Reason. 2014 7 2 1-89
[5]
Benton N, Hur C, Kennedy A, and McBride C Strongly typed term representations in Coq J. Autom. Reason. 2012 49 2 141-159
[6]
Church A A formulation of the simple theory of types J. Symb. Log. 1940 5 56-68
[7]
Cimini M Bowman WJ and Garcia R Early experience in teaching the basics of functional language design with a language type checker Trends in Functional Programming 2020 Cham Springer 21-37
[8]
Cimini, M.: Lang-n-prove: a DSL for language proofs. In: Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2022, New York, NY, USA, pp. 16–29. Association for Computing Machinery (2022).
[9]
Cimini M Ábrahám E, Dubslaff C, and Tarifa SLT Towards the complexity analysis of programming language proof methods Theoretical Aspects of Computing – ICTAC 2023 2023 Cham Springer 100-118
[10]
Cimini, M., Miller, D., Siek, J.G.: Extrinsically typed operational semantics for functional languages. In: Lämmel, R., Tratt, L., de Lara, J. (eds.) Proceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2020, Virtual Event, USA, 16–17 November 2020, pp. 108–125. ACM (2020).
[11]
Dummett M Frege: Philosophy of Language 1993 2 Cambridge Harvard University Press
[12]
Galasso, S., Cimini, M.: Extension of the lang-n-prove tool (2023). GitHub repo of the Lang-n-Prove tool at https://github.com/mcimini/lang-n-prove
[13]
Grewe, S., Erdweg, S., Mezini, M.: Using vampire in soundness proofs of type systems. In: Kovács, L., Voronkov, A. (eds.) Proceedings of the 1st and 2nd Vampire Workshops. EPiC Series in Computing, vol. 38, pp. 33–51. EasyChair (2016).
[14]
Grewe, S., Erdweg, S., Mezini, M.: Automating proof steps of progress proofs: comparing Vampire and Dafny. In: Kovács, L., Voronkov, A. (eds.) Vampire 2016. Proceedings of the 3rd Vampire Workshop. EPiC Series in Computing, vol. 44, pp. 33–45. EasyChair (2017).
[15]
Grewe, S., Erdweg, S., Wittmann, P., Mezini, M.: Type systems for the masses: deriving soundness proofs and efficient checkers. In: Murphy, G.C., Steele, G.L., Jr. (eds.) 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), Onward! 2015, New York, NY, USA, pp. 137–150. ACM (2015).
[16]
Harper, R., Stone, C.: A type-theoretic interpretation of Standard ML. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language, and Interaction: Essays in Honor of Robin Milner. MIT Press (2000).
[17]
Mourad B, Cimini M, et al. Chatzigeorgiou A et al. A calculus for language transformations SOFSEM 2020: Theory and Practice of Computer Science 2020 Cham Springer 547-555
[18]
Mourad B and Cimini M Nakano K and Sagonas K System description: lang-n-change - a tool for transforming languages Functional and Logic Programming 2020 Cham Springer 198-214
[19]
Pfenning, F.: Lecture notes on harmony (lecture 3) 15-317: constructive logic (2009). https://www.cs.cmu.edu/~fp/courses/15317-f09/lectures/03-harmony.pdf
[20]
Pfenning F and Schürmann C System description: Twelf — a meta-logical framework for deductive systems Automated Deduction — CADE-16 1999 Heidelberg Springer 202-206
[21]
Pierce BC Types and Programming Languages 2002 Cambridge MIT Press
[22]
van der Rest, C., Poulsen, C.B., Rouvoet, A., Visser, E., Mosses, P.: Intrinsically-typed definitional interpreters à la carte. In: Proceedings of the ACM on Programming Languages (PACMPL), vol. 6, no. OOPSLA2, October 2022.
[23]
Rouvoet, A., Bach Poulsen, C., Krebbers, R., Visser, E.: Intrinsically-typed definitional interpreters for linear, session-typed languages. In: Blanchette, J., Hritcu, C. (eds.) Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2020, New Orleans, LA, USA, 20–21 January 2020, pp. 284–298. ACM (2020).
[24]
Sewell P et al. Ott: effective tool support for the working semanticist J. Funct. Program. 2010 20 1 71-122
[25]
Tait WW Intensional interpretations of functionals of finite type I J. Symb. Log. 1967 32 2 198-212
[26]
Thiemann, P.: Intrinsically-typed mechanized semantics for session types. In: Komendantskaya, E. (ed.) Proceedings of the 21st International Symposium on Principles and Practice of Declarative Programming, PPDP 2019, New York, NY, USA, pp. 19:1–19:15. Association for Computing Machinery (2019).

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Functional and Logic Programming: 17th International Symposium, FLOPS 2024, Kumamoto, Japan, May 15–17, 2024, Proceedings
May 2024
335 pages
ISBN:978-981-97-2299-0
DOI:10.1007/978-981-97-2300-3
  • Editors:
  • Jeremy Gibbons,
  • Dale Miller

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 21 June 2024

Author Tags

  1. Type safety
  2. Subtyping
  3. Functional languages

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media