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 条
  • [31] ABSTRACT IMPLEMENTATIONS AND THEIR CORRECTNESS PROOFS.
    Nourani, C.Farshid
    Journal of the ACM, 1983, 30 (02): : 343 - 359
  • [32] AN ABSTRACT PROGRAMMING LANGUAGE AND CORRECTNESS PROOFS
    LIU, SY
    COMPUTER LANGUAGES, 1993, 18 (04): : 273 - 282
  • [33] A Posteriori Soundness for Non-deterministic Abstract Interpretations
    Might, Matthew
    Manolios, Panagiotis
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2009, 5403 : 260 - +
  • [34] Deriving Abstract Interpreters from Skeletal Semantics
    Jensen, Thomas
    Rebiscoul, Vincent
    Schmitt, Alan
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2023, (387):
  • [35] Lifting abstract interpreters to quantified logical domains
    Gulwani, Sumit
    McCloskey, Bill
    Tiwari, Ashish
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 235 - 246
  • [36] Refunctionalization of Abstract Abstract Machines Bridging the Gap between Abstract Abstract Machines and Abstract Definitional Interpreters (Functional Pearl)
    Wei, Guannan
    Decker, James
    Rompf, Tiark
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES, 2018,
  • [37] Lifting Abstract Interpreters to Quantified Logical Domains
    Gulwani, Sumit
    McCloskey, Bill
    Tiwari, Ashish
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 235 - 246
  • [38] Automating type soundness proofs via decision procedures and guided reductions
    Syme, D
    Gordon, AD
    LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, 2002, 2514 : 418 - 434
  • [39] NEGATION AS FAILURE - PROOFS, INFERENCE RULES AND META-INTERPRETERS
    BRUFFAERTS, A
    HENIN, E
    META-PROGRAMMING IN LOGIC PROGRAMMING, 1989, : 169 - 190
  • [40] Abstract patterns of compositional reasoning
    Amla, N
    Emerson, EA
    Namjoshi, K
    Trefler, R
    CONCUR 2003 - CONCURRENCY THEORY, 2003, 2761 : 431 - 445