Engineering Formal Metatheory

被引:76
|
作者
Aydemir, Brian [1 ]
Chargueraud, Arthur
Pierce, Benjamin C. [1 ]
Pollack, Randy
Weirich, Stephanie [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
关键词
binding; Coq; locally nameless;
D O I
10.1145/1328438.1328443
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Machine-checked proofs of properties of programming languages have become a critical need, both for increased confidence in large and complex designs and as a foundation for technologies such as proof-carrying code. However, constructing these proofs remains a black art, involving many choices in the formulation of definitions and theorems that make a huge cumulative difference in the difficulty of carrying out large formal developments. The representation and manipulation of terms with variable binding is a key issue. We propose a novel style for formalizing metatheory, combining locally, nameless representation of terms and cofinite quantification of free variable names in inductive definitions of relations on terms (typing, reduction,...). The key technical insight is that our use of cofinite quantification obviates the need for reasoning about equivariance (the fact that free names can be renamed in derivations); in particular, the structural induction principles of relations defined using cofinite quantification are strong enough for metatheoretic reasoning, and need not be explicitly strengthened. Strong inversion principles follow (automatically, in Coq) from the induction principles. Although many of the underlying ingredients of our technique have been used before, their combination here yields a significant improvement over other methodologies using first-order representations, leading to developments that are faithful to informal practice, yet require no external tool support and little infrastructure within the proof assistant. We have carried out several large developments in this style using the Coq proof assistant and have made them publicly available. Our developments include type soundness for System F-<: and core ML (with references, exceptions, datatypes, recursion, and patterns) and subject reduction for the Calculus of Constructions. Not only do these developments demonstrate the comprehensiveness of our approach; they have also been optimized for clarity and robustness, making them good templates for future extension.
引用
收藏
页码:3 / 15
页数:13
相关论文
共 50 条
  • [1] Engineering formal metatheory
    Aydemir, Brian
    Chargueraud, Arthur
    Pierce, Benjamin C.
    Pollack, Randy
    Weirich, Stephanie
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 3 - 15
  • [2] Idealization in ethics outlining a formal moral metatheory
    Kuokkanen M.
    Häyry M.
    Axiomathes, 2000, 11 (1-3): : 21 - 35
  • [3] Formal Metatheory of Second-Order Abstract Syntax
    Fiore, Marcelo
    Szamozvancev, Dmitrij
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (POPL):
  • [4] Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover
    Andrea Asperti
    Wilmer Ricciotti
    Claudio Sacerdoti Coen
    Enrico Tassi
    Journal of Automated Reasoning, 2012, 49 : 427 - 451
  • [5] Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover
    Asperti, Andrea
    Ricciotti, Wilmer
    Coen, Claudio Sacerdoti
    Tassi, Enrico
    JOURNAL OF AUTOMATED REASONING, 2012, 49 (03) : 427 - 451
  • [6] Formal metatheory of the Lambda calculus using Stoughton's substitution
    Copello, Ernesto
    Szasz, Nora
    Tasistro, Alvaro
    THEORETICAL COMPUTER SCIENCE, 2017, 685 : 65 - 82
  • [7] GMETA: A Generic Formal Metatheory Framework for First-Order Representations
    Lee, Gyesik
    Oliveira, Bruno C. D. S.
    Cho, Sungkeun
    Yi, Kwangkeun
    PROGRAMMING LANGUAGES AND SYSTEMS, 2012, 7211 : 436 - 455
  • [8] THE FORMAL LEARNING OF ENGINEERING
    LANDIS, F
    ENGINEERING EDUCATION, 1985, 75 (04): : 210 - 214
  • [9] Beyond metatheory?
    Reus-Smit, Christian
    EUROPEAN JOURNAL OF INTERNATIONAL RELATIONS, 2013, 19 (03) : 589 - 608
  • [10] RL: a Language for Formal Engineering
    Bride, Hadrien
    Dong, Jin Song
    Hou, Zhe
    Mahony, Brendan
    McCarthy, Jim
    2020 25TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2020), 2020, : 31 - 36