• Keine Ergebnisse gefunden

Formale Methoden der Softwaretechnik Vorlesung vom 09.06.11: Das Isabelle-System

N/A
N/A
Protected

Academic year: 2022

Aktie "Formale Methoden der Softwaretechnik Vorlesung vom 09.06.11: Das Isabelle-System"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Methoden der Softwaretechnik Vorlesung vom 09.06.11: Das Isabelle-System

Till Mossakowski & Christoph Lüth

Universität Bremen

Sommersemester 2011

(2)

Fahrplan

I Aussagenlogik

I Prädikatenlogik

I Isabelle I: Grundlagen

I Aussagenlogik und natürlisches Schließen

I Prädikatenlogik und Quantoren

I Logik höherer Stufe

I Isabelle: Definitionen und konservative Erweiterung

I Isabelle: Automatische Beweisprozeduren

I Isabelle II: Anwendungen

(3)

Heute

I Vertrauenswürdigkeitvon Isabelle

I Systemarchitektur

I Konservative Erweiterung

I Typdefinitionen

I Nützliche Typen

(4)

Vertrauenswürdigkeit

I Wann können wir Isabelle-Beweisentrauen?

1. SinnvolleModellierung 2. Isabelle korrektimplementiert 3. Logikkonsistent

I Problem: ca. 150 Kloc SML Quellcode, ca. 310 Kloc Beweise

I Maßnahmen:

1. Review

2. LCF-Systemarchitektur 3. Konservative Erweiterung

(5)

Vertrauenswürdigkeit

I Wann können wir Isabelle-Beweisentrauen?

1. SinnvolleModellierung 2. Isabelle korrektimplementiert 3. Logikkonsistent

I Problem: ca. 150 Kloc SML Quellcode, ca. 310 Kloc Beweise

I Maßnahmen:

1. Review

2. LCF-Systemarchitektur 3. Konservative Erweiterung

(6)

LCF-Architektur

I Problem:Korrektheitder Implementierung

I Reduktiondes Problems:

I Korrektheit eineslogischen Kerns

I Rest durchTypisierung

I Abstrakter Datentypthm,Inferenz-Regelnals Operationen val assume: cterm -> thm

val implies_intr: cterm -> thm -> thm

I Logischer Kern:

I Typcheck,Signaturen,Unifikation,Meta-Logik: ca. 5500 LOC

I HandhabbareGröße

(7)

Konservative Erweiterung

I SignaturΣ =hT,Ωi

I TypdeklarationenT, Operationen

I Definiert dieSyntax: TermeTΣ überΣ

I TheorieTh=hΣ,Axi

I AxiomeAx

I Theoreme:Thm(Th)def={t | Th`t}

I Erweiterung:Σ⊆Σ0,Th⊆ Th0

I Konservativ gdw.t Thm(Th0),t TΣ dannt Thm(Th)

I KeineneuenTheoreme über alteSymbole

(8)

Konservative Erweiterung

I SignaturΣ =hT,Ωi

I TypdeklarationenT, Operationen

I Definiert dieSyntax: TermeTΣ überΣ

I TheorieTh=hΣ,Axi

I AxiomeAx

I Theoreme:Thm(Th)def={t | Th`t}

I Erweiterung:Σ⊆Σ0,Th⊆ Th0

I Konservativ gdw.t Thm(Th0),t TΣ dannt Thm(Th)

I KeineneuenTheoreme über alteSymbole

(9)

Konservative Erweiterung in Isabelle

I Isabelle: Konstruktion von Theorien durch konservative Erweiterungen

I Konstantendefinition (zur SignaturΣ):

c ::σ ct

I c6∈Σ

I tTΣ (enthältnichtc)

I Typvariablen int auch inσ

I Lemma: Konstantendefinitionist konservativeErweiterung

I Weitere konservative Erweiterungen:

I Typdefinitionen,Datentypen.

(10)

Isabelle Theorien

I Strukturierung der Entwicklung inTheorien

I Theorien bildenDAG

I Theorieelemente (Auszug):

I Konstantendeklaration:consts f :: T

I Konstantendefinitionendefinition f :: T where "f == E"

I Edarf fnicht enthalten,FV(E)FV(f),FVType(E)FVType(f)

I Typdeklaration:typedecl t

I Typsynonym:types t = S

I Beweise:lemmaoder theorem

I Sonstiges (Syntax erweiterbar)

(11)

Typdefinitionen in Isabelle

Definitioneines neuenTypen:

I Gegeben TypR, Prädikat S :RBool

I Neuer TypT mitabsT :RT,repT :TR so dass

I S undT isomorph:∀t.absT(repTt) =t,∀r.S r−→repT(absTr) =r

I T nicht leer:∃t.S t

R S

repT absT

T

I Lemma:Typdefinitionen sindkonservative Erweiterungen.

I In dieser Formseltendirekt benutzt.

(12)

Beispiel: Produkte

I AusgangstypRα,βαβBool

I Neuer TypTα,βα×β

I Idee: Prädikatp:αβBoolrepräsentiert(a,b) p x y=true←→x=ay =b

I S f =∃a b.(f =λx y.x =ay =b)

I Repräsentationsfunktion:

rep×(a,b) =p mitp x y =true←→x =ay=b

I Abstraktionsfunktion:

abs×p =ιa b.p a b

I DamitEigenschaften als Theoremeherleitbar.

(13)

Nützliche Isabelle/HOL-Typen

I Vordefinierte Typen

I Algebraische Datentypen

I Benannte Produkte (labelled records)

(14)

Natürliche Zahlen und unendliche Datentypen

I Natürliche Zahlen: nichtkonservativ!

I ErfordertzusätzlichesAxiomUnendlichkeit.

I Neuer Typind mit Konstanten Z ::ind,S :indindund inj S S x 6=Z

I Damitnat definierbar.

I Warumind? Auch für andereDatentypen

(15)

Nützliche vordefinierte Typen

Theorie Typ Bedeutung

Set ’a set getypteMengen (’a=> bool)

Sum ’a + ’b Summentyp

Product_Type ’a * ’b Produktyp

Nat nat Natürliche Zahlen

Int int ganze Zahlen

Real real reelle Zahlen

Complex complex komplexe Zahlen

Datatype ’a option Haskell’sMaybe,Some xoder None

List ’a list Listen

Map ’a ~=> ’b partielle Abbildungen (’a => ’b option)

Typsynonym

http://isabelle.in.tum.de/dist/library/HOL/index.html

(16)

Algebraische Datentypen

I InIsabelle/HOLwie in Haskell

I Eigenschaften werden (hinter den Kulissen)bewiesen:

I Injektivitätder Konstruktoren

I Disjunktheitder Konstruktoren

I Generiertheitdurch Konstrukturen

I Abgeleitete Schemen:

I Induktion

I Fallunterscheidung

I Einschränkung: nurkovarianteRekursion

(17)

Algebraische Datentypen

I Beispiel:

datatype Colour = Red | Green | Blue | Yellow | White datatype Result = OK | Error nat | Exception string datatype ’a Tree = Node "’a Tree" ’a "’a Tree"

| Leaf

datatype ’a NTree = Node ’a "nat => ’a Ntree"

I Nichterlaubt:

datatype T = C "T=> bool"

(18)

Labelled Records

I InIsabelle/HOLähnlich wie inHaskell

I Syntax:

record point2d = x :: int y :: int

I Definiert:

I Konstrukturen(|x= 3, y= 4|)

I Selektorenx :: point2d => int

I Updatep (|x := 3 |)

I Erweiterbar:

record point3d = point2d + z :: int

(19)

Definition von Funktionen

I In HOL: alle Funktionentotal

I Need-to-know Prinzip: undefiniert ist unbeweisbar

I Der einfache Fall:primitiv rekursiv

I Der allgemeine Fall

I Immer mitTerminationsbeweis

(20)

Rekursion

Primitiv:

funf :: τ where

equations

Allgemein:

functionf :: τ where

equations

bycompleteness-proof

termination bytermination-proof

(21)

Zusammenfassung

I Isabelle:LCF-Architektur mit logischem KernundMeta-Logik

I Konservative Erweiterung: erhältKonsistenz

I Typdefinitionen: Einschränkung bestehender Typen

I Der Typind:Unendlichkeitsaxiom

I Nützliche Typen: vordefinierte, algebraische Datentypen, labelled records

I Funktionsdefinition:fun undfunction

I Fast wie in Haskell, aber immertotal.

Referenzen

ÄHNLICHE DOKUMENTE

[r]

[r]

[r]

Formale Methoden der Softwaretechnik Vorlesung vom 13.05.2011: Isabelle — eine Einführung.. Till Mossakowski & Christoph Lüth Universität Bremen

I Isabelle: LCF-Architektur mit logischem Kern und Meta-Logik I Konservative Erweiterung: erhält Konsistenz. I Typdefinitionen: Einschränkung bestehender Typen I Der Typ

Zeigen Sie folgende Aussage, erst auf Papier und dann in

The program should read in a text and produce a count of the words in the text in the form of pairs of words occuring in the text, and their frequency, sorted by descending

I Getypter λ-Kalk¨ ul als Grundlage der Metalogik, Modellierung von Logiken durch Einbettung. I Isabelle: Korrektheit