Theorem Proving mit Isabelle

Ähnliche Dokumente
Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Sequenzgenerierung aus Klassifikationsbäumen

Theorembeweiser und ihre Anwendungen

Seminar Programmierung Eingebetteter Systeme

Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation

Formale Verifikation von Software. 10. Juli 2013

1 Algorithmische Grundlagen

Systemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4

Grundlagen der Programmierung (Vorlesung 24)

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Formale Verifikation von Software. 8. Juli 2015

Beweise und Widerlegungen

Inferenzmethoden. Einheit 18. Logik höherer Stufe

Entwicklung korrekter Programme in Coq. Thomas Strathmann

Theoretische Informatik I

Algebraische Spezifikation. André Kießling

Modellprüfung von UML-Zustandsmaschinen und UML-Kollaborationen in SAL

Aufgabe 1 Beweise in Fitch (Präsenzaufgabe) Beweisen Sie folgende aussagenlogischen Formeln durch natürliches Schliessen (d.h. im Fitch- Kalkül):

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Mathematische Beweise und Symbolische Tests

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)

Geheimnisprinzip: (information hiding principle, Parnas 1972)

Logische Grundlagen der Mathematik, WS 2014/15

Logik. Vorlesung im Wintersemester 2010

Computergestützte Modellierung und Verifikation

Configurable Embedded Systems

Verifikation von Programmen in Java 5

Diskrete Strukturen. Vorlesung 7: Fixpunkte & Kardinalität. 27. November 2018

mathematik und informatik

Folien im Corporate Design der TU Clausthal

Tilman Bauer. 4. September 2007

2.3 Spezifikation von Abstrakten Datentypen

Einführung in die Programmierung

Einführung in die Programmierung

Grundlagen der Programmierung 2. Operationale Semantik

Einführung in die Programmierung Wintersemester 2016/17

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II)

Einführung in die Informatik I (autip)

MODEL CHECKING 2 - AUTOMATEN

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Kapitel 4 - Die Implementierungsphase

Vorbereitungskurs Mathematik zum Sommersemester 2015 Aussagen, Logik und Beweistechniken

Theorembeweiserpraktikum

13 Formale Spezifikation von Anforderungen

Über das Lesen mathematischer Texte Teil 2: Definition, Satz, Beweis

Praktische Informatik I

Verifikation. Simulation und formale Methoden

Eine kurze Einführung in ISAC

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Transkript:

Theorem Proving mit Isabelle Olivera Pavlović Pavlović 1

Überblick I. Formale Verifikation II. III. IV. Achszählsystem Theorem Prover Isabelle Darstellung des Achszählsystems in Isabelle V. Abschluss Pavlović 2

Formale Verifikation mathematisch-basiertes Verfahren zur Prüfung der Richtigkeit eines Systems Methoden SAT-Solving Model Checking Theorem Proving Pavlović 3

Formale Verifikation Theorem Proving Verifikation formaler Spezifikationen eines Models präzise Beschreibung des Problems in einer Logik passende Formulierung und gutes Verstehen des Problems Beweis Systemsversuch das Problem zu lösen mit der Hilfe der existierenden Bibliotheken Bibliotheken Theorem Prover Benutzer Lemmas wenn erfolgreich Beweis wenn nicht erfolgreich interaktive Beweisführung Problem Pavlović 4 Prozessiteration

Überblick I. Formale Verifikation II. III. IV. Achszählsystem Theorem Prover Isabelle Darstellung des Achszählsystems in Isabelle V. Abschluss Pavlović 5

Achszählsystem Das Prinzip der Achszählzählung GFM Zählpunkteinrichtung ZP 43 (Doppelsensor und GAG; inkl. Kabel ) GAG GAG Zählpunkteinrichtung ZP 43 (Doppelsensor und GAG; inkl. Kabel ) Achszählrechner Generierung von Achszähldaten aus den Signalen der Zählpunkteinrichtung. Vergleich der Zählergebnisse und Ausgabe einer Frei- oder Besetztmeldung. GAG = Gleisanschlussgehäuse GFM = Gleisfreimeldeabschnitt Pavlović 6

Achszählsystem Achszählung mit Doppelsensor a b c d e System 1 System 2 System 1 System 2 Pavlović 7

Achszählsystem Zustandsautomat des Zählpunkts Zweikanalig beeinflusst System 2 beeinflusst War zweikanalig War unbeeinflusst System 1 beeinflusst Unbeeinflusst War zweikanalig War unbeeinflusst Pavlović 8

Überblick I. Formale Verifikation II. III. IV. Achszählsystem Theorem Prover Isabelle Darstellung des Achszählsystems in Isabelle V. Abschluss Pavlović 9

Theorem Prover Isabelle Cambridge Universität und TU München Logiken: HOL, FOL, ZF... Isabelle/HOL HOL = Funktionale Programmierung + Logik Implementierungssprache ML Betriebssystem Linux, Solaris, MacOS X Windows Pavlović 10

Theorem Prover Isabelle Theorien theory T=B1 +... + Bn : declarations, definitions and proofs end Pavlović 11

Theorem Prover Isabelle Beweisdurchführung = Anwenden von Regeln apply (rule hd_append) Taktiken apply (auto) Methoden apply (simp) Goal buffer G 1. G1... n. Gn Pavlović 12

Überblick I. Formale Verifikation II. III. IV. Achszählsystem Theorem Prover Isabelle Darstellung des Achszählsystems in Isabelle V. Abschluss Pavlović 13

Darstellung des Achszählsystems in Isabelle Darstellung des Automaten in Isabelle Zustände datatype zustand = S0 S1_war_0 S1_war_12 S12 S2_war_0 S2_war_12 Übergänge types uebergang = "zustand*zustand" constdefs uebergangs :: "uebergang set" "uebergangs {(S0, S1_war_0), (S0, S2_war_0), (S0, S12), (S1_war_0, S12), (S1_war_0, S0), (S1_war_0, S2_war_0), (S1_war_12, S12), (S1_war_12, S0), (S1_war_12, S2_war_12), (S12, S2_war_12), (S12, S1_war_12), (S12, S0), (S2_war_12, S0), (S2_war_12, S12), (S2_war_12, S1_war_12), (S2_war_0, S0), (S2_war_0, S12), (S2_war_0, S1_war_0)}" Pavlović 14

Darstellung des Achszählsystems in Isabelle Testfall Kanal 1 Kanal 2 lnormalebefahrung = [S0, S2_war_0, S12, S1_war_12, S0] Kanal 1 Kanal 2 rentgegenfahrtrichtung = [S0, S1_war_0, S12, S1_war_12, S0] Pavlović 15

Darstellung des Achszählsystems in Isabelle Testfall 203: Es werden bis zu 1+a/rlmax Zustandsübergänge entgegen der Fahrtrichtung zugelassen. Um das Zählverhalten zu überprüfen, folgt in den Fällen 1 bis 3 der Simulation einer ordnungsgemäßen Befahrung von 2 bzw. 3 Achsen eine Anzahl zweikanaliger Störungen... Fall 1: Im Fall 1 bewirkt eine zweikanalige Störung 2 (<1+a/rlmax, a=4) Zustandsübergänge entgegen der Fahrtrichtung und wird toleriert. Die zweikanalige Störung wird als Achse eingezählt. < 0,1s < 0,1s < 0,1s Kanal 1 Kanal 2 Pavlović 16 < 12 ms < 12 ms < 12 ms < 12 ms

Darstellung des Achszählsystems in Isabelle lemma testfall203f1 : "x = fautomat (fverketten [lnormalebefahrung, lnormalebefahrung, lnormalebefahrung, rentgegenfahrtrichtung]) (((0,0,0,0,0),(0,0,0,0,0),0),(0,0,False)) False (0,False) ==> (snd(snd(fst(fst x)))=-4 ffreimeldung x=true)" apply(simp add: lnormalebefahrung_def rentgegenfahrtrichtung_def null_z1z2z3sc_def t_trail_def t_coll_def t_stat_def t_short_def faddzaehlers_def fauswertzaehlers_def fzustandsuebergang_def s_max_def c_max_def ffreimeldung_def Let_def) done Pavlović 17

Überblick I. Formale Verifikation II. III. IV. Achszählsystem Theorem Prover Isabelle Darstellung des Achszählsystems in Isabelle V. Abschluss Pavlović 18

Abschluss Zusammenfassung Formale Verifikation - Methode: Theorem Proving Achszählsystem ein Beispiel in Eisenbahntechnik - Achszählrechner und Zählpunkteinrichtungen - Zustandsautomat des Zählpunkts Pavlović 19

Abschluss Theorem Prover Isabelle - Theorie - Beweisdurchführung Darstellung des Achszählsystems in Isabelle - Zustände - Übergänge - Testfälle Pavlović 20

Abschluss Kritikpunkte + keine Begrenzung der Größe eines Modells + keine Zustandsexplosion + Beweisen abstrakter Probleme - Halb-Authomatik - gute Kenntnisse der Mathematik - keine Gegenbeispiele + bessere Kontrolle des Beweises + gutes Verständnis des Problems Pavlović 21

Abschluss Weitere Schritte 100% Implementierung des Mehrachsenzählverfahrens wie viel Achsen könnten gezählt werden? Durchführung aller Testfällen evtl. Zusammenfassung einigen Testfällen bis jetzt sind Eingangswerte für den Automat Konstanten; könnten sie Variablen sein? - Optimierung des Automaten? - Entdeckung der Lücken? Auf Isabelle in vollem Umfang zugreifen! Pavlović 22