201,812 research outputs found
Your Proof Fails? Testing Helps to Find the Reason
Applying deductive verification to formally prove that a program respects its
formal specification is a very complex and time-consuming task due in
particular to the lack of feedback in case of proof failures. Along with a
non-compliance between the code and its specification (due to an error in at
least one of them), possible reasons of a proof failure include a missing or
too weak specification for a called function or a loop, and lack of time or
simply incapacity of the prover to finish a particular proof. This work
proposes a new methodology where test generation helps to identify the reason
of a proof failure and to exhibit a counter-example clearly illustrating the
issue. We describe how to transform an annotated C program into C code suitable
for testing and illustrate the benefits of the method on comprehensive
examples. The method has been implemented in STADY, a plugin of the software
analysis platform FRAMA-C. Initial experiments show that detecting
non-compliances and contract weaknesses allows to precisely diagnose most proof
failures.Comment: 11 pages, 10 figure
A Strategy Language for Testing Register Transfer Level Logic
The development of modern ICs requires a huge investment in RTL verification.
This is a reflection of brisk release schedules and the complexity of
contemporary chip designs. A major bottleneck to reaching verification closure
in such designs is the disproportionate effort expended in crafting directed
tests; which is necessary to reach those behaviors that other, more automated
testing methods fail to cover. This paper defines a novel language that can be
used to generate targeted stimuli for RTL logic and which mitigates the
complexities of writing directed tests. The main idea is to treat directed
testing as a meta-reasoning problem about simulation. Our language is both
formalized and prototyped as a proof-search strategy language in rewriting
logic. We illustrate its novel features and practical use with several
examples.published or submitted for publicatio
- …