Automata-based verification of programs with tree updates

被引:6
|
作者
Habermehl, Peter [1 ]
Iosif, Radu [2 ]
Vojnar, Tomas [3 ]
机构
[1] Univ Paris Diderot Paris 7, LIAFA, CNRS, F-75205 Paris 13, France
[2] Univ Grenoble 1, VERIMAG, CNRS, INPG, F-38610 Gieres, France
[3] Brno Univ Technol, FIT, Brno 61266, Czech Republic
关键词
Transition Rule; Size Function; Balance Tree; Tree Automaton; Black Node;
D O I
10.1007/s00236-009-0108-5
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
This paper describes a verification framework for Hoare-style pre- and post-conditions of programs manipulating balanced tree-like data structures. Since the considered verification problem is undecidable, we appeal to the standard semi-algorithmic approach in which the user has to provide loop invariants, which are then automatically checked, together with the program pre- and post-conditions. We specify sets of program states, representing tree-like memory configurations, using Tree Automata with Size Constraints (TASC). The main advantage of this new class of tree automata is that they recognise tree languages based on arithmetic reasoning about the lengths of various (possibly all) paths in trees, like, e.g., in AVL trees or red-black trees. TASCs are closed under union, intersection, and complement, and their emptiness problem is decidable. Thus we obtain a class of automata which are an interesting theoretical contribution by itself. Further, we show that, under few restrictions, one can automatically compute the effect of tree-updating program statements on the set of configurations represented by a TASC, which makes TASC a practical verification tool. We tried out our approach on the insertion procedure for red-black trees, for which we verified that the output on an arbitrary balanced red-black tree is also a balanced red-black tree.
引用
收藏
页码:1 / 31
页数:31
相关论文
共 50 条
  • [1] Automata-based verification of programs with tree updates
    Peter Habermehl
    Radu Iosif
    Tomáš Vojnar
    [J]. Acta Informatica, 2010, 47 : 1 - 31
  • [2] Automata-based verification of programs with tree updates
    Habermehl, P
    Iosif, R
    Vojnar, T
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2006, 3920 : 350 - 364
  • [3] Automata-based verification of temporal properties on running programs
    Giannakopoulou, D
    Havelund, M
    [J]. 16TH ANNUAL INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2001), PROCEEDINGS, 2001, : 412 - 416
  • [4] Automata-Based Abstraction for Automated Verification of Higher-Order Tree-Processing Programs
    Matsumoto, Yuma
    Kobayashi, Naoki
    Unno, Hiroshi
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : 295 - 312
  • [5] Tree Automata-Based Refinement with Application to Horn Clause Verification
    Kafle, Bishoksan
    Gallagher, John P.
    [J]. VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION (VMCAI 2015), 2015, 8931 : 209 - 226
  • [6] An automata-based approach to CSCW verification
    Papadopoulos, C
    [J]. INTERNATIONAL JOURNAL OF COOPERATIVE INFORMATION SYSTEMS, 2004, 13 (02) : 183 - 209
  • [7] Horn clause verification with convex polyhedral abstraction and tree automata-based refinement
    Kafle, Bishoksan
    Gallagher, John P.
    [J]. COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2017, 47 : 2 - 18
  • [8] On the timed automata-based verification of Ravenscar systems
    Ober, Iulian
    Halbwachs, Nicolas
    [J]. RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2008, 2008, 5026 : 30 - +
  • [9] A Technique for Automata-based Verification with Residual Reasoning
    Azzopardi, Shaun
    Colombo, Christian
    Pace, Gordon
    [J]. PROCEEDINGS OF THE 8TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD), 2020, : 237 - 248
  • [10] Symbolic string verification: An automata-based approach
    Yu, Fang
    Bultan, Tevfik
    Cova, Marco
    Ibarra, Oscar H.
    [J]. MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 306 - 324