Bounded Model Checking II

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Algorithmen für das Erfüllbarkeitsproblem SAT
Temporale Logiken: LTL und CTL
Programmierung 1 - Repetitorium
LTL - Modellüberprüfung
Statistische Aspekte der PSG
Daniel Neumann Seminar Systementwurf Wintersemester 2006/07 Zustandsautomaten/ Kripke-Strukturen Daniel Neumann
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Ü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.
Eingebettete Systeme Qualität und Produktivität
Grenzen endlicher Automaten
7. Natürliche Binärbäume
Default Logiken Zhao Li
Organisatorisches Klausur für Übungsschein (Anfang Januar)
8. Formale Sprachen und Grammatiken
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Hauptseminar Modellüberprüfung Kathrin Ott
Seminar Modellüberprüfung
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
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 Teil II Infinite State Systems.
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
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:
Automatentheorie „Berechnungsmodell für logische Sprachen“
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Monadische Logik 2.Ordnung (MSO)
Funktionen.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Eduard Sauerbrei Formale Techniken Eduard Sauerbrei
Symbolisches Model Checking mit Binary Decision Diagrams
Mathematische Grundlagen
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Christian Schindelhauer
§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.
Maschinelles Lernen und automatische Textklassifikation
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Institut für Theoretische Informatik
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den Brute Force Search Algorithmus schlagen?
Information und Kommunikation
Eine Präsentation von Lena Sauter & Corinna Nawatzky
Beispiel 8.12 (Selbststudium) Corporate Finance Grundkurs II.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung

Computergestützte Verifikation
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Der A*-Algorithmus.
 Präsentation transkript:

Bounded Model Checking II Julia Withauer 12.06.2002 Inhalt: 1............. Kurze Wiederholung 2............. Übersetzung in Aussagenlogik (Prüfung der Entscheidbarkeit) 3............. Bestimmung der Schranke (LTL)

Kripke-Modell: Quintupel M = (S, I, T, A, ℓ) S endliche Menge der Zustände binäre Kodierung: s = ( s(0), s(1), ..., s(n-1) ) I  S endliche Menge der Anfangszustände T  SS endliche Menge von Transitionsrelationen (s, t)  T := s  t A Menge von atomaren Aussagen (z.B. p,q) ℓ: S  P(A) Funktion zur Markierung der Zustände mit Elementen von A Ein Pfad  = (so, s1, s2, ... ) ist eine Folge von Zuständen, es gilt: i = (si, si+1, ...) (i) = si

Temporale Operatoren (LTL): Gf „globally” “zu jedem zukünftigen Zeitpunkt gilt f“ Xf „next time“ “zum nächsten Zeitpunkt gilt f” Ff „finally“ “zu irgendeinem zukünftigen Zeitpunkt gilt f“ fUg „until” “g wird gelten, bis dahin gilt f” fRg „release“ “f wird gelten, bis dahin gilt g oder g gilt immer”

Übersetzung in Aussagenlogik M ⊨ Ef gdw. ∃k  ℕ mit M ⊨k Ef Herleiten einer aussagenlogischen Formel φ ⇒ Entscheidbarkeitsproblem der Aussagenlogik (SAT) SAT φ gdw. M ⊨k f |[ M, f ]|k := |[ M ]|k ∧ |[ f ]|k

Überblick Wie gehen wir vor? ∃  ⊨k f ⇔ ∃ (so, s1, s2, …, sk) mit (1) (so, s1, s2, …, sk) ist ein Pfad ohne Loop und (so, s1, s2, …, sk) ⊨ f als Pfad ohne Loop (2) (so, s1, s2, …, sk) ist ein Pfad mit k-Loop und (so, s1, s2, …, sk) ⊨ f als Pfad mit l- Loop

 ist ein Pfad in M, wenn Fragestellung: Ist  = (s0, s1, s2, ..., sk) ein Pfad in M?  ist ein Pfad in M, wenn folgende Eigenschaften erfüllt sind: s0 ist Anfangszustand und (s0,s1), (s1,s2) … (sk-1,sk) sind Transitionen. k-1 |[ M ]|k := I(s0) ∧ ∧ T(si,si+1) i = 0

⇒ Finden von aussagenlogischen Formeln für das gegebene Modell Dazu ein BEISPIEL: zi(0) zi = ( zi(0), zi(1) ) = zi(1) {z0, z2}  I { (z0,z1), (z1,z2), (z2,z0), (z2,z3), (z3,z2), (z3,z3) }  T

⇒ I(s0) = ( (¬s0(0)) ∧ (¬s0(1)) ) ∨ (s0(0) ∧ (¬s0(1)) ) zi(0) zi = ( zi(0), zi(1) ) = zi(1) ⇒ I(s0) = ( (¬s0(0)) ∧ (¬s0(1)) ) ∨ (s0(0) ∧ (¬s0(1)) ) T(s0,s1) = [ (¬s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ s1(1) ) ] (≙ z0  z1) ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ ¬s1(1) ) ] (≙ z2  z0) ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( s1(0) ∧ s1(1) ) ] (≙ z2  z3) T(s1,s2) = [ ( ¬s1(0) ∧ ¬s1(1) ) ∧ ( ¬s2(0) ∧ s2(1) ) ] (≙ z0  z1) ∨ [ ( ¬s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] (≙ z1  z2) ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] (≙ z3  z2) ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ s2(1) ) ] (≙ z3  z3)

|[ M ]|k := I(s0) ∧ T(s0,s1) ∧ T(s1,s2) = [ ( (¬s0(0)) ∧ (¬s0(1)) ) ∨ (s0(0) ∧ (¬s0(1)) ) ] ∧ [ (¬s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ s1(1) ) ] ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ ¬s1(1) ) ] ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( s1(0) ∧ s1(1) ) ] [ ( ¬s1(0) ∧ ¬s1(1) ) ∧ ( ¬s2(0) ∧ s2(1) ) ] ∨ [ ( ¬s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ s2(1) ) ] Gegebene Pfade mit k = 3 -  = (so, s1, s2) : Gültiger Pfad! 1.) |[ M ]|k := [ ( 0 ∧ 1) ∨ ( 1 ∧ 1 ) ] ∧ [ ( 0 ∧ 1 ∧ 1 ∧ 0 ) ∨ ( 1 ∧ 1 ∧ 1 ∧ 1 ) ∨ ( 1 ∧ 1 ∧ 0 ∧ 0 ) ] [ ( 1 ∧ 1 ∧ 1 ∧ 1 ) ∨ ( 1 ∧ 0 ∧ 1 ∧ 0 ) ∨ ( 0 ∧ 0 ∧ 0 ∧ 0 ) ∨ ( 0 ∧ 0 ∧ 0 ∧ 1 ) ] 1 1.) 1 1 1 z2 zo z1 1 2.) 1 1 1 1 z1 z2 z3

↯ |[ M ]|k := I(s0) ∧ T(s0,s1) ∧ T(s1,s2) = [ ( (¬s0(0)) ∧ (¬s0(1)) ) ∨ (s0(0) ∧ (¬s0(1)) ) ] ∧ [ (¬s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ s1(1) ) ] ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( ¬s1(0) ∧ ¬s1(1) ) ] ∨ [ ( s0(0) ∧ ¬s0(1) ) ∧ ( s1(0) ∧ s1(1) ) ] [ ( ¬s1(0) ∧ ¬s1(1) ) ∧ ( ¬s2(0) ∧ s2(1) ) ] ∨ [ ( ¬s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ ¬s2(1) ) ] ∨ [ ( s1(0) ∧ s1(1) ) ∧ ( s2(0) ∧ s2(1) ) ] Gegebene Pfade mit k = 3 -  = (so, s1, s2) : Gültiger Pfad! 1.) 1 1 z2 zo z1 ↯ Kein gültiger Pfad! 2.) 1 1 |[ M ]|k := ( 1 ∧ 0) ∨ ( 0 ∧ 0 ) ] ∧ [ … ] ∧ [ … ] = 0 1 1 z1 z2 z3

Fragestellung: Wie übersetzt man die LTL-Formeln in aussagenlogische Formeln? Pfad ohne Schleife |[ p ]| ki := p(si) |[ ¬p ]| ki := ¬p(si) |[ f ∧ g ]| ki := |[ f ]| ki ∧ |[ g ]| ki |[ f ∨ g ]| ki := |[ f ]| ki ∨ |[ g ]| ki |[ Gf ]| ki := false (wir wissen nichts über k+1) ⇔ p  ℓ(si)

|[M, f]|k := |[M]|k ∧ ( ¬Lk ∧ |[ f ]| k0 ) m = i |[ Ff ]| ki := |[ f ]| ki ∨ |[ f ]| ki+1 ∨ … ∨ |[ f ]| kk-1 ∨ |[ f ]| kk |[ Xf ]| ki := |[ f ]| ki+1 für i < k, sonst false (k+1 ?) |[ f U g ]| ki := |[ g ]| ki ∨ ( |[ g ]| ki+1 ∧ |[ f ]| ki ) ∨ (|[ g ]| ki+2 ∧ |[ f ]| ki ∧ |[ f ]| ki+1) ∨ … ∨ ( |[ g ]| kk ∧ |[ f ]| ki ∧ |[ f ]| ki+1 ∧ … ∧ |[ f ]| kk-1 ) |[ f R g ]| ki k m-1 := ∨ ( |[g]|km ∧ ∧ |[f]|kn ) m = i n = i k m := ∨ ( |[f]|km ∧ ∧ |[g]|kn ) m = i n = i ⇒ allgemeine Übersetzung ohne Loop |[M, f]|k := |[M]|k ∧ ( ¬Lk ∧ |[ f ]| k0 )

Pfad mit (k,l)-Schleife i, l, k  ℕ mit i, l ≤ k

l|[ p ]| ki := p(si) l|[ ¬p ]| ki := ¬p(si) l|[ f ∧ g ]| ki := l|[ f ]| ki ∧ l|[ g ]| ki l|[ f ∨ g ]| ki := l|[ f ]| ki ∨ l|[ g ]| ki l|[ Gf ]| ki l|[ Ff ]| ki l|[ Xf ]| ki := l|[ f ]| kl für i = k, l|[ f ]| ki+1 sonst k := ∧ l|[f]|km m = min(i,l) k := ∨ l|[f]|km m = min(i,l)

l|[ f U g ]| ki := l|[ g ]| ki ∨ ( l|[ g ]| ki+1 ∧ l|[ f ]| ki ) ∨ ( l|[ g ]| ki+2 ∧ l|[ f ]| ki ∧ l|[ f ]| ki+1) ∨ … ∨ ( l|[ g ]| kk ∧ l|[ f ]| ki ∧ l|[ f ]| ki+1 ∧ … ∧ l|[ f ]| kk-1 ) ∨ ( l|[ g ]| kl ∧ l|[ f ]| ki ∧ l|[ f ]| ki+1 ∧ … ∧ l|[ f ]| kk ) ∨ ( l|[ g ]| kl+1 ∧ l|[ f ]| ki ∧ l|[ f ]| ki+1 ∧ … ∧ l|[ f ]| kl ) ∨ … ∨ ( l|[ g ]| ki-1 ∧ l|[ f ]| ki ∧ l|[ f ]| ki+1 ∧ … ∧ l|[ f ]| ki-2 ) l|[ f R g ]| ki k m-1 i-1 k m-1 := ∨ ( l|[g]|km ∧ ∧ l|[f]|kn ) ∨ ∨ ( l|[g]|km ∧ ∧ l|[f]|kn ∧ ∧ l|[f]|kn ) m = i n = i m = l n = i n = l k k m := ∧ l|[g]|km ∨ ∨ ( l|[f]|km ∧ ∧ l|[g]|kn ) m = min(i,l) m = i n = i i-1 k m ∨ ∨ ( l|[f]|km ∧ ∧ l|[g]|kn ∧ ∧ l|[g]|kn ) m = l n = i n = l

⇒ allgemeine Übersetzung mit Loop Fragestellung: Besitzt der Pfad eine Schleife (Loop)? Loop-Bedingung: k Lk := ∨ lLk mit lLk := T(sk,sl) l = 0 ⇒ allgemeine Übersetzung mit Loop k |[M, f]|k := |[M]|k ∧ ( ∨ ( lLk ∧ l|[ f ]| k0 ) ) l = 0

Allgemeine Übersetzung: k |[ M, f ]|k := |[ M ]|k ∧ ( ( ¬Lk ∧ |[ f ]| k0 ) ∨ ∨ ( lLk ∧ l|[ f ]| k0 ) ) l = 0 |[ M, f ]|k erfüllbar ⇔ M ⊨k Ef ⇔ M ⊨ Ef

Bestimmung der Schranke k k ≤ 2|f|  |M| |M| - Anzahl der Zustände des Kripke-Modells M |f| - Länge der LTL-Formel f (Anzahl der Operatoren) Abschätzung durch Büchi-Automat: Konstruktion des Produktautomaten |Bf|  |M| Betrachten des Pfades w = v0 v1ω (Loop!) |v1| ≤ |Bf|  |M| mit |Bf| = 2O(|f|)