Open Systems Laboratory at Illinois

Learning to verify safety properties

By Abhay Vardhan, Koushik Sen, Mahesh Viswanathan, and Gul Agha. In ICFEM, volume 3308 of Lecture Notes in Computer Science, 274–289. Springer, 2004.

Full Text:
Download PDF
Publisher Link:
http://dx.doi.org/10.1007/978-3-540-30482-1_26

Abstract

We present a novel approach for verifying safety properties of finite state machines communicating over unbounded FIFO channels that is based on applying machine learning techniques. We assume that we are given a model of the system and learn the set of reachable states from a sample set of executions of the system, instead of attempting to iteratively compute the reachable states. The learnt set of reachable states is then used to either prove that the system is safe or to produce a valid execution of the system leading to an unsafe state ( i.e. a counterexample). We have implemented this method for verifying FIFO automata in a tool called Lever that uses a regular language learning algorithm called RPNI. We apply our tool to a few case studies and report our experience with this method. We also demonstrate how this method can be generalized and applied to the verification of other infinite state systems.

BibTeX

@inproceedings{conf/icfem/VardhanSVA04,
    author = "Vardhan, Abhay and Sen, Koushik and Viswanathan, Mahesh
              and Agha, Gul",
    editor = "Davies, Jim and Schulte, Wolfram and Barnett, Michael",
    title = "Learning to Verify Safety Properties",
    booktitle = "ICFEM",
    crossref = "conf/icfem/2004",
    ee = "http://dx.doi.org/10.1007/978-3-540-30482-1_26",
    keywords = "formal methods",
    pages = "274-289",
    year = "2004",
}

@proceedings{conf/icfem/2004,
    editor = "Davies, Jim and Schulte, Wolfram and Barnett, Michael",
    title = "Formal Methods and Software Engineering, 6th
             International Conference on Formal Engineering Methods, ICFEM
             2004, Seattle, WA, USA, November 8-12, 2004, Proceedings",
    isbn = "3-540-23841-7",
    publisher = "Springer",
    series = "Lecture Notes in Computer Science",
    volume = "3308",
    year = "2004",
}