Explaining Violations of Properties in Control-Flow Temporal Logic
Runtime Verification is the process of deciding whether a run of a program satisfies a given property. This work considers the more challenging problem of explaining why a run does or does not satisfy the property. We look at this problem in the context of CFTL, a low-level temporal logic. Our main...
Saved in:
Published in | Runtime Verification Vol. 11757; pp. 202 - 220 |
---|---|
Main Authors | , |
Format | Book Chapter |
Language | English |
Published |
Switzerland
Springer International Publishing AG
2019
Springer International Publishing |
Series | Lecture Notes in Computer Science |
Online Access | Get full text |
Cover
Loading…
Summary: | Runtime Verification is the process of deciding whether a run of a program satisfies a given property. This work considers the more challenging problem of explaining why a run does or does not satisfy the property. We look at this problem in the context of CFTL, a low-level temporal logic. Our main contribution is a method for reconstructing representative execution paths, separating them into good and bad paths, and producing partial parse trees explaining their differences. This requires us to extend CFTL and our second contribution is a partial semantics used to identify the first violating observation in a trace. This is extended with a notion of severity of violation, allowing us to handle real-time properties sensitive to small timing variations. These techniques are implemented as an extension to the publicly available VyPR2 tool. Our work is motivated by results obtained applying VyPR2 to a web service on the CMS Experiment at CERN and initial tests produce useful explanations for realistic use cases. |
---|---|
ISBN: | 3030320782 9783030320782 |
ISSN: | 0302-9743 1611-3349 |
DOI: | 10.1007/978-3-030-32079-9_12 |