Docstoc

Herstellung und Verwendung von E

Document Sample
Herstellung und Verwendung von E Powered By Docstoc
					       Isabelle/HOL
(Kripke Structures & Model Checking)



 Ying Wang , Nelli Bärsch, Bartosz Rynarzewski,
                                   Gliederung


                       I. Kripke Struktur (Wiederholung)

                    II. Implementierung KS in Isabelle

                      III. PDL – Propsitional Dynamic Logic

                     IV. LTL (Wiederholung)




                                                              2
Analysetechniken in der Softweartechnik
   Kripke-Struktur (Wiederholung)


     Sei AP eine Menge von atomaren Propositionen.
                                                              , 
     Eine Kripke-Struktur M über AP ist ein Tupel M = S,S , R L mit
                                                          0

                       S ist eine endliche Menge von Zuständen
                      S 0  S ist eine Menge von Anfangszuständen.
                     R  S S ist eine totale transitive Relation, d.h.

                                  
                               s , ' ,s  R
                               Ss S , ' s  S
                                  s
                       L S  eine Funktion, die jedem Wert
                         :  AP
                          einen Wert aus AP zuweist.




                                                                           3
Analysetechniken in der Softweartechnik
                     Implementierung in Isabelle




       Typdefinition--Konservative Erweiterung


       Implementierung der Kripke Strukturen




                                                   4
Analysetechniken in der Softweartechnik
Analysetechniken in der Softweartechnik
            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




                                                             6
Analysetechniken in der Softweartechnik
                                 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))

                                                                                            7
Analysetechniken in der Softweartechnik
                   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 ≠ {})
                ∧ (\<forall>s∈S.(s1 in S.((s,s1) in R)))
               ∧(\<forall>s∈S.( (L s)<=AP
                                      ∧(\<forall>l in (L s).\<forall>a. l a = True))) } "
       Überprüfen: die neue Typ ist nicht leer.

                                                                                        8
Analysetechniken in der Softweartechnik
                   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
                                         x.
        lemma allI: (!!x. P x) ==> forall P x

                                                                     9
Analysetechniken in der Softweartechnik
              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))))"
                                                                             10
Analysetechniken in der Softweartechnik
              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)
                                          ∧ (\<forall> n in N.(p n,p (n+1)) in tra k)) "
         paths :: “ 'a kripke => 'a path set"
                   “ paths k == {p. isKripkePath k p}"
                                                                                     11
Analysetechniken in der Softweartechnik
   Propositional Dynamic Logic - PDL


       Programme P sind reguläre Ausdrücke über atomaren
        Programmen
       Algorithmenspezifikation anhand von Nachbedingungen
       Regeln, Steuerungsalgorithmen sind PDL-Programme




                                                              12
Analysetechniken in der Softweartechnik
   Semantik von PDL


       s |= Atom a  a  Ls
                           
        s |= Neg f   s | f             
       s |= And fg  s|f  |g
                             s
                      t
        s |= AX f  ,  M t
                      ts   f   |
                     t
        s |= EF f   ,  M t
                     ts * | f 




                                               13
Analysetechniken in der Softweartechnik
   PDL- Formeln und Programme

       Sei P eine Menge von AL Atomen,  0 eine Menge atomarer
                                   Atomen,   eine Menge atomarer
        Programme
       Jede Variable p  P ist eine PDL-Formel
       Sind A, B PDL-Formeln, dann auch AB,    A
       Jedes    0 ist ein PDL-Programm
                                              
        Sind  1 ,  2 PDL-Programme, dann auch  1 ,  2
       Sind  1 ,  2 PDL-Programme und A eine PDL-Formel, dann sind
                                              eine PDL-Formel, dann sind
        while A do  end und if A then  else  1 end PDL-Programme
                 do      end und if A then    else    end PDL-Programme
       Ist A eine PDL-Formel und  ein PDL-Programm, dann sind  A  A
              eine PDL-Formel und        ein PDL-Programm, dann sind  ,
         PDL-Programme.




                                                                   14
Analysetechniken in der Softweartechnik
   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))
                                       1
  




                                                   15
Analysetechniken in der Softweartechnik
 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

                                                  16
Analysetechniken in der Softweartechnik
 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



                                                                   17
Analysetechniken in der Softweartechnik   (Example by Tom Ridge)
 LTL in Isabelle (satisfaction)

     States satisfying LTL formulas
     Paths satisfying LTL formulas
     Kripke Structures satisfying LTL formulas




                                                                   18
Analysetechniken in der Softweartechnik   (Example by Tom Ridge)
                  Fragen und Anmerkung?




                                          19
Analysetechniken in der Softweartechnik

				
DOCUMENT INFO