The WhyRel Prototype for Modular Relational Verification of Pointer Programs

被引:1
|
作者
Nagasamudram, Ramana [1 ]
Banerjee, Anindya [2 ]
Naumann, David A. [1 ]
机构
[1] Stevens Inst Technol, Hoboken, NJ 07030 USA
[2] IMDEA Software Inst, Madrid, Spain
来源
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT II, TACAS 2023 | 2023年 / 13994卷
关键词
local reasoning; relational verification; auto-active verification; data abstraction;
D O I
10.1007/978-3-031-30820-8_11
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Verifying relations between programs arises as a task in various verification contexts such as optimizing transformations, relating new versions of programs with older versions (regression verification), and noninterference. However, relational verification for programs acting on dynamically allocated mutable state is not well supported by existing tools, which provide a high level of automation at the cost of restricting the programs considered. Auto-active tools, on the other hand, require more user interaction but enable verification of a broader class of programs. This article presents WhyRel, a tool for the auto-active verification of relational properties of pointer programs based on relational region logic. WhyRel is evaluated through verification case studies, relying on SMT solvers orchestrated by the Why3 platform on which it builds. Case studies include establishing representation independence of ADTs, showing noninterference, and challenge problems from recent literature.
引用
收藏
页码:133 / 151
页数:19
相关论文
共 10 条
  • [1] A Simple Sequential Reasoning Approach for Sound Modular Verification of Mainstream Multithreaded Programs
    Jacobs, Bart
    Smans, Jan
    Piessens, Frank
    Schulte, Wolfram
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2007, 174 (09) : 23 - 47
  • [2] An Algebra of Alignment for Relational Verification
    Antonopoulos, Timos
    Koskinen, Eric
    Ton Chanh Le
    Nagasamudram, Ramana
    Naumann, David A.
    Minh Ngo
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (POPL): : 573 - 603
  • [3] Using Relational Verification for Program Slicing
    Beckert, Bernhard
    Bormer, Thorsten
    Gocht, Stephan
    Herda, Mihai
    Lentzsch, Daniel
    Ulbrich, Mattias
    SOFTWARE ENGINEERING AND FORMAL METHODS (SEFM 2019), 2019, 11724 : 353 - 372
  • [4] Constraint-Based Relational Verification
    Unno, Hiroshi
    Terauchi, Tachio
    Koskinen, Eric
    COMPUTER AIDED VERIFICATION (CAV 2021), PT I, 2021, 12759 : 742 - 766
  • [5] MODULAR VERIFICATION OF DATA ABSTRACTIONS WITH SHARED REALIZATIONS
    ERNST, GW
    HOOKWAY, RJ
    OGDEN, WF
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (04) : 288 - 307
  • [6] Input-Relational Verification of Deep Neural Networks
    Banerjee, Debangshu
    Xu, Changming
    Singh, Gagandeep
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (PLDI):
  • [7] Automatic verification of Java']Java programs with dynamic frames
    Smans, Jan
    Jacobs, Bart
    Piessens, Frank
    Schulte, Wolfram
    FORMAL ASPECTS OF COMPUTING, 2010, 22 (3-4) : 423 - 457
  • [8] Modular Reasoning about Concurrent Higher-Order Imperative Programs
    Birkedal, Lars
    ACM SIGPLAN NOTICES, 2014, 49 (01) : 1 - 1
  • [9] AutoProof: auto-active functional verification of object-oriented programs
    Carlo A. Furia
    Martin Nordio
    Nadia Polikarpova
    Julian Tschannen
    International Journal on Software Tools for Technology Transfer, 2017, 19 : 697 - 716
  • [10] AutoProof: auto-active functional verification of object-oriented programs
    Furia, Carlo A.
    Nordio, Martin
    Polikarpova, Nadia
    Tschannen, Julian
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2017, 19 (06) : 697 - 716