Software Model Checking Using Languages of Nested Trees

被引:17
|
作者
Alur, Rajeev [1 ]
Chaudhuri, Swarat [2 ]
Madhusudan, P. [3 ]
机构
[1] Univ Penn, Dept Comp & Informat Sci, Philadelphia, PA 19104 USA
[2] Rice Univ, Dept Comp Sci, Houston, TX 77005 USA
[3] Univ Illinois, Champaign, IL 61802 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2011年 / 33卷 / 05期
基金
美国国家科学基金会;
关键词
Algorithms; Theory; Verification; Logic; specification; verification; mu-calculus; infinite-state; model-checking; games; pushdown systems; interprocedural analysis; TEMPORAL LOGIC;
D O I
10.1145/2039346.2039347
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
While model checking of pushdown systems is by now an established technique in software verification, temporal logics and automata traditionally used in this area are unattractive on two counts. First, logics and automata traditionally used in model checking cannot express requirements such as pre/post-conditions that are basic to analysis of software. Second, unlike in the finite-state world, where the mu-calculus has a symbolic model-checking algorithm and serves as an "assembly language" to which temporal logics can be compiled, there is no common formalism-either fixpoint-based or automata-theoretic-to model-check requirements on pushdown models. In this article, we introduce a new theory of temporal logics and automata that addresses the above issues, and provides a unified foundation for the verification of pushdown systems. The key idea here is to view a program as a generator of structures known as nested trees as opposed to trees. A fixpoint logic (called NT-mu) and a class of automata (called nested tree automata) interpreted on languages of these structures are now defined, and branching-time model-checking is phrased as language inclusion and membership problems for these languages. We show that NT-mu and nested tree automata allow the specification of a new frontier of requirements usable in software verification. At the same time, their model checking problem has the same worst-case complexity as their traditional analogs, and can be solved symbolically using a fixpoint computation that generalizes, and includes as a special case, "summary"-based computations traditionally used in interprocedural program analysis. We also show that our logics and automata define a robust class of languages-in particular, just as the mu-calculus is equivalent to alternating parity automata on trees, NT-mu is equivalent to alternating parity automata on nested trees. Categories and Subject Descriptors: D. 2.4 [Software Engineering]: Software/Program Verification-Model checking; F. 1.1 [Computation by abstract devices]: Models of computation-Automata; F. 3.1 [Theory of Computation]: Specifying and Verifying and Reasoning about Programs; F. 4.1 [Theory of Computation]: Mathematical Logic-Temporal logic
引用
收藏
页数:45
相关论文
共 50 条
  • [31] Towards automated software model checking using graph transformation systems and Bogor
    Rafe, Vahid
    Rahmani, Adel T.
    JOURNAL OF ZHEJIANG UNIVERSITY-SCIENCE A, 2009, 10 (08): : 1093 - 1105
  • [32] Towards automated software model checking using graph transformation systems and Bogor
    Vahid Rafe
    Adel T. Rahmani
    Journal of Zhejiang University-SCIENCE A, 2009, 10 : 1093 - 1105
  • [33] Distributed Cyber Physical Systems Software Model Checking using Timed Automata
    Ghosh, Purboday
    Karsai, Gabor
    2023 IEEE 26TH INTERNATIONAL SYMPOSIUM ON REAL-TIME DISTRIBUTED COMPUTING, ISORC, 2023, : 164 - 169
  • [34] Model checking embedded control software using OS-in-the-loop CEGAR
    Kim, Dongwoo
    Choi, Yunja
    34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), 2019, : 577 - 588
  • [35] Contributions of model checking and CoFI methodology to the development of space embedded software
    Pontes, Rodrigo Pastl
    Veras, Paulo Claudino
    Ambrosio, Ana Maria
    Villani, Emilia
    EMPIRICAL SOFTWARE ENGINEERING, 2014, 19 (01) : 39 - 68
  • [36] Model Checking Sequential Software Programs Via Mixed Symbolic Analysis
    Yang, Zijiang
    Wang, Chao
    Gupta, Aarti
    Ivancic, Franjo
    ACM TRANSACTIONS ON DESIGN AUTOMATION OF ELECTRONIC SYSTEMS, 2009, 14 (01)
  • [37] Actor-based model checking for Software-Defined Networks
    Albert, Elvira
    Gomez-Zamalloa, Miguel
    Isabel, Miguel
    Rubio, Albert
    Sammartino, Matteo
    Silva, Alexandra
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2021, 118
  • [38] Incremental bounded model checking for embedded software
    Schrammel, Peter
    Kroening, Daniel
    Brain, Martin
    Martins, Ruben
    Teige, Tino
    Bienmueller, Tom
    FORMAL ASPECTS OF COMPUTING, 2017, 29 (05) : 911 - 931
  • [39] Identifying Counterexamples Without Variability in Software Product Line Model Checking
    Ding, Ling
    Wan, Hongyan
    Hu, Luokai
    Chen, Yu
    CMC-COMPUTERS MATERIALS & CONTINUA, 2023, 75 (02): : 2655 - 2670
  • [40] Model checking of safety-critical software in the nuclear engineering domain
    Lahtinen, J.
    Valkonen, J.
    Bjorkman, K.
    Frits, J.
    Niemela, I.
    Heljanko, K.
    RELIABILITY ENGINEERING & SYSTEM SAFETY, 2012, 105 : 104 - 113