Formale Methoden der Softwaretechnik 1 Vorlesung vom : Grundlage von Isabelle

Ähnliche Dokumente
Der einfach getypter Lambda-Kalkül

Lösungen zum Aufgabenblatt 10 Logik und modelltheoretische Semantik

Logik für Informatiker

Prädikatenlogiken. Mathematische Logik. Vorlesung 6. Alexander Bors. 30. März & 6. April A. Bors Logik

Kurseinheit 1 Einführung und mathematische Grundlagen Aussagenlogik

Beweisen mit Semantischen Tableaux

Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen

Formale Systeme. Prädikatenlogik 2. Stufe. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Ralf Möller, TUHH. Beim vorigen Mal: Heute: Prädikatenlogik: Algorithmus für Erfüllbarkeitsproblem. Lernziele: Beweisverfahren für Prädikatenlogik

Beweise und Typen. 9.1 Formalisierung und Beweis

Unifikation. T eine Menge von Termen. σ(t) einelementig ist. Definition: Unifikator. Eine Substitution σ ist Unifikator von T, falls

Kapitel 11. Prädikatenlogik Quantoren und logische Axiome

A α. Theorembeweiserpraktikum. Anwendungen in der Sprachtechnologie. LEHRSTUHL PROGRAMMIERPARADIGMEN

Theorembeweiserpraktikum

f(1, 1) = 1, f(x, y) = 0 sonst üblicherweise Konjunktion, manchmal auch

Theorembeweiser und ihre Anwendungen

5. Lambda-Kalkül und Logik höherer Stufe

Die Prädikatenlogik erster Stufe: Syntax und Semantik

A α. Theorembeweiserpraktikum. Anwendungen in der Sprachtechnologie. LEHRSTUHL PROGRAMMIERPARADIGMEN

Logik für Informatiker

Formale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 14.

Operationale Semantik 1

Beachte: Mit n = 0 sind auch Konstanten Terme.

Prädikatenlogiken. Mathematische Logik. Vorlesung 7. Alexander Bors. 6. & 27. April A. Bors Logik

Logik für Informatiker

Einführung in das λ-kalkül

Grundbegriffe der Informatik

Programmierung und Modellierung

Der Sequenzenkalkül. Charakterisierung der logischen Schlussfolgerung: Sequenzenkalkül für die Prädikatenlogik

5.2 Logische Gültigkeit, Folgerung, Äquivalenz

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Logik Vorlesung 7: Grundlagen Prädikatenlogik

4. Spezifikation in PVS (II): Funktionen und Prädikate

Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.8 Aussagenlogik Der Sequenzen-Kalkül 99. Sequenzen

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Normalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Überladung und Konversion in Haskell. Typisierung in Haskell

Grundlagen der Logik

Vollständige Induktion

Funktionale Programmierung - Grundlagen -

Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Grundlagen der Programmierung 3 A

Inferenzmethoden. Einheit 18. Logik höherer Stufe

Prädikatenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Normalformen und Grenzen der Prädikatenlogik 1. Stufe

5.4 Die Prädikatenlogik 1.Stufe als Semantikformalismus

2.6 Natürliches Schließen in AL

Theoretische Informatik II

Logik für Informatiker

Funktionale Programmierung Einführung

Prädikatenlogiken. Mathematische Logik. Vorlesung 8. Alexander Bors. 27. April., 4. & 11. Mai A. Bors Logik

Funktionale Programmierung ALP I. λ Kalkül. Teil 2 WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Inferenzmethoden. Teil V. Behandlung spezifischer Fragestellungen

Entwicklung eines korrekten Übersetzers

Prädikatenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Normalformen und Grenzen der Prädikatenlogik 1. Stufe

Lambda-Kalkül. Philipp Meyer. 28. April 2009

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie

Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser

Fundamentale Sätze. versuche folgendes: gib eine Formelmenge Φ an, so dass Mod(Φ) = {(N, +, )}

Formale Systeme, WS 2013/2014. Lösungen zu Übungsblatt 5

Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln

Formale Systeme, WS 2012/2013. Lösungen zu Übungsblatt 7

Zusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1

Logik Vorlesung 9: Normalformen

Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster

κ Κα π Κ α α Κ Α

Logik I. Symbole, Terme, Formeln

Gentzen-Kalküle. bestehen aus mehreren, recht komplexen Axiomen, und wenigen Schlußregel (für Aussagenlogik: nur einer, für Prädikatenlogik drei).

Lambda-Kalkül. Dr. Eva Richter. 27.April 2012

Formale Systeme. Prof. Dr. Bernhard Beckert, WS 2017/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

Formale Systeme. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

Theoretische Grundlagen des Software Engineering

Deklarative Semantik

Ein adäquater Kalkül der Prädikatenlogik

Logik für Informatiker

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik

Logik für Informatiker

Formale Systeme. Tableaukalku l (ohne Gleichheit) Prof. Dr. Bernhard Beckert, WS 2015/ KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK

1 Syntax und Semantik der Logik erster Stufe

Formale Systeme. Pra dikatenlogik: Syntax. Prof. Dr. Bernhard Beckert, WS 2017/2018

Repräsentierbarkeit arithmetischer Prädikate

Formale Systeme. Pra dikatenlogik: Syntax. Prof. Dr. Bernhard Beckert, WS 2014/ KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK

Klausur: Modellierung Prof. Dr. U. Kastens, Universität Paderborn Wintersemester 2000/ , 09:00 11:00 Uhr

Die Komplement-Funktion

Formale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 7.

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell

Logik für Informatiker

TU7 Aussagenlogik II und Prädikatenlogik

Proseminar Logik für Informatiker Thema: Prädikatenlogik (1.Teil)

Prädikatenlogiken. Mathematische Logik. Vorlesung 9. Alexander Bors. 11. & 18. Mai A. Bors Logik

Modellierung. Prof.Dr. Hans Kleine Büning, Prof.Dr. Johannes Blömer. Paderborn, 6. Februar Universität Paderborn Institut für Informatik

-ein Mustervergleicher ist ein Programm, das überprüft, ob ein Datum zu einem gegebenen Muster passt.

Logik erster Stufe FO

Nichtklassische Logiken

Formale Modellierung Vorlesung 13 vom : Rückblick und Ausblick

Logik für Informatiker

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

Schlussregeln aus anderen Kalkülen

Logik Vorlesung 10: Herbrand-Theorie

Transkript:

1 Formale Methoden der Softwaretechnik 1 Vorlesung vom 16.11.09: Grundlage von Isabelle Christoph Lüth, Lutz Schröder Universität Bremen Wintersemester 2009/10

2 Fahrplan Teil I: Grundlagen der Formalen Logik Teil II: Arbeiten mit Isabelle Grundlagen von Isabelle Logik höherer Ordnung Isabelle/HOL Beweise über funktionale Programme in Isabelle/HOL Beweisen mit Isabelle: Simplifikation, Taktiken Teil III: Modellierung imperative Programme

3 Fahrplan Grundlagen: der getypte λ-kalkül Unifikation und Resolution Beweisen in Isabelle

4 Der λ-kalkül In den 30 ern von Alonzo Church als theoretisches Berechhnungsmodell erfunden. In den 60 ern Basis von Lisp (John McCarthy) Mathematische Basis von funktionalen Sprachen (Haskell etc.) Hier: Grundlage der Synta ( higher-order abstract synta ) Typisierung Gebundene Variablen Warum?

5 Der polymorph getypte λ-kalkül Typen Type gegeben durch Typkonstanten: c C Type Typvariablen: α V Type (Menge V Type gegeben) Funktionen: s, t Type dann s t in Type Terme Term gegeben durch Konstanten: c C Variablen: v V Applikation: s, t Term dann s t Term Abstraktion: V, τ Type, t Term dann λ τ.t Term Typ τ kann manchmal berechnet werden. Signatur enthält C Type, C

6 Typisierung Signatur: Σ = C Type, C, ar, ar : C Type Typisierung der Konstanten Notation: Σ = {c 1 : τ 1,..., c n : τ n } für ar(c i ) = τ i Term t hat Typ τ in einem Kontet Γ und einer Signatur Σ: Γ Σ t : τ Kontet: 1 : τ 1,..., n : τ n ( i V) Typisierung von Variablen Vergleiche Haskell etc.

7 Typisierung Die Regeln: c : τ Σ Γ Σ c : τ CONST : τ Γ Γ Σ : τ VAR Γ Σ s : σ τ Γ Σ t : σ Γ Σ s t : τ APP Γ, : σ Σ t : τ Γ Σ λ σ.t : σ τ ABST

8 Einbettungen Beispiel: Einbettung der Prädikatenlogik mit PA Basistypen: C Type = {i, o} Konstanten: Σ T = {0 : i, s : i i, plus : i i i} Σ A = {eq : i i o, false : o, and : o o o,..., all : (i o) o, e : (i o) o} Σ = Σ T Σ A φ Form Σ t : o Beispiel:. y.( = y) all (λ.e (λy.(eq ) y))

9 Substitution s [ t ] ist Ersetzung von durch t in s Definiert durch strukturelle Induktion: c [ ] t def = c y [ { ] t def t = y = y y (r s) [ t ] def (λy.s) [ ] t def = = r [ ] [ t s t ] λy.s λy.s [ ] t [ ] λz.(s z y ) [ t ] = y y, y FV(t) y, y FV(t) mit z FV (t) (z frisch)

10 Reduktion und Äquivalenzen β-reduktion: (λ.s)t β s [ ] t def β-äquivalenz: = β = ( β β ) s = β t iff. u.s β u, t β u (Church-Rosser) α-äquivalenz: λ.t = α λy.t [ y ], y FV(t) Name von gebundenen Variablen unerheblich In Isabelle Implizit (debruijn-indizes) η-äquivalenz: λ.t = η t, FV(t) punktfreie Notation

11 Unifikation Für s, t Term oder s, t Type ist Substitution σ Unifikator wenn sσ = tσ Allgemeinster Unifikator τ: alle anderen Unifikatoren sind Instanzen von τ Allgemeinster Unifikator eindeutig, wenn er eistiert Unifikationsalgorithmus: τ(f t, g s) = false τ(f t, f s) = τ(t, s) τ(t, ) = [ ] t FVt τ(y, s) = [ ] y y FVs Matching: einseitige Unifikation (σ mit sσ = t)

12 Grundlagen von Isabelle Grundlage: getypter Λ-Kalkül Unifikation und Matching (apply (rule r)) Äquivalenzen: β-reduktion automatisch α-äquivalenz eingebaut (debruijn-indeing) η-äquivalenz automatisch Variablen, Formeln, Resolution

13 Variablen Meta-Variablen: können unifiziert und beliebig instantiiert werden freie Variablen (fied): beliebig aber fest Gebundene Variablen: Name beliebig (α-äquivalenz)

13 Variablen Meta-Variablen: können unifiziert und beliebig instantiiert werden freie Variablen (fied): beliebig aber fest Gebundene Variablen: Name beliebig (α-äquivalenz) Meta-Quantoren: Isabelles Eigenvariablen.P().P() alli!!. P ==> ALL. P Beliebig instantiierbar Gültigkeit auf diese (Teil)-Formel begrenzt

14 Formeln Formeln in Isabelle: φ 1,..., φ n ψ [[φ 1,..., φ n ]] = ψ φ 1,..., φ n Formeln, ψ atomar Theoreme: ableitbare Formeln Ableitung von Formeln: Resolution, Instantiierung, Gleichheit Randbemerkung: =,, formen Meta-Logik Einbettung anderer Logiken als HOL möglich generischer Theorembeweiser

15 Resolution Einfache Resolution (rule) Achtung: Lifting von Meta-Quantoren und Bedingungen

15 Resolution Einfache Resolution (rule) Achtung: Lifting von Meta-Quantoren und Bedingungen Randbemerkung: Unifikation höherer Stufe unentscheidbar Eliminationsresolution (erule) Destruktionsresolution (drule)

16 Rückwärtsbeweis Ausgehend von Beweisziel ψ Beweiszustand ist [[φ 1,..., φ n ]] = ψ φ 1,..., φ n : subgoals Beweisverfahren: Resolution, Termersetzung, Beweissuche

17 Zusammenfassung Getypter λ-kalkül als Grundlage der Metalogik, Modellierung von Logiken durch Einbettung Isabelle: Korrektheit durch Systemarchitektur Beweis: Rückwärts, Resolution Anmerkung: auch Vorwärtsbeweis möglich Donnerstag: Logik höherer Ordnung in Isabelle