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