Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,"—  Präsentation transkript:

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

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

3 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.

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

5 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

6 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

7 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))

8 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.

9 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

10 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))))"

11 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}"

12 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

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

14 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.

15 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))

16 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

17 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)

18 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)

19 Analysetechniken in der Softweartechnik 19 Fragen und Anmerkung?


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

Ähnliche Präsentationen


Google-Anzeigen