2013
DOI: 10.1007/978-3-642-40787-1_15
|View full text |Cite
|
Sign up to set email alerts
|

To Run What No One Has Run Before: Executing an Intermediate Verification Language

Abstract: Abstract. When program verification fails, it is often hard to understand what went wrong in the absence of concrete executions that expose parts of the implementation or specification responsible for the failure. Automatic generation of such tests would require "executing" the complex specifications typically used for verification (with unbounded quantification and other expressive constructs), something beyond the capabilities of standard testing tools. This paper presents a technique to automatically genera… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2014
2014
2023
2023

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 15 publications
(8 citation statements)
references
References 27 publications
0
8
0
Order By: Relevance
“…For instance, suppose we have arrays A and B and a candidate asserting that 10. Boogaloo [43] and Symbooglix [44] also support Boogie interpretation, but are generic and do not exploit knowledge specific to GPU kernels, as we do. all accesses into A and into B are distinct.…”
Section: Dynamic Analysis Dynmentioning
confidence: 90%
“…For instance, suppose we have arrays A and B and a candidate asserting that 10. Boogaloo [43] and Symbooglix [44] also support Boogie interpretation, but are generic and do not exploit knowledge specific to GPU kernels, as we do. all accesses into A and into B are distinct.…”
Section: Dynamic Analysis Dynmentioning
confidence: 90%
“…The design of JML accommodates both deductive and runtime verification [16]. Combinations of deductive verification and testing for imperative languages were recently studied and implemented for C# programs specified with Boogie in [18], and combining Dafny and Pex in [7]. In [8], the specification-based random testing tool Quickcheck is used to find counter-examples to invariants that have not been formally verified by automated theorem provers.…”
Section: Discussionmentioning
confidence: 99%
“…Static analysis is performed on the source code without executing the program, whereas dynamic analysis is based on the program execution. Both are complementary and can be advantageously combined [10,3,14,6,7,5,18].…”
Section: Introductionmentioning
confidence: 99%
“…Each experiment targets one Boogie program b: it runs Boogie with command boogie b and a timeout of 180 seconds; it runs b2w to translate b to w in WhyML; for each SMT solver p among Alt-Ergo, CVC3, CVC4, and Z3, it runs Why3 with command why3 prove -P p w, also with a timeout of 180 seconds. 21 For each run we collected the wall-clock running time, the total number of verification goals, and how many of such goals the tool verified successfully. 22 20 https://github.com/boogie-org/boogie/tree/master/Test 21 The timeouts were enforced using the Unix command timeout.…”
Section: Methodsmentioning
confidence: 99%
“…Another element that differentiates Boogie and Why3 is the support for executing programs; this is quite useful for debugging verification attempts and for applying testing-like techniques to the realm of verification. Boogaloo [21] supports symbolic execution of Boogie programs; Symbooglix is a more recent project with the same goal [19]. Thanks to it being a member of the ML family, Why3 directly supports symbolic execution as well as compilation of WhyML programs to OCaml.…”
Section: Related Workmentioning
confidence: 99%