Seminar Modellüberprüfung

Slides:



Advertisements
Ähnliche Präsentationen
Temporale Logiken: LTL und CTL
Advertisements

6. Regelbasierte Systeme
LTL - Modellüberprüfung
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Frame-Logik Eine Einführung Andreas Glausch.
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
10. Grundlagen imperativer Programmiersprachen
Hauptseminar Modellüberprüfung Kathrin Ott
der Universität Oldenburg
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Algorithmen und Komplexität
Seminar Software-Engineering für softwareintensive Systeme
Kapitel 4 Syntaktische Analyse: LR Parsing.
Computergestützte Verifikation
Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R Fr R
Computergestützte Verifikation
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Teil II Infinite State Systems.
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 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Geometrisches Divide and Conquer
Symbolisches Model Checking mit Binary Decision Diagrams
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Das Symbolic Model Verifier (SMV) System Präsentation im Rahmen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Java programmieren mit JavaKara
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Dynamische Datentypen
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
2.4 Rekursion Klassifikation und Beispiele
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 3
Einführung in PHP.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
MODULA-2.
Datentypen: integer, char, string, boolean
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Programmieren in C Grundlagen C 2
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
PHP: Operatoren und Kontrollstrukturen
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Grundlagen C 2
Computergestützte Verifikation
Korrektheit von Programmen – Testen
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Algorithmen und Datenstrukturen 1 SS 2002
Parallele Algorithmen I Basistechniken
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Elemente einer Z-Spezifikation
Information - syntaktisch
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
The Programming Language Pascal
 Präsentation transkript:

Seminar Modellüberprüfung SMV – Symbolic Model Verifier Referent: Markus Nosse Inhaltsübersicht: Grundlagen Das SMV System

Grundlagen – BDDs 1 Binäre Entscheidungsdiagramme Repräsentation von logischen Formeln Effiziente Algorithmen Kanonische Darstellungsform Repräsentation von Kripke Strukturen

Grundlagen – BDDs 2 Entscheidungsbaum Entscheidungsdiagramm ist (sehr viel) kompakter Beispiel: f = a Ù b  Ø c a b c 1 n1 n3 n2 a 1 c b

Grundlagen – BDDs 3 Zusammenfassen isomorpher Teilbäume Terminale Knoten var(v1) = var(v2) und low(v1) = low(v2) und high(v1) = high(v2) Elimination überflüssiger Entscheidungen low(v) = high(v) b c 1 n2 c 1

Grundlagen – BDDs 4 Direkte Konstruktion mittels Shannon Expansion f(x1,...,xn) = (xif1)  (Ø xi  f0), fk = f(x1,...,xi=k,...,xn ), k = 0,1 Pro Anwendung ein Knoten für xi Teilbäume ergeben sich rekursiv aus f0, f1 a 1 b  Øc Øc a Ù b  Øc b 1 a Øc a Ù b  Øc b 1 a a Ù b  Øc c b  Øc

Grundlagen - OBDDs Ordnung auf Variablen Optimale Ordnung Minimalität, Kanonität Effiziente Algorithmen Reduce – Minimierung mit Aufwand O(|G|log|G|) Apply – Logische Verknüpfung in O(|G||H|) Restrict – Shannon Expansion in O(|G|log|G|) Optimale Ordnung coNP vollständiges Problem Ausreichend gute Ordnungen sind bestimmbar

Grundlagen - Repräsentation Kripke-Strukturen als OBDDs Binäre Codierung der Zustandsvariablen Codierte Übergangsrelation definiert über {0,1} Charakteristische Funktion ist logische Formel Darstellbar als OBDD s1  s2: (a Ù b) Ù (a’ Ù Øb’) s2  s1: (a Ù Øb) Ù (a’ Ù b’) s2  s2: (a Ù Øb) Ù (a’ Ù Øb’) (s1s2)  (s2s1)  (s2s2) a b a Øb s1 s2

Symbolische Modellüberprüfung 1 Algorithmus Check Eingabe: CTL Formel Ausgabe: Menge der erfüllenden Zustände als OBDD Bezug auf eine Kripke Struktur (S,R,L), Übergangsrelation R liegt als OBDD vor

Symbolische Modellüberprüfung 2 Rekursive Definition über der Struktur von CTL Formeln Atomare Aussage f = a Ergebnis ist Menge der Zustände, in denen a erfüllt ist Boolesche Operatoren f = f1 Ù f2, f = f1 Berechnung mittels Apply Operanden sind Check(f1) und Check(f2) CTL Operator EX f Subroutine CheckEX Parameter ist Check(f) Ergebnis ergibt sich aus Relational Product Computation

Symbolische Modellüberprüfung 3 E[p U q]: CTL Operator EG f Subroutine CheckEG Parameter ist Check(f) Berechnung über größten Fixpunkt CTL Operator E[f U g] Subroutine CheckEU Parameter sind Check(f), Check(g) Berechnung über kleinsten Fixpunkt p q p q p q p q

SMV – Überblick 1 SMV – Symbolic Model Verifier Basistypen Signale Boolean Endliche Integer Intervalle Aufzählungstypen Syntaktische Abkürzungen für CTL Formeln Signale Im Sinne von „Variablen“ Definition als <name> : <typ> Eindeutige Zuweisungen, keine zirkulären Abhängigkeiten Operatoren init(<signal>) und next(<signal>)

SMV - Überblick 2 Module Prozesse Unterstützung von komponentenorientieren Modellen Mehrfach instanziierbar Parametrisierbar Eingabe- und Ausgabeparameter Synchrone oder asynchrone Modellierung Prozesse Schlüsselwort process Analogie: Prozessmodell auf Einprozessorsystem

SMV – Überblick 3 Spezifikation Mittels CTL Formeln Temporale Operatoren X, G, F und U neXt, Globally, in the Future, Until Implizite universelle Quantifizierung  Gegenbeispiele Voraussetzungen für Beweise using … prove Annahme von nichtbeweisbaren Eigenschaften assume …  Fairness-Bedingungen

Weitere Sprachkonstrukte 1 Alles syntaktische Abkürzungen Komplexe Typen Arrays Mit beliebigem Typ, auch n-dimensional oder generisch Index aufsteigend (0..7) oder absteigend (7..0) Bsp: proc: array[0..1]; bits: array[7..0] of boolean; Strukturierte Typen Definition über Module Ausnahme: Strukturen ohne Parameter Bsp: hands : struct { left, right: boolean; };

Weitere Sprachkonstrukte 2 If Anweisung if (<expr>) <stmt1> [ else <stmt2> ] Statements analog zu C oder Java Bsp: if (test) a = 1; else b = 1; Default Regeln Zustand des modellierten Systems entspricht Belegung der Zustandsvariablen Semantik undefinierter Zustandsvariablen? Defaults bestimmen Werte für undefinierte Variablen Explizite Regeln definierbar default <stmt1> in <stmt2>

Weitere Sprachkonstrukte 3 Case und Switch Anweisung Syntactic Sugar für if-else-Kaskaden Schleifen Sogenannte Konstruktor Loops werden zur Compilezeit ausgewertet und komplett ausgerollt

Fortgeschrittene Modellierung Modellierung in Schichten Bessere Abstraktion möglich Ausnutzen von Symmetrien Verifikation von “Repräsentanten” Anlehnung an Induktionsbeweise Bewertung Mächtige Konzepte Fehlerträchtige Modellierung wegen Komplexität

Beispiel Mutex MODULE proc(state, otherState) { output state: stateSet; input otherState: stateSet; init(state) := noncritical; case { (state = noncritical) : next(state) := {trying, noncritical}; (state = trying) & (otherState = noncritical) : next(state) := critical; (state = trying) & (otherState = trying) : (state = critical) : next(state) := {critical, noncritical}; default: next(state) := state; }; }

Beispiel Mutex typedef stateSet {noncritical, trying, critical}; MODULE main() { proc: array 0..1; for(i=0; i<2; i = i+1) proc[i] : process proc(proc[(i+1) mod 2].otherState, proc[(i+1) mod 2].state); fairness: assert G F proc[0].running & G F proc[1].running; proc0_fair: assert G F ~(proc[0].state = critical); proc1_fair: assert G F ~(proc[1].state = critical); mutex_violation: assert G F ~((proc[0].state = critical) & (proc[1].state = critical)); using fairness, proc0_fair, proc1_fair prove mutex_violation; assume fairness, proc0_fair, proc1_fair; }

Bewertung und Stellungnahme Praxistauglich Siehe Verifikation des FutureBus+ Kommerzielle Tools verfügbar, deutet auf industriellen Einsatz hin SMV scheint hardwarelastig zu sein Interessante Technologie, aber Theorie nicht leicht Modellierung auch nicht leicht