Themen für das Seminar: Model Checking

Transcrição

Themen für das Seminar: Model Checking
Themen für das Seminar:
Model Checking
2. Februar 2004
Inhaltsverzeichnis
1 Allgemein
1.1 Model Checking und Temporal Logics . . . . . . . . . . .
1.2 Binary Decision Diagrams and Symbolic Model Checking
1.3 From model checking to a temporal proof . . . . . . . . .
1.4 Partial Order Reduction, Equivalences, Preorders . . . .
.
.
.
.
2
2
2
2
2
2 Software Model Checking
2.1 Symbolic Model Checking of Software . . . . . . . . . . . . . .
2.2 Space-Reduction Strategies . . . . . . . . . . . . . . . . . . . .
2.3 Automatically Verifying Concurrent Queue Algorithms . . . .
3
3
3
4
3 Parallel and Distributed Model Checking
3.1 Parallel Model Checking for LTL, CTL∗ , and Lµ . . . . . . . .
3.2 Distributed Branching Bisimulation Reduction of State Spaces
4
4
5
1
.
.
.
.
.
.
.
.
1
Allgemein
Der Begriff Model Checking faßt automatische Verifikationsverfahren zusammen, bei denen die Übereinstimmung eines gegebenen Systems oder Programms mit einer Spezifikation überprüft wird. Die Spezifikation ist oft als logische Formel gegeben, beispielsweise als temporallogische Formel. Besonders
interessant ist es, Model-Checking-Techniken auf verteilte und nebenläufige
Systeme anzuwenden.
1.1
Model Checking und Temporal Logics
Kapitel 3 und 4 aus [CGP99].
1.2
Binary Decision Diagrams and Symbolic Model
Checking
Kapitel 5 und 6 aus [CGP99].
1.3
From model checking to a temporal proof
Doron Peled und Lenore Zuck [PZ01]. In Proceedings of the 8th international
SPIN workshop on Model checking of software, Toronto, Canada, 2001. Vom
Netz der Uni Frankfurt aus über http://portal.acm.org verfügbar.
Zusammenfassung
Model checking is used to automatically verify temporal properties
of finite state systems. It is usually considered to be ‘sucessful’, when
an error, in the form of a counterexample to the checked property,
is found. We present the dual approach, where, in the presence of no
counterexample, we automatically generate a proof that the checked
property is satisfied by the given system. Such a proof can be used
to obtain intuition about the verified system. This approach can be
added as a simple extension to existing model checking tools.
1.4
Partial Order Reduction, Equivalences, Preorders
Kapitel 10 und 11 aus [CGP99].
2
2
2.1
Software Model Checking
Symbolic Model Checking of Software
Flavio Lerda, Nishant Sinha und Michael Theobald [LST03]. In Electronic Notes in Theoretical Computer Science, Volume 89, Issue 3, September
2003. Vom Netz der Uni Frankfurt aus über http://www1.elsevier.com/gejng/31/29/23/141/23/30/89.3.008.pdf verfügbar.
Zusammenfassung
Model checking is a popular formal verification technique for both
software and hardware. The verification of concurrent software predominantly employs explicit-state model checkers, such as Spin, that use
partial-order reduction as a main technique to deal with large state
spaces efficiently. In the hardware domain, the introduction of symbolic model checking has been considered a breakthrough, allowing
the verification of systems clearly out-of-reach of any explicit-state
model checker. This paper introduces ImProviso, a new algorithm for
model checking of software that efficiently combines the advantages
of partial-order reduction with symbolic exploration. ImProviso uses
implicit BDD representations for both the state space and the transition relation together with a new implicit in-stack proviso for efficient
partial-order reduction. The new approach is inspired by the Twophase partial-order reduction algorithm for explicit-state model checking.
Initial experimental results show that the proposed algorithm improves the existing symbolic model checking approach and can be used to
tackle problems that are not tractable using explicit-state methods.
2.2
Space-Reduction Strategies for Model Checking
Dynamic Software
Matthew Dwyer Robby, John Hatcliff und Radu Iosif [RDHI03]. In Electronic Notes in Theoretical Computer Science, Volume 89, Issue 3, September
2003. Vom Netz der Uni Frankfurt aus über http://www1.elsevier.com/gejng/31/29/23/141/23/31/89.3.009.pdf verfügbar.
Zusammenfassung
Effective model-checking of modern object-oriented software systems requires providing support for program features such as dynamically created threads, heap-allocated objects and garbage collection. These features have often proven problematic to treat using many
previous model-checking frameworks that do not provide sophisticated
3
heap representations and optimizations. In this paper, we define a flexible framework for combined heap and thread symmetry reductions
in explicit-state model checking that can be tuned to trade run-time
overhead for precision. In addition, we describe various strategies for
duplication-reducing state-space encodings for object-oriented heap
structures. We have implemented these techniques in Bogor (our extensible software model-checking framework), and we present empirical data to support the effectiveness of these memory reductions on a
collection of realistic examples and to demonstrate that they improve
upon previous approaches. These techniques, formalized in a group
theoretic framework, can be applied to any non-deterministic heap
object diagram.
2.3
Automatically Verifying Concurrent Queue Algorithms
Eran Yahav und Mooley Sagiv [YS03]. In Electronic Notes in Theoretical Computer Science, Volume 89, Issue 3, September 2003.
Vom Netz der Uni Frankfurt aus über http://www1.elsevier.com/gejng/31/29/23/141/23/31/89.3.006.pdf verfügbar.
Zusammenfassung
Concurrent FIFO queues are a common component of concurrent
systems. Using a single shared lock to prevent concurrent manipulations of queue contents reduces system concurrency. Therefore, many
algorithms were suggested to increase concurrency while maintaining
the correctness of queue manipulations. This paper shows how to automatically verify partial correctness of concurrent FIFO queue algorithms using existing abstract interpretation techniques. In particular,
we verify all the safety properties originally specified for two concurrent queue algorithms without imposing an a priori bound on the
number of allocated objects and threads.
3
3.1
Parallel and Distributed Model Checking
Parallel Model Checking for LTL, CTL∗ , and Lµ
Martin Leucker, Rafal Somla und Michael Weber [LSW03]. In Electronic
Notes in Theoretical Computer Science, Volume 89, Issue 3, September
2003. Vom Netz der Uni Frankfurt aus über http://www1.elsevier.com/gejng/31/29/23/141/47/25/89.1.003.pdf verfügbar.
Zusammenfassung
4
We describe a parallel model-checking algorithm for the fragment
of the my-calculus that allows one alternation of minimal and maximal
fixed-point operators. This fragment is also known as L2µ . Since LTL
and CTL∗ can be encoded in this fragment, we obtain parallel model
checking algorithms for practically important temporal logics.
Our solution is based on a characterization of this problem in terms
of two-player games. We exhibit the structure of their game graphs
and show that we can iteratively work with game graphs that have
the same special structure as the ones obtained for L1µ -formulae. Since
good parallel algorithms for colouring game-graphs for L1µ -formulae
exist, it is straightforward to implement this algorithm in parallel and
good run-time results can be expected.
3.2
Distributed Branching Bisimulation Reduction of
State Spaces
Stefan Blom und Simona Orzan [BO03]. In Electronic Notes in
Theoretical Computer Science, Volume 89, Issue 3, September 2003.
Vom Netz der Uni Frankfurt aus über http://www1.elsevier.com/gejng/31/29/23/141/47/31/89.1.009.pdf verfügbar.
Zusammenfassung
Enumerative model checking tools are limited by the size of the
state space to which they can be applied. Reduction modulo branching
bisimulation usually results in a much smaller state space and therefore enables model checking of much larger state spaces. We present
an algorithm for reducing state spaces modulo branching bisimulation
which is suitable for distributed implementation. The target architecture is a cluster with a high bandwidth interconnect. The algorithm
is based on partition refinement and it works on transition systems
which contain cycles of invisible steps, without eliminating strongly
connected components first. To avoid fine grained parallelism, the algorithm refines the whole partition instead of just a single block in
the partition. We prove correctness and also present some experimental results obtained with single threaded and distributed prototypes.
Literatur
[BO03]
Blom, Stefan und Simona Orzan: Distributed Branching Bisimulation Reduction of State Spaces. In: Brim, Lubos und Orna
Grumberg (Herausgeber): Electronic Notes in Theoretical Computer Science, Band 89. Elsevier, 2003.
5
[CGP99] Clarke, Jr., Edmund M., Orna Grumberg und Doron A.
Peled: Model checking. MIT Press, 1999.
[LST03]
Lerda, Flavio, Nishant Sinha und Michael Theobald:
Symbolic Model Checking of Software. In: Cook, Byron, Scott
Stoller und Willem Visser (Herausgeber): Electronic Notes
in Theoretical Computer Science, Band 89. Elsevier, 2003.
[LSW03] Leucker, Martin, Rafal Somla und Michael Weber: Parallel Model Checking for LTL, CTL∗ , and Lµ . In: Brim, Lubos
und Orna Grumberg (Herausgeber): Electronic Notes in Theoretical Computer Science, Band 89. Elsevier, 2003.
[PZ01]
Peled, Doron und Lenore Zuck: From model checking to a
temporal proof. In: Proceedings of the 8th international SPIN workshop on Model checking of software, Seiten 1–14. Springer-Verlag
New York, Inc., 2001.
[RDHI03] Robby, Matthew Dwyer, John Hatcliff und Radu Iosif:
Space-Reduction Strategies for Model Checking Dynamic Software. In: Cook, Byron, Scott Stoller und Willem Visser
(Herausgeber): Electronic Notes in Theoretical Computer Science,
Band 89. Elsevier, 2003.
[YS03]
Yahav, Eran und Mooley Sagiv: Automatically Verifying
Concurrent Queue Algorithms. In: Cook, Byron, Scott Stoller und Willem Visser (Herausgeber): Electronic Notes in
Theoretical Computer Science, Band 89. Elsevier, 2003.
6