Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,

Slides:



Advertisements
Ähnliche Präsentationen
Deduktive Datenbanken
Advertisements

Temporale Logiken: LTL und CTL
Klassen - Verkettete Liste -
Programmierung 1 - Repetitorium
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
6. Regelbasierte Systeme
ACM ICPC Praktikum Kapitel 8: Backtracking. Übersicht Backtracking Aufzählung aller Teilmengen Aufzählung aller Permutationen n-Königinnen-Problem.
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
Bounded Model Checking II
Einführung in JavaScript II
8. Formale Sprachen und Grammatiken
10. Grundlagen imperativer Programmiersprachen
Finale Semantik und beobachtbares Verhalten
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
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
Grammatiken, Definitionen
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Kapitel 4 Syntaktische Analyse: LR Parsing.
Computergestützte Verifikation
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:
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Union-Find-Strukturen
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Eduard Sauerbrei Formale Techniken Eduard Sauerbrei
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.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
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.
Types and Programming Languages: Einführung Typen SWT Seminar WS 05/06
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
René Castillo Björn Bollensdorff Analysetechniken in der Softwaretechnik SS 2007 Featherweight Java Inside every large language is a small language struggling.
§17 Produkte und Quotienten von Vektorräumen
RDF MT Resource Description Framework Model Theory © 2002 by Emir Blažević
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Aufgabenstellung Aufgabenstellung: What do the following terms (formulae) express? Which of these terms characterize all sequences of real numbers , x_n.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Relationentheorie AIFB SS Relationen in 1NF und relationale Datenbanken(1/5) Attribut a Wertebereichdom(a) (domain) AttributemengeA = {a 1,...,
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung

Computergestützte Verifikation
Korrektheit von Programmen – Testen
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.
7. Formale Sprachen und Grammatiken
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
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Sortigkeit oder Arität
Elemente einer Z-Spezifikation
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Lukas Kerecz - Edits1 Edits Lukas Kerecz. Lukas Kerecz - Edits2 Gliederung  Einführung  Edits – warum und wofür?  Edits – Definiton  einleitende Beispiele.
 Präsentation transkript:

Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,

Analysetechniken in der Softweartechnik 2 Gliederung I. Kripke Struktur (Wiederholung) II. Implementierung KS in Isabelle IV. LTL (Wiederholung) III. PDL – Propsitional Dynamic Logic

Analysetechniken in der Softweartechnik 3 Kripke-Struktur (Wiederholung) Sei AP eine Menge von atomaren Propositionen. Eine Kripke-Struktur M über AP ist ein Tupel M = mit S ist eine endliche Menge von Zuständen ist eine Menge von Anfangszuständen. ist eine totale transitive Relation, d.h. eine Funktion, die jedem Wert einen Wert aus AP zuweist.

Analysetechniken in der Softweartechnik 4 Implementierung in Isabelle Typdefinition--Konservative Erweiterung Implementierung der Kripke Strukturen

Analysetechniken in der Softweartechnik 5 Typedefinition--Konservative Erweiterung Prinzip der konservativen Erweiterung Definition eines neuen Typs aus bereits existierenden: 1. Gegeben Typ T, Prädikat P: T => Bool 2. Tpy Tp mit Abs_Tp : T => Tp, Rep_Tp : Tp => T so dass P und Tp isomorph: für jede tp Tp : Abs_Tp(Rep_Tp tp) = tp, für jede t T: P t Rep_Tp(Abs_Tp t)= t Tp nicht leer :Beweis ist erforderlich Konrekte Sytax: typedef Tp = {y::T. Py} P p bs_Tp Rep_Tp

Analysetechniken in der Softweartechnik 6 Implementierung der Kripke Strukturen Pairs und Tuples Theory von Kripke Strukturen: typedef: als fünf-elementige Tuples constdefs Welche Problem bei der Implementierung?-Lösung

Analysetechniken in der Softweartechnik 7 Basis Type--pairs Pairs : pair [T1,T2] => T1 × T2 Sytax (_,_)(toturial:2.5.2, Logic HOL:2.5.1) Funktionen : fst (a1,a2) = a1 snd (a1, a2) = a2 Tuples (Tuples werden durch Pairs simuliert) Beispiel : Tuple A : (a, b, c, d) = (a, (b, (c, d) ) ) snd(A)=(b, (c, d) ) snd (snd A) = (c, d) fst(snd (snd A)) c = fst (snd (snd A))

Analysetechniken in der Softweartechnik 8 Typedefs der Kripke Strukturen types 'a Proposition = ('a => bool) types 'a Propositions = 'a Proposition set typedef 's kripke = "{(S,I,R,AP,L) :: (('s set) * ('s set) * ('s * 's) set * 's Propositions * ('s => 's Propositions)) | S I R AP L. ( I <= S) (S {}) (\ s S.( s1 in S.((s,s1) in R))) (\ s S.( (L s)<=AP (\ l in (L s).\ a. l a = True))) } " Überprüfen: die neue Typ ist nicht leer.

Analysetechniken in der Softweartechnik 9 Lemmas Bei dem Überprüfen lemma exI : P x ==> x. P x lemma CollectI : P a ==> a in {x. P x} lemma conjI : [| P ; Q |] ==> P and Q lemma refl : t = t lemma subset_refl : lemma notI : (P ==> False) ==> - P lemma ballI: (!!x. x in A ==> P x) ==> forall x in A. P x lemma bexI: [| P x ; x in A |] ==> x in A. P x lemma empty_subsetI : {} <= A lemma allI: (!!x. P x) ==> forall x. P x

Analysetechniken in der Softweartechnik 10 constdefs in der Kripke Strukturen(1) constdefs: state :: " 'a kripke => 'a set " state k == fst (Rep_kripke k) start :: " 'a kripke => 'a set" " start k == fst (snd (Rep_kripke k))" tra :: 'a kripke => ('a * 'a) set" " tra k == fst (snd (snd (Rep_kripke k)))" allprop :: 'a kripke => 'a Propositions " allprop k == fst (snd (snd (snd (Rep_kripke k))))" labelfun :: 'a kripke => ('a => 'a Propositions) " labelfun k == snd (snd (snd (snd (Rep_kripke k))))"

Analysetechniken in der Softweartechnik 11 constdefs in der Kripke Strukturen(2) Tpy von Path Problem : Path besteht aus die unendliche Zuständen. Idee : eine Funktion von unendliche natuerliche Zahlmennge N zu beliebige Typ ´a types 'a path = "nat => 'a" constdefs isKripkePath :: a kripke =>a path => bool isKripkePath k p == ((p 0 in start k) (\ n in N.(p n,p (n+1)) in tra k)) " paths :: 'a kripke => 'a path set" paths k == {p. isKripkePath k p}"

Analysetechniken in der Softweartechnik 12 Propositional Dynamic Logic - PDL Programme P sind reguläre Ausdrücke über atomaren Programmen Algorithmenspezifikation anhand von Nachbedingungen Regeln, Steuerungsalgorithmen sind PDL-Programme

Analysetechniken in der Softweartechnik 13 Semantik von PDL s |= Atom a s |= Neg f s |= And fg s |= AX f s |= EF f

Analysetechniken in der Softweartechnik 14 PDL- Formeln und Programme Sei P eine Menge von AL Atomen, eine Menge atomarer Programme Jede Variable ist eine PDL-Formel Sind A, B PDL-Formeln, dann auch Jedes ist ein PDL-Programm Sind PDL-Programme, dann auch Sind PDL-Programme und A eine PDL-Formel, dann sind while A do end und if A then else end PDL-Programme Ist A eine PDL-Formel und ein PDL-Programm, dann sind PDL-Programme. PDL- Formeln und Programme Sei P eine Menge von AL Atomen, eine Menge atomarer Programme Jede Variable ist eine PDL-Formel Sind A, B PDL-Formeln, dann auch Jedes ist ein PDL-Programm Sind PDL-Programme, dann auch Sind PDL-Programme und A eine PDL-Formel, dann sind while A do end und if A then else end PDL-Programme Ist A eine PDL-Formel und ein PDL-Programm, dann sind PDL-Programme.

Analysetechniken in der Softweartechnik 15 PDL - Model Checking mc (Atom a) = {s. a L s} mc (Neg f) = -mc f mc (And f g) = mc f mc g mc (AX f) = {s. t. (s,t) M t mc f} mc (EF f) = lfp ( T. mc f (M T))

Analysetechniken in der Softweartechnik 16 LTL (reminder) Sublogic of CTL* Only formulas of the form A f, where f is a path formula containing only atomic propositions as state subformulas. Expresses properties only along computation paths

Analysetechniken in der Softweartechnik 17 LTL in Isabelle Datatype Atomic propositions by primrec over the syntax of an LTL formula Set of LTL formulas constructed from set of atomic propositions (Example by Tom Ridge)

Analysetechniken in der Softweartechnik 18 LTL in Isabelle (satisfaction) States satisfying LTL formulas Paths satisfying LTL formulas Kripke Structures satisfying LTL formulas (Example by Tom Ridge)

Analysetechniken in der Softweartechnik 19 Fragen und Anmerkung?