Automated quantitative software verification

<p>Many software systems exhibit probabilistic behaviour, either added explicitly, to improve performance or to break symmetry, or implicitly, through interaction with unreliable networks or faulty hardware. When employed in safety-critical applications, it is important to rigorously analyse t...

Full description

Bibliographic Details
Main Author: Kattenbelt, M
Other Authors: Kwiatkowska, M
Format: Thesis
Language:English
Published: 2010
Subjects:
_version_ 1797072006224543744
author Kattenbelt, M
author2 Kwiatkowska, M
author_facet Kwiatkowska, M
Kattenbelt, M
author_sort Kattenbelt, M
collection OXFORD
description <p>Many software systems exhibit probabilistic behaviour, either added explicitly, to improve performance or to break symmetry, or implicitly, through interaction with unreliable networks or faulty hardware. When employed in safety-critical applications, it is important to rigorously analyse the behaviour of these systems. This can be done with a formal verification technique called <em>model checking</em>, which establishes <em>properties</em> of systems by algorithmically considering all execution scenarios. In the presence of probabilistic behaviour, we consider quantitative properties such as <em>"the worst-case probability that the airbag fails to deploy within 10ms"</em>, instead of qualitative properties such as <em>"the airbag eventually deploys"</em>. Although many model checking techniques exist to verify <em>qualitative</em> properties of software, <em>quantitative</em> model checking techniques typically focus on manually derived models of systems and cannot directly verify software.</p> <p>In this thesis, we present two quantitative model checking techniques for probabilistic software. The first is a quantitative adaptation of a successful model checking technique called <em>counter-example guided abstraction refinement</em> which uses <em>stochastic two-player games</em> as abstractions of probabilistic software. We show how to achieve abstraction and refinement in a probabilistic setting and investigate theoretical extensions of stochastic two-player game abstractions. Our second technique <em>instruments</em> probabilistic software in such a way that existing, non-probabilistic software verification methods can be used to compute bounds on quantitative properties of the original, uninstrumented software.</p> <p>Our techniques are the first to target real, compilable software in a probabilistic setting. We present an experimental evaluation of both approaches on a large range of case studies and evaluate several extensions and heuristics. We demonstrate that, with our methods, we can successfully compute quantitative properties of real network clients comprising approximately 1,000 lines of complex ANSI-C code — the verification of such software is far beyond the capabilities of existing quantitative model checking techniques.</p>
first_indexed 2024-03-06T23:01:24Z
format Thesis
id oxford-uuid:62430df4-7fdf-4c4f-b3cd-97ba8912c9f5
institution University of Oxford
language English
last_indexed 2024-03-06T23:01:24Z
publishDate 2010
record_format dspace
spelling oxford-uuid:62430df4-7fdf-4c4f-b3cd-97ba8912c9f52022-03-26T18:05:03ZAutomated quantitative software verificationThesishttp://purl.org/coar/resource_type/c_db06uuid:62430df4-7fdf-4c4f-b3cd-97ba8912c9f5Theory and automated verificationEnglishOxford University Research Archive - Valet2010Kattenbelt, MKwiatkowska, M<p>Many software systems exhibit probabilistic behaviour, either added explicitly, to improve performance or to break symmetry, or implicitly, through interaction with unreliable networks or faulty hardware. When employed in safety-critical applications, it is important to rigorously analyse the behaviour of these systems. This can be done with a formal verification technique called <em>model checking</em>, which establishes <em>properties</em> of systems by algorithmically considering all execution scenarios. In the presence of probabilistic behaviour, we consider quantitative properties such as <em>"the worst-case probability that the airbag fails to deploy within 10ms"</em>, instead of qualitative properties such as <em>"the airbag eventually deploys"</em>. Although many model checking techniques exist to verify <em>qualitative</em> properties of software, <em>quantitative</em> model checking techniques typically focus on manually derived models of systems and cannot directly verify software.</p> <p>In this thesis, we present two quantitative model checking techniques for probabilistic software. The first is a quantitative adaptation of a successful model checking technique called <em>counter-example guided abstraction refinement</em> which uses <em>stochastic two-player games</em> as abstractions of probabilistic software. We show how to achieve abstraction and refinement in a probabilistic setting and investigate theoretical extensions of stochastic two-player game abstractions. Our second technique <em>instruments</em> probabilistic software in such a way that existing, non-probabilistic software verification methods can be used to compute bounds on quantitative properties of the original, uninstrumented software.</p> <p>Our techniques are the first to target real, compilable software in a probabilistic setting. We present an experimental evaluation of both approaches on a large range of case studies and evaluate several extensions and heuristics. We demonstrate that, with our methods, we can successfully compute quantitative properties of real network clients comprising approximately 1,000 lines of complex ANSI-C code — the verification of such software is far beyond the capabilities of existing quantitative model checking techniques.</p>
spellingShingle Theory and automated verification
Kattenbelt, M
Automated quantitative software verification
title Automated quantitative software verification
title_full Automated quantitative software verification
title_fullStr Automated quantitative software verification
title_full_unstemmed Automated quantitative software verification
title_short Automated quantitative software verification
title_sort automated quantitative software verification
topic Theory and automated verification
work_keys_str_mv AT kattenbeltm automatedquantitativesoftwareverification