A Relational Program Logic with Data Abstraction and Dynamic Framing

被引:1
|
作者
Banerjee, Anindya [1 ]
Nagasamudram, Ramana [2 ]
Naumann, David A. [2 ]
Nikouei, Mohammad [2 ]
机构
[1] IMDEA Software Inst, Madrid, Spain
[2] Stevens Inst Technol, Hoboken, NJ 07030 USA
基金
美国国家科学基金会;
关键词
Relational properties; relational verification; logics of programs; data abstraction; representation independence; product programs; automated verification; SECURE INFORMATION-FLOW; SEPARATION LOGIC; CORRECTNESS; VALIDATION; PROOFS; FRAMES;
D O I
10.1145/3551497
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In a paper published in 1972, Hoare articulated the fundamental notions of hiding invariants and simulations. Hiding: invariants on encapsulated data representations need not be mentioned in specifications that comprise the API of a module. Simulation: correctness of a new data representation and implementation can be established by proving simulation between the old and new implementations using a coupling relation defined on the encapsulated state. These results were formalized semantically and for a simple model of state, though the paper claimed this could be extended to encompass dynamically allocated objects. In recent years, progress has been made toward formalizing the claim, for simulation, though mainly in semantic developments. In this article, hiding and simulation are combined with the idea in Hoare's 1969 paper: a logic of programs. For an object-based language with dynamic allocation, we introduce a relational Hoare logic with stateful frame conditions that formalizes encapsulation, hiding of invariants, and couplings that relate two implementations. Relations and other assertions are expressed in first-order logic. Specifications can express a wide range of relational properties such as conditional equivalence and noninterference with declassification. The proof rules facilitate relational reasoning by means of convenient alignments and are shown sound with respect to a conventional operational semantics. A derived proof rule for equivalence of linked programs directly embodies representation independence. Applicability to representative examples is demonstrated using an SMT-based implementation.
引用
收藏
页数:136
相关论文
共 50 条
  • [1] Predicate Abstraction in a Program Logic Calculus
    Weiss, Benjamin
    INTEGRATED FORMAL METHODS, PROCEEDINGS, 2009, 5423 : 136 - 150
  • [2] Predicate abstraction in a program logic calculus
    Weiss, Benjamin
    SCIENCE OF COMPUTER PROGRAMMING, 2011, 76 (10) : 861 - 876
  • [3] Relational Differential Dynamic Logic
    Kolcak, Juraj
    Dubut, Jeremy
    Hasuo, Ichiro
    Katsumata, Shin-ya
    Sprunger, David
    Yamada, Akihisa
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT I, TACAS 2020, 2020, 12078 : 191 - 208
  • [4] Relational Differential Dynamic Logic
    Kolcak, Juraj
    Hasuo, Ichiro
    Dubut, Jeremy
    Katsumata, Shin-ya
    Sprunger, David
    Yamada, Akihisa
    PROCEEDINGS OF THE 2019 22ND ACM INTERNATIONAL CONFERENCE ON HYBRID SYSTEMS: COMPUTATION AND CONTROL (HSCC '19), 2019, : 284 - 285
  • [5] TaDA: A Logic for Time and Data Abstraction
    Pinto, Pedro da Rocha
    Dinsdale-Young, Thomas
    Gardner, Philippa
    ECOOP 2014 - OBJECT-ORIENTED PROGRAMMING, 2014, 8586 : 207 - 231
  • [6] Program abstraction in a higher-order logic framework
    Benini, M
    Kalvala, S
    Nowotka, D
    THEOREM PROVING IN HIGHER ORDER LOGICS, 1998, 1479 : 33 - 48
  • [7] Theoretically framing relational framing
    Tetlock, PE
    McGraw, AP
    JOURNAL OF CONSUMER PSYCHOLOGY, 2005, 15 (01) : 35 - 37
  • [8] DATA-RETRIEVAL AND RELATIONAL LOGIC
    KUHNS, JL
    DREXEL LIBRARY QUARTERLY, 1978, 14 (02): : 90 - 105
  • [9] Stochastic Relational Presheaves and Dynamic Logic for Contextuality
    Kishida, Kohei
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2014, (172): : 115 - 132
  • [10] A DYNAMIC LOGIC FOR PROGRAM VERIFICATION
    HEISEL, M
    REIF, W
    STEPHAN, W
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 363 : 134 - 145