Characteristic Formulae for the Verification of Imperative Programs

被引:12
|
作者
Chargueraud, Arthur
机构
关键词
Verification;
D O I
10.1145/2034574.2034828
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In previous work, we introduced an approach to program verification based on characteristic formulae. The approach consists of generating a higher-order logic formula from the source code of a program. This characteristic formula is constructed in such a way that it gives a sound and complete description of the semantics of that program. The formula can thus be exploited in an interactive proof assistant to formally verify that the program satisfies a particular specification. This previous work was, however, only concerned with purely-functional programs. In the present paper, we describe the generalization of characteristic formulae to an imperative programming language. In this setting, characteristic formulae involve specifications expressed in the style of Separation Logic. They also integrate the frame rule, which enables local reasoning. We have implemented a tool based on characteristic formulae. This tool, called CFML, supports the verification of imperative Caml programs using the Coq proof assistant. Using CFML, we have formally verified nontrivial imperative algorithms, as well as CPS functions, higher-order iterators, and programs involving higher-order stores.
引用
收藏
页码:418 / 430
页数:13
相关论文
共 50 条
  • [41] Replicated Synchronization for Imperative BSP Programs
    Jakobsson, Arvid
    Dabrowski, Frederic
    Bousdira, Wadoud
    Loulergue, Frederic
    Hains, Gaetan
    INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE (ICCS 2017), 2017, 108 : 535 - 544
  • [42] Ynot : Dependent types for imperative programs
    Nanevski, Aleksandar
    Morrisett, Greg
    Shinnar, Avraham
    Govereau, Paul
    Birkedal, Lars
    ACM SIGPLAN NOTICES, 2008, 43 (09) : 229 - 240
  • [43] Ynot : Dependent Types for Imperative Programs
    Nanevski, Aleksandar
    Morrisett, Greg
    Shinnar, Avraham
    Govereau, Paul
    Birkedal, Lars
    ICFP'08: PROCEEDINGS OF THE 2008 SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2008, : 229 - 240
  • [44] A Scheme for Effective Specialization of Imperative Programs
    Bul'onkov, M. A.
    Kochetov, D. V.
    Programming and Computer Software (English Translation of Programmirovanie), 21 (05):
  • [45] An Integrated Proof Language for Imperative Programs
    Zee, Karen
    Kuncak, Viktor
    Rinard, Martin C.
    ACM SIGPLAN NOTICES, 2009, 44 (06) : 338 - 351
  • [46] An Integrated Proof Language for Imperative Programs
    Zee, Karen
    Kuncak, Viktor
    Rinard, Martin C.
    PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2009, : 338 - 351
  • [47] Reversible Imperative Parallel Programs and Debugging
    Hoey, James
    Ulidowski, Irek
    REVERSIBLE COMPUTATION (RC 2019), 2019, 11497 : 108 - 127
  • [48] Logical synthesis of imperative OO programs
    Bellot, P
    Robinet, B
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 1999, 1559 : 316 - 318
  • [49] Approximating the domains of functional and imperative programs
    Brauburger, J
    Giesl, J
    SCIENCE OF COMPUTER PROGRAMMING, 1999, 35 (2-3) : 113 - 136
  • [50] Rewriting of imperative programs into logical equations
    Ponsini, O
    Fédèle, C
    Kounalis, E
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 56 (03) : 363 - 401