Compositional Soundness Proofs of Abstract Interpreters

被引:8
|
作者
Keidel, Sven [1 ]
Poulsen, Casper Bach [1 ]
Erdweg, Sebastian [1 ]
机构
[1] Delft Univ Technol, Delft, Netherlands
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES | 2018年
关键词
Abstract Interpretation; Soundness;
D O I
10.1145/3236767
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Abstract interpretation is a technique for developing static analyses. Yet, proving abstract interpreters sound is challenging for interesting analyses, because of the high proof complexity and proof effort. To reduce complexity and effort, we propose a framework for abstract interpreters that makes their soundness proof compositional. Key to our approach is to capture the similarities between concrete and abstract interpreters in a single shared interpreter, parameterized over an arrow-based interface. In our framework, a soundness proof is reduced to proving reusable soundness lemmas over the concrete and abstract instances of this interface; the soundness of the overall interpreters follows from a generic theorem. To further reduce proof effort, we explore the relationship between soundness and parametricity. Parametricity not only provides us with useful guidelines for how to design non-leaky interfaces for shared interpreters, but also provides us soundness of shared pure functions as free theorems. We implemented our framework in Haskell and developed a k-CFA analysis for PCF and a tree-shape analysis for Stratego. We were able to prove both analyses sound compositionally with manageable complexity and effort, compared to a conventional soundness proof.
引用
收藏
页数:26
相关论文
共 50 条
  • [41] Automated soundness proofs for dataflow analyses and transformations via local rules
    Lerner, S
    Millstein, T
    Rice, E
    Chambers, C
    ACM SIGPLAN NOTICES, 2005, 40 (01) : 364 - 377
  • [42] Compositional proofs in differential dynamic logic dL
    Lunel, Simon
    Boyer, Benoit
    Talpin, Jean-Pierre
    2017 17TH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN (ACSD), 2017, : 19 - 28
  • [43] Compositional Z: Confluence Proofs for Permutative Conversion
    Koji Nakazawa
    Ken-etsu Fujita
    Studia Logica, 2016, 104 : 1205 - 1224
  • [44] Compositional Z: Confluence Proofs for Permutative Conversion
    Nakazawa, Koji
    Fujita, Ken-etsu
    STUDIA LOGICA, 2016, 104 (06) : 1205 - 1224
  • [45] Abstract interpretation of proofs: Classical propositional calculus
    Hyland, M
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2004, 3210 : 6 - 21
  • [46] On bisimulation proofs for the analysis of distributed abstract machines
    Pous, Damien
    TRUSTWORTHY GLOBAL COMPUTING, 2007, 4661 : 150 - 166
  • [47] Structuring Abstract Interpreters Through State and Value Abstractions
    Blazy, Sandrine
    Buehler, David
    Yakobowski, Boris
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2017, 2017, 10145 : 112 - 130
  • [48] Native diagrammatic soundness and completeness proofs for Peirce’s Existential Graphs (Alpha)
    Gianluca Caterina
    Rocco Gangle
    Fernando Tohmé
    Synthese, 200
  • [49] Computational soundness of symbolic zero-knowledge proofs against active attackers
    Backes, Michael
    Unruh, Dominique
    CSF 2008: 21ST IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM, PROCEEDINGS, 2008, : 255 - 269
  • [50] Native diagrammatic soundness and completeness proofs for Peirce's Existential Graphs (Alpha)
    Caterina, Gianluca
    Gangle, Rocco
    Tohme, Fernando
    SYNTHESE, 2022, 200 (06)