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 条
  • [1] Characteristic Formulae for the Verification of Imperative Programs
    Chargueraud, Arthur
    ICFP 11 - PROCEEDINGS OF THE 2011 ACM SIGPLAN: INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2011, : 418 - 430
  • [2] Program Verification Through Characteristic Formulae
    Chargueraud, Arthur
    ACM SIGPLAN NOTICES, 2010, 45 (09) : 321 - 332
  • [3] Program Verification Through Characteristic Formulae
    Chargueraud, Arthur
    ICFP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2010, : 321 - 332
  • [4] COMPLX: A Verification Framework for Concurrent Imperative Programs
    Amani, Sidney
    Andronick, June
    Bortin, Maksym
    Lewis, Corey
    Rizkallah, Christine
    Tuong, Joseph
    PROCEEDINGS OF THE 6TH ACM SIGPLAN CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP'17, 2017, : 138 - 150
  • [5] Towards the verification of optimizing transformations for imperative programs
    Kock, Gerd
    1600, (30): : 1 - 5
  • [6] TOWARDS THE VERIFICATION OF OPTIMIZING TRANSFORMATIONS FOR IMPERATIVE PROGRAMS
    KOCK, G
    MICROPROCESSING AND MICROPROGRAMMING, 1990, 30 (1-5): : 185 - 192
  • [7] Verification conditions for source-level imperative programs
    Frade, Maria Joao
    Pinto, Jorge Sousa
    COMPUTER SCIENCE REVIEW, 2011, 5 (03) : 252 - 277
  • [8] Verification of Imperative Programs by Constraint Logic Program Transformation
    De Angelis, Emanuele
    Fioravanti, Fabio
    Pettorossi, Alberto
    Proietti, Maurizio
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2013, (129): : 186 - 210
  • [9] A verification environment for sequential imperative programs in Isabelle/HOL
    Schirmer, N
    LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, PROCEEDINGS, 2005, 3452 : 398 - 414
  • [10] Trace-based verification of imperative programs with I/O
    Malecha, Gregory
    Morrisett, Greg
    Wisnesky, Ryan
    JOURNAL OF SYMBOLIC COMPUTATION, 2011, 46 (02) : 95 - 118