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
来源
POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES | 2008年
关键词
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 条
  • [41] A comparative study of two formal semantics of the SIGNAL language
    Yang, Zhibin
    Bodeveix, Jean-Paul
    Filali, Mamoun
    [J]. FRONTIERS OF COMPUTER SCIENCE, 2013, 7 (05) : 673 - 693
  • [42] A formal framework to design and prove trustworthy memory controllers
    Malaquias, Felipe Lisboa
    Asavoae, Mihail
    Brandner, Florian
    [J]. REAL-TIME SYSTEMS, 2023, 59 (04) : 664 - 704
  • [43] Planning for Change in a Formal Verification of the Raft Consensus Protocol
    Woos, Doug
    Wilcox, James R.
    Anton, Steve
    Tatlock, Zachary
    Ernst, Michael D.
    Anderson, Thomas
    [J]. PROCEEDINGS OF THE 5TH ACM SIGPLAN CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP'16), 2016, : 154 - 165
  • [44] A Formal Proof in COP of LaSalle's Invariance Principle
    Cohen, Cyril
    Rouhling, Damien
    [J]. INTERACTIVE THEOREM PROVING (ITP 2017), 2017, 10499 : 148 - 163
  • [45] A Coq Formal Proof of the Lax-Milgram Theorem
    Boldo, Sylvie
    Clement, Francois
    Faissole, Florian
    Martin, Vincent
    Mayero, Micaela
    [J]. PROCEEDINGS OF THE 6TH ACM SIGPLAN CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP'17, 2017, : 79 - 89
  • [46] Certifying assembly with formal security proofs: The case of BBS
    Affeldt, Reynald
    Nowak, David
    Yamada, Kiyoshi
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (10-11) : 1058 - 1074
  • [47] Formal Verification of Completeness Theorem in Grundlagen der Geometrie
    Zhang, Qimeng
    Yu, Wensheng
    [J]. INTELLIGENT NETWORKED THINGS, CINT 2024, PT I, 2024, 2138 : 53 - 62
  • [48] Using Coq for Formal Modeling and Verification of Timed Connectors
    Hong, Weijiang
    Nawaz, M. Saqib
    Zhang, Xiyue
    Li, Yi
    Sun, Meng
    [J]. SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2017, 2018, 10729 : 558 - 573
  • [49] A comparative study of two formal semantics of the SIGNAL language
    Zhibin Yang
    Jean-Paul Bodeveix
    Mamoun Filali
    [J]. Frontiers of Computer Science, 2013, 7 : 673 - 693
  • [50] Methods of Formal Software Verification in the Context of Distributed Systems
    Fatkina, Anna
    Iakushkin, Oleg
    Selivanov, Dmitry
    Korkhov, Vladimir
    [J]. COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2019, PT II: 19TH INTERNATIONAL CONFERENCE, SAINT PETERSBURG, RUSSIA, JULY 1-4, 2019, PROCEEDINGS, PART II, 2019, 11620 : 546 - 555