English

From Program Logics to Language Logics

Programming Languages 2024-08-06 v1

Abstract

Program logics are a powerful formal method in the context of program verification. Can we develop a counterpart of program logics in the context of language verification? This paper proposes language logics, which allow for statements of the form {P} X {Q}\{P\}\ \mathcal{X}\ \{Q\} where X\mathcal{X}, the subject of analysis, can be a language component such as a piece of grammar, a typing rule, a reduction rule or other parts of a language definition. To demonstrate our approach, we develop L\mathbb{L}, a language logic that can be used to analyze language definitions on various aspects of language design. We illustrate L\mathbb{L} to the analysis of some selected aspects of a programming language. We have also implemented an automated prover for L\mathbb{L}, and we confirm that the tool repeats these analyses. Ultimately, L\mathbb{L} cannot verify languages. Nonetheless, we believe that this paper provides a strong first step towards adopting the methods of program logics for the analysis of languages.

Keywords

Cite

@article{arxiv.2408.01515,
  title  = {From Program Logics to Language Logics},
  author = {Matteo Cimini},
  journal= {arXiv preprint arXiv:2408.01515},
  year   = {2024}
}

Comments

This is a very close version of a paper under submission at SEFM 2024