1 Computergestützte Verifikation 17.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Temporale Logiken: LTL und CTL
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Übung 1 Konstruiere einen Büchi-Automat, der genau die
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Bounded Model Checking II
Zusammenfassung der Vorwoche
Default Logiken Zhao Li
Hauptseminar Modellüberprüfung Kathrin Ott
Marco Barz Seminar über Algorithmen SoSe2007
Algorithmen und Komplexität
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R Fr R
1 Computergestützte Verifikation Abstraktion.
Computergestützte Verifikation
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Real Time Systeme 5.1 Timed Automata 5.2 TCTL 5.3 Abstraktion durch Regionen 5.4 Abstraktion durch Zonen.
Computergestützte Verifikation
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Algorithmentheorie 04 –Hashing
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Symbolisches Model Checking mit Binary Decision Diagrams
Reguläre Sprachen Karin Haenelt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Das Symbolic Model Verifier (SMV) System Präsentation im Rahmen.
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Modelchecker – RED Tool: Region-Encoding Diagram Stefan Neumann.
Christian Schindelhauer
Christian Schindelhauer
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
Fighting State Explosion
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
§14 Basis und Dimension (14.1) Definition: V sei wieder ein K-Vektorraum. Eine Menge B von Vektoren aus V heißt Basis von V, wenn B ist Erzeugendensystem.
§14 Basis und Dimension  (14.1) Definition: V sei wieder ein K-Vektorraum. Eine Menge B von Vektoren aus V heißt Basis von V, wenn B ist Erzeugendensystem.
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Materialien zum Informatikunterricht (Pohlig-Häberle)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Auslegung eines Vorschubantriebes
Kapitel 16 Ökonometrische Modelle
Analyse von Ablaufdiagrammen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Computergestützte Verifikation
Algorithmen für das Erfüllbarkeitsproblem SAT
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
1 Computergestützte Verifikation Übung 1 Konstruiere den Regionengraph für folgendes System (Anfang: k = 0) ! Identifiziere in diesem Graph.
 Präsentation transkript:

1 Computergestützte Verifikation

2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3: CTL-Model Checking 3.5: Reduktion durch Symmetrie 3.6: Partial Order Reduction 3.7: Tools 4.1: BDD-basiertes CTL-Model Checking 4.2: SAT-basiertes Model Checking 4.3: Tools 3.4: Fairness Kapitel 3 Kapitel 4

3 Verteilte Systeme Unabhängigkeitsrelation I zwischen Aktionen: [a,b] in I gdw. keine der beiden Aktionen kann die Enabling- Bedingung der anderen ändern, und Resultat der Hinterein- anderausführung von a und b ist unabhängig von der Reihenfolge s s1 s2 s z.B. [g,g] in I gdw. vorkommende Variablen disjunkt Unabhängige Aktionen tragen wesentlich zur Zustandsraumexplosion bei.

4 Ansatz bekämpfe Zustandsraumexplosion durch Unabhängigkeit unabhängige Aktionen können in beliebiger Reihenfolge stattfinden Reihenfolge ist oft unerheblich für Eigenschaft reduziere, wo möglich, die Anzahl der Reihenfolgen, in denen unabhängige Aktionen ausgeführt werden

5 Ample sets Sei s Zustand. ample(s) ist eine (wenn möglich) nichtleere Teilmenge der Aktionen, die bei s enabled sind Reduziertes Transitionssystem: verfolge bei s nur die Aktionen in ample(s)

6 Reduziertes Transitionssystem

7 Weiteres Vorgehen 1. Studieren Prinzipien, die Ample sets erfüllen müssen, um LTL-Eigenschaften zu bewahren 2. Implementationsfragen 3. Wie es bei CTL(*) aussieht 4. Varianten für einfache Eigenschaftsklassen

8 Prinzip # 1: Unabhängigkeit Alle Aktionen, die in s enabled sind und nicht in ample(s), sind von jeder Aktion in ample(s) unabhängig Stattfinden der ausgeschlossenen Aktionen wird auf Nachfolgezustände vertröstet Für jeden bei s beginnenden Pfad des originalen Systems: Keine Aktion, die von einer Aktion in ample(s) abhängig ist, kommt vor einer Aktion aus ample(s) vor.

9 Erstes Prinzip und unendliche Pfade Satz: Wenn das originale TS einen unendlichen Pfad enthält, so auch das reduzierte. s w 1. Fall: in w kommt ein a aus ample(s) vor s s1s2 w1a w2 2. Fall: in w kommt kein a aus ample(s) vor s w a s1 s2 w1 a w2 Wenn bei s unendl. Pfad ausführbar ist, so gibt es im red. TS einen Nachfolger von s, bei dem ein unendl. Pfad ausführbar ist. Rest: Induktion s1 w

10 Prinzip # 2: Sichtbarkeit ample(s) enthält entweder keine einzige sichtbare Aktion oder alle Aktionen, die enabled sind (sichtbar wie unsichtbar) 1. Fall: in w kommt ein a aus ample(s) vor s s1s2 w1a w2 s1 s2 d w1 a w2 a unsichtbar oder w1 leer 2. Fall: in w kommt kein a aus ample(s) vor s w a s1 w a unsichtbar diejenigen sichtbaren Aktionen, die aus dem Originalpfad in den reduzierten Pfad übernommen werden, bleiben in der gleichen Reihenfolge

11 Prinzip # 3: Nichtignorierung Jeder Kreis im reduzierten Transitionssystem enthält einen Zustand s, wo ample(s) alle Aktionen enthält, die in s enabled sind Wirkung: in einem solchen Zustand kann Fall 1 der Pfadargumentation angewendet werden. Jede Aktion des Originalpfades wird irgendwann\ auch im konstruieerten Pfad ausgeführt

12 Implementation von Prinzip # 1 Wenn ample*(s) folgende Bedingungen erfüllt: (E) Wenn g in ample*(s) und en(g,s), so sind alle von g abhängigen Aktionen in ample*(s) (D) Wenn g in ample*(s) und ¬en(g,s), so sind für ein U mit ¬en(g,s,U) alle Aktionen aus wrup(g,U) in ample*(s) dann erfüllt ample(s) := ample*(s) en(s) Prinzip # 1: Wenn g in ample(s), so sind alle abhängigen Aktionen in ample*(s) (E) Wenn g in ample*(s) und disabled, so können Aktionen außerhalb ample*(s) g nicht aktivieren. Algorithmus: Ersetze sind drin durch müssen auch rein, löse Nichtdeterminismus bei der Wahl von U irgendwie auf.

13 Beispiel: Wechselseitiger Ausschluß g1: pc1 =idle pc1 := req g2: pc1 = req sem = 1 sem := 0, pc1 := crit g3: pc1 = crit sem := 1, pc1 := idle g1: pc2 =idle pc2 := req g2: pc2 = req sem = 1 sem := 0, pc2 := crit g3: pc2 = crit sem := 1, pc2 := idle unabhängig: [g1,g1], [g3,g3], [g1,g2], [g1,g2], [g1,g3], [g1,g3], und umgekehrt. (i,i,1) g1g2g3 g1g2g3 {pc} (r,i,1)

14 Beispiel: Wechselseitiger Ausschluß g1: pc1 =idle pc1 := req g2: pc1 = req sem = 1 sem := 0, pc1 := crit g3: pc1 = crit sem := 1, pc1 := idle g1: pc2 =idle pc2 := req g2: pc2 = req sem = 1 sem := 0, pc2 := crit g3: pc2 = crit sem := 1, pc2 := idle unabhängig: [g1,g1], [g3,g3], [g1,g2], [g1,g2], [g1,g3], [g1,g3], und umgekehrt. (i,i,1) g1g2 g1g2g3 (r,i,1) {pc} g3 {pc} (r,r,1)

15 Beispiel: Wechselseitiger Ausschluß g1: pc1 =idle pc1 := req g2: pc1 = req sem = 1 sem := 0, pc1 := crit g3: pc1 = crit sem := 1, pc1 := idle g1: pc2 =idle pc2 := req g2: pc2 = req sem = 1 sem := 0, pc2 := crit g3: pc2 = crit sem := 1, pc2 := idle unabhängig: [g1,g1], [g3,g3], [g1,g2], [g1,g2], [g1,g3], [g1,g3], und umgekehrt. (i,i,1) g1g2g3 g1g2g3 (r,r,1) {pc} (c,r,0) (r,c,0) (r,i,1)(i,r,1) p.o. red: 6/8 symm: 5/8 p.o red + symm: 4/8

16 Wie sieht es bei CTL(*) aus? A C B a bc C B bc AC AB AA A bc a a a a a rot + blau = voll rot = reduziert Prinzipien 1-3 erfüllt EF( A EF B EF C)

17 Wie sieht es bei CTL(*) aus? Problem: CTL(*) ist sensitiv gegenüber dem Zeitpunkt, wo Pfade verzweigen Reduktion darf Verzweigungspunkte nicht verschieben Prinzip CTL*: ample(s) besteht entweder aus einer einzigen Aktion, die superdeterministisch ist und unsichtbar, oder aus allen aktivierten Aktionen (deterministisch in allen Zuständen)

18 Vorläufige Zusammenfassung linearer Overhead zur Bestimmung von ample sets Umfang der Reduktion schwer prognostizierbar, aber in vielen typischen Anwendungen exponentiell Signifikante Zahl unsichtbarer Aktionen notwendig Für unverteilte Systeme komplett unbrauchbar Bei verteilten Systemen ist partial order reduction meist die leistungsfähigere Methode Beide Reduktionstechniken kombinierbar

19 Varianten für einfache Eigenschaftsklassen Ziel: Reduktionstechniken, die nicht auf unsichtbare Aktionen angewiesen sind Sei Zustandsprädikat (Formel ohne Temporaloperationen) wrup(s, ) = Menge von Aktionen, so daß jeder Weg von s zu einem s mit s mind. eine Aktion aus wrup(s, ) enthält. Sei s Satz: Originales TS erfüllt EF gdw. ein reduziertes, das Prinzip # 1 befolgt und wo jedes ample*(s) auch wrup(s, ) enthält.

20 Beweis s s0 orig. red. s aus wrup(s, ) 1. aus ample(s) a s1 s1 näher an s als s

21 AG EF AG EF TS AG EF gdw. terminale SZK C s C: s TS EF AG gdw. terminale SZK C s C: s TS EF AG EF gdw. terminale SZK C s C: s TS AG EF AG gdw. terminale SZK C s C: s TS AG EF AG EF gdw. TS AG EF TS EF AG EF AG gdw. TS EF AG Sei Zustandsprädikat Satz: Wenn red. TS Prinzipen #1 und #3 erfüllt, so ist aus jeder TSZK des orig. Systems mind. 1 Zustand auch in einer TSZK des red. Systems enthalten, und jede TSZK des red. Systems ist Teilmenge einer TSZK des orig. Systems.

22 Verifikation TSZK-bezogender Eigenschaften 1. Schritt. konstruiere red. TS nach Prinzipien #1 und #3 2. Schritt. Wähle ein si aus jeder TSZK Ci 3. Schritt. Prüfe si EF bzw. si EF ¬ für alle si nach der wrup-Methode

Tools

24 Spin Eingabesprache: Promela – Prozesse + guarded commands Spezifikation: LTL oder direkt als Büchi-Automat Reduktionstechniken: Partial Order Reduction Sonstige Tricks: Bithashing

25 Mur Eingabesprache: Guarded Commands Spezifikation: Einfache Erreichbarkeitsqueries Reduktionstechniken: Symmetrie (scalar sets) sonstige Tricks: parallele Version

26 LoLA Eingabesprache: Petrinetze (guarded commands der Form x1 k1... xm km x1 := x1 – k1,...,xm := xm – km, y1 : y1 : l1,..., yn := yn+ln ) Reduktionstechniken: stubborn sets, Symmetrien (Automorphismen) Spezifikation: CTL, viele kleine Eigenschaftsklassen sonstige Tricks: Petrinetzspezifische Tricks, parallele Version, Bithashing

27 Übung Generiere ein reduziertes Transitionssystem, das Prinzip # 1 genügt, zu folgendem Programm Var w1, w2: {idle, pending, writing} Var r1,r2,r3:{idle,reading} Var sem: {0,1,2,3} Var key: bool init(wi) = init(ri) = idle, init(sem) = 3, init(key) = true g1[i]: wi = idle key key := false, wi := pending g2[i]: wi = pending sem = 3 sem := 0, key := true, wi := writing g3[i]: wi = writing wi := idle, sem := 3 g1[i]: ri = idle key sem > 0 ri = reading, sem := sem – 1 g2[i]: ri = reading ri := idle, sem := sem + 1