prasentation der seminararbeit¨ · prasentation der seminararbeit¨ interaktive verifikation von...

53
Pr¨ asentation der Seminararbeit Interaktive Verifikation von synchronen Systemen Alpin Mete S ¸ ahin, Cenk G ¨ undo ˘ gan Fachbereich f¨ ur Mathematik und Informatik Institut f ¨ ur Informatik 23. Juli 2013 Institut f ¨ ur Informatik – Pr¨ asentation der Seminararbeit – 23. Juli 2013 1

Upload: others

Post on 17-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Prasentation der SeminararbeitInteraktive Verifikation von synchronen Systemen

Alpin Mete Sahin, Cenk Gundogan

Fachbereich fur Mathematik und InformatikInstitut fur Informatik23. Juli 2013

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 1

Page 2: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Inhalt

1. Motivation

2. Synchrone Systeme

3. Quartz

4. Synchrone bedingte Aktionen

5. Averest-Framework

6. Interaktive Verifikation von synchronen Systemen

7. Zusammenfassung

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 2

Page 3: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Motivation

Motivation

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 3

Page 4: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Motivation

Programmverifikation– Nachweis, dass ein Programm das tut, was es soll– es existieren verschiedene etablierte Techniken zur Programmverifikation

– formale Programmverifikation– Modelchecking-Verfahren

– Nachteile beschranken die Benutzung dieser Programmverifikationstechniken

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 4

Page 5: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

MotivationFormale Programmverifikation

Abbildung: Fakultat-Funktion [1]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 5

Page 6: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

MotivationFormale Programmverifikation

Abbildung: Hoare-Kalkul zur Fakultat-Funktion [1]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 6

Page 7: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

MotivationModelchecking

Abbildung: Modellchecking-Prozess [2]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 7

Page 8: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

MotivationModelchecking

– Anzahl der Zustande wachst exponentiell zur Anzahl der Variablen– N Variablen mit k moglichen Werten ergeben kN Zustande– Zustandsraum-Explosions-Problem

Ein Programm mit 10 Anweisungen, 3 bool und 5 int (von 0...9) Variablen besitztfolgende Anzahl an Zustanden:

10 · 23 · 105 = 800, 000

Hinzugabe eines bool[50]-Arrays erhoht den Zustandsraum auf

800, 000 · 250

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 8

Page 9: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone Systeme

Synchrone Systeme

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 9

Page 10: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone SystemeFunktionsweise

Abbildung: Funkionsweise eines synchronen Systems

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 10

Page 11: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone SystemeKlassifizierung

KlassifizierungSynchrone Systeme werden nach dem Verhalten ihrer Ausgabeparameter in zweiverschiedene Klassen klassifiziert.

– getaktete synchrone Systeme– perfekte synchrone Systeme

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 11

Page 12: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone SystemeKlassifizierung

getaktete synchrone SystemeAusgabe eines Makroschrittes wird nur folgendem Makroschritt zur Verfugung gestellt

– Einschrankung der Lese-Zugriffe anderer Makroschritte auf diese Ausgaben– Weitergabe der Referenz auf die Ausgaben direkt in den nachsten Makroschritt

perfekte synchrone Systeme– Variablenanderungen werden sofort einsehbar– konnen im aktuellen Makroschritt benutzt werden

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 12

Page 13: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone SystemeKausalitatszyklen

Kausalitatszyklen– parallele Ausfuhrung der Ausdrucke kann zu Kausalitatszyklen fuhren– Vorbedingung einer Anweisung wird durch eine andere Anweisung negiert– muss vom Compiler uberpruft werden

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 13

Page 14: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartz

Quartz

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 14

Page 15: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

– statisch getypte synchrone Programmiersprache– Programme werden aus einem oder mehreren Modulen aufgebaut– Variablendeklaration bestimmt Zugriff auf den Variablenwert– zusatzlich zum Systemverhalten existieren ebenfalls Spezifikationen

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 15

Page 16: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Modul

Listing 1: Modul-Block in Quartz

module M1(int<3> a[8], event !o, nat<5> b, bool ?p, int !r)

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 16

Page 17: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Variablendeklaration– Datentyp (atomare, zusammengesetzte)– Informationsfluss (input, output, inout, local)– Speichertyp (event, memorized)

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 17

Page 18: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Listing 2: Modul-Block in Quartz

module M1(int<3> a[8], event !o, nat<5> b, bool ?p, int !r)

Name Datentyp Informationsfluss Speichertyp

a array(int<3>,8) unkontrollierter input -o bool output eventb nat<5> unkontrollierter input -p bool kontrollierter input -r int output memorized

Tabelle: Erklarung der Variablendeklarationen

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 18

Page 19: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Programmspezifikation– Temporale Logiken zur Spezifikation und Verifikation von Computersystemen– Linear-time temporal logic (LTL)– Computation tree logic (CTL)– CTL*

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 19

Page 20: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Abbildung: Mengenbeziehung von LTL, CTL und CTL* [3]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 20

Page 21: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Abbildung: Operatoren in LTL [4]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 21

Page 22: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Quartzsynchrone Programmiersprache

Abbildung: Operatoren in CTL [5]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 22

Page 23: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone bedingte Aktionen

Synchrone bedingte Aktionen

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 23

Page 24: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone bedingte Aktionen

– um von den synchronen Programmiersprachen zu abstrahieren– Aussagen uber die Verifikation unabhangig von der Programmiersprache– Synchrone bedingte Aktionen sind atomare Aktionen, die innerhalb im

Makroschritt eines synchronen Systems ausgefuhrt werden– es existieren sofortige Aktionen und verzogerte Aktionen– Synchrone bedingte Aktionen besitzen die Form 〈γ ⇒ C〉

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 24

Page 25: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone bedingte Aktionen

Abbildung: Synchrone bedingte Aktionen [6]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 25

Page 26: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Synchrone bedingte Aktionen

Kausalitatszyklus– Kein Kausalitatszyklus:

a⇒ y = x + 1

¬a⇒ x = y + 2 (1)

– Kausalitatszyklus:

a⇒ x = ¬y

a⇒ y = x (2)

– Kausalitatszyklus:

a⇒ x = true

a⇒ x = false (3)

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 26

Page 27: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Averest-Framework

Averest-Framework

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 27

Page 28: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Averest-FrameworkFunktionalitat

Abbildung: Entwickelt von der Embedded Systems Group, Universitat Kaiserslautern [7]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 28

Page 29: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Averest-FrameworkFunktionalitat

Abbildung: Verschiedene Transformationsmoglichkeiten aus dem AIF heraus [8]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 29

Page 30: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Averest-FrameworkFunktionalitat

Abbildung: Die GUI vom Averest-Framework basiert auf Drag’n’Drop

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 30

Page 31: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Averest-FrameworkFunktionalitat

Abbildung: Es existieren diverse Transformationsmoglichkeiten fur das AIF

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 31

Page 32: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Interaktive Verifikation von synchronenSystemen

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 32

Page 33: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Interaktive Theorembeweiser– “Maschinengestutztes Beweisen”– Alterenative zu Modelchecking-Verfahren– Beweise werden in Teilbeweise aufgeteilt– Mensch liefert interaktiv “Hinweise” zur Beweissuche– Beispiele: HOL, Isabelle– basieren auf Logic for Computable Functions (LCF)

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 33

Page 34: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Logic for Computable Functions (LCF)– funktionale Programmiersprache ML als Meta-Sprache

– Formeln, Beweisziele und Theoreme als Datentypen in ML implementiert– Beweisregeln als Funktionen in ML implementiert

– Einsatz von funktionalen Programmiersprachen⇒ Benutzung von interaktiven Sessions moglich

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 34

Page 35: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Interaktive Verifikation mit Averest (AIFProver)– Verifikation kann Datentypen und Transformationen der Synthese verwenden– mit dem Resultat der Verifikation kann HW/SW-Design optimiert werden

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 35

Page 36: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Vorgehen fur die interaktive Verifikation mit Averest

Abbildung: Hier wird das generelle Vorgehen vom interaktiven Verifizieren in synchronen Systemenmithilfe des Averest-Frameworks dargestellt [9]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 36

Page 37: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Abbildung: Hier wird die Zerlegung der Sequenz P1; P2 dargestellt [10]

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 37

Page 38: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Exemplarische Veranschaulichung

Listing 3: ABRO System in Quartz

module abro(event ?a ,? b ,? r ,! o ) {loop

abort{{wa: await(a); || wb:await (b);}emit(o);s0: assert(a|b);wr: await(r);

} when(r);}satisfies {

s1: assert A G (o -> a|b);s2: assert A G (o -> A X !o);

}

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 38

Page 39: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 4: Synchrone bedingte Aktionen

system abro:interface:

a: input event boolb: input event boolr: input event boolo: outputevent bool

locals:w0: label boolwa: label boolwb: label boolwr: label bool

control flow:True => next(w0) = True!w0 => next(wa) = True!w0 => next(wb) = True((wa&!a)&!r)&!r|(r&wr|r&(wr|(wa|wb))) => next(wa) = True((wb&!b)&!r)&!r|(r&wr|r&(wr|(wa|wb))) => next(wb) = True((wr&!r)&!r)&!r|((((a&wa)&(b&wb))|(((b&wb)&!wa)|((a&wa)&!wb)))&!r)&!r =>

next(wr) = True

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 39

Page 40: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

data flow:((((a&wa)&(b&wb))|(((b&wb)&!wa)|((a&wa)&!wb)))&!r) => o = True

assertions:((((a&wa)&(b&wb))|(((b&wb)&!wa)|((a&wa)&!wb)))&!r) => s0 : assert a|b

absence reactions:invar : !wr&(wa|wb)specifications:

s1:prove that for all initial statesA G o --> a | b

s2:prove that for all initial statesA G o --> (A X !o)

drivers:

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 40

Page 41: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 5: Verifikation des ABRO Systems

ShowCorrectness (fsi.CommandLineArgs.[0]);;// property s0:AutoTac();;

// property s1:RWSWIA o;;UseVarDefs [wa;wb];;UseBootFlagDef w0;;RW_NEXT();;AutoTac();;

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 41

Page 42: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

AIFProver– AIFProver noch in der Alpha-Version– ist momentan nicht zur Benutzung freigegeben– wird in den kommenden Wochen in Averest integriert– Beweisbeispiel mit Isabelle/HOL

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 42

Page 43: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Isabelle/HOL– “generischer” Beweisassistent– University of Cambridge (Larry Paulson)– Technische Universitat Munchen (Tobias Nipkow)– Universite Paris-Sud (Makarius Wenzel)– open-source (BSD)

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 43

Page 44: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 6: rev(rev xs) eq xs

theorem rev_rev [simp]: "rev(rev xs) = xs"apply(induct_tac xs)

output subgoals:1. rev (rev []) = []2. rev (rev list) = list ==> rev (rev (a # list)) = a # list-----------apply(auto)

output subgoals:1. rev (rev list) = list ==> rev (rev (a # list)) = a # list

Listing 7: rev(xs @ ys) eq (rev ys) @ (rev xs)

lemma rev_app [simp]: "rev(xs @ ys) = (rev ys) @ (rev xs)"apply(induct_tac xs)apply(auto)

output subgoals:1. rev ys = rev ys @ []

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 44

Page 45: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 8: xs @ () eq xs

lemma app_Nil2 [simp]: "xs @ [] = xs"apply(induct_tac xs)apply(auto)

output subgoals:No subgoals!

Listing 9: rev(xs @ ys) eq (rev ys) @ (rev xs)

rev_app [simp]: "rev(xs @ ys) = (rev ys) @ (rev xs)"apply(induct_tac xs)apply(auto)

output subgoals:rev (list @ ys) = rev ys @ rev list

==> (rev ys @ rev list) @ (a # []) = rev ys @ (rev list @ (a # []))

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 45

Page 46: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 10: (xs @ ys) @ zs eq xs @ (ys @ zs)

lemma app_assoc [simp]: "(xs @ ys) @ zs = xs @ (ys @ zs)"apply(induct_tac xs)apply(auto)done

Jetzt kann das erste Lemma bewiesen werden.

Listing 11: Lemma1

lemma rev_app [simp]: "rev(xs @ ys) = (rev ys) @ (rev xs)"apply(induct_tac xs)apply(auto)done

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 46

Page 47: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Jetzt kann das Haupttheorem bewiesen werden.

Listing 12: Haupttheorem

theorem rev_rev [simp]: "rev(rev xs) = xs"apply(induct_tac xs)apply(auto)done

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 47

Page 48: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Interaktive Verifikation von synchronenSystemen

Listing 13: Gesamtuberblick

lemma app_Nil2 [simp]: "xs @ [] = xs"apply(induct_tac xs)apply(auto)done

lemma app_assoc [simp]: "(xs @ ys) @ zs = xs @ (ys @ zs)"apply(induct_tac xs)apply(auto)done

lemma rev_app [simp]: "rev(xs @ ys) = (rev ys) @ (rev xs)"apply(induct_tac xs)apply(auto)done

theorem rev_rev [simp]: "rev(rev xs) = xs"apply(induct_tac xs)apply(auto)doneend

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 48

Page 49: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Zusammenfassung

Zusammenfassung

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 49

Page 50: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

Zusammenfassung

Zusammenfassung– herkommliche Modelchecking-Verfahren haben das Problem der

Zustands-Explosion– interaktive Theorembeweiser umgehen dieses Problem durch Aufteilung der

Beweise– AIFProver ist Bestandteil von Averest und kann auf die existierenden

Datenstrukturen zugreifen– synchrone bedingte Aktionen liefern bessere Beweisziele– labels auf den Quellcode (Quartz)⇒ bessere Lesbarkeit fur Menschen und Navigation zwischen sync. bed.Aktionen und Quellcode

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 50

Page 51: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

AbschlussTM

Vielen Dank fur Ihre Aufmerksamkeit.Fragen?

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 51

Page 52: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

AbschlussTM

M. Gellner, “Der umgang mit dem hoare-kalkul zur programmverifikation,” June2006.

F. T. Wiena, “Model checking - a short informal introduction,”http://embsys.technikum-wien.at/projects/decs/verification/formalmethods.html,letzter Zugriff: 15.07.2013.

L. Biermann, “Ctl/ltl se systemanalyse,”http://www2.informatik.hu-berlin.de/top/lehre/WS06-07/se se/folien/ctl ltl.pdf,13.11.2006.

“Computation tree logic,” letzter Zugriff: 18.07.2013. [Online]. Available:http://en.wikipedia.org/wiki/Linear temporal logic

“Linear temporal logic,” letzter Zugriff: 18.07.2013. [Online]. Available:http://upload.wikimedia.org/wikipedia/de/thumb/2/2c/Computational Tree Logic Example.png/635px-Computational Tree Logic Example.png

Translating concurrent action oriented specifications to synchronous guardedactions, 2010.

Averest, “Averest,” http://www.averest.org, letzter Zugriff: 03.07.2013.

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 51

Page 53: Prasentation der Seminararbeit¨ · Prasentation der Seminararbeit¨ Interaktive Verifikation von synchronen Systemen Alpin Mete S¸ahin, Cenk G¨undo gan˘ Fachbereich fur Mathematik

AbschlussTM

K. Schneider and T. Schuele, “Averest: Specification, verification, andimplementation of reactive systems,” in Application of Concurrency to SystemDesign (ACSD), J. Desel and Y. Watanabe, Eds. Saint-Malo, France:Participant’s proceedings, 2005.

M. Gesell and K. Schneider, “Interactive verification of synchronous systems,” inFormal Methods and Models for Codesign (MEMOCODE), S. Shukla, L. Carloni,D. Kroening, and J. Brandt, Eds. Arlington, Virginia, USA: ACM, 2012, pp. 75–84.

——, “An interactive verification tool for synchronous/reactive systems,” inMethoden und Beschreibungssprachen zur Modellierung und Verifikation vonSchaltungen und Systemen (MBMV), C. Haubelt and D. Timmermann, Eds.Warnemunde, Germany: University of Rostock, 2013, pp. 267–277.

Institut fur Informatik – Prasentation der Seminararbeit – 23. Juli 2013 51