• 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!
3
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

Rev. 1483 1 [19]

Fahrplan

I Aussagenlogik I Prädikatenlogik I Isabelle I: Grundlagen

IAussagenlogik und natürlisches Schließen

IPrädikatenlogik und Quantoren

ILogik höherer Stufe

IIsabelle: Definitionen und konservative Erweiterung

IIsabelle: Automatische Beweisprozeduren I Isabelle II: Anwendungen

2 [19]

Heute

I Vertrauenswürdigkeitvon Isabelle

I Systemarchitektur

I Konservative Erweiterung

I Typdefinitionen

I Nützliche Typen

3 [19]

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

4 [19]

LCF-Architektur

I Problem:Korrektheitder Implementierung I Reduktiondes Problems:

I Korrektheit eineslogischen Kerns

I Rest durchTypisierung

I Abstrakter Datentypthm,Inferenz-RegelnalsOperationen 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

5 [19]

Konservative Erweiterung

I SignaturΣ =hT,Ωi

ITypdeklarationenT, Operationen

IDefiniert dieSyntax: TermeTΣüberΣ I TheorieTh=hΣ,Axi

IAxiomeAx

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

I Erweiterung:Σ⊆Σ0,Th⊆ Th0

IKonservativ gdw.tThm(Th0),tTΣdanntThm(Th)

IKeineneuenTheoreme überalteSymbole

6 [19]

Konservative Erweiterung in Isabelle

I Isabelle: Konstruktion von Theorien durchkonservative Erweiterungen I Konstantendefinition (zur SignaturΣ):

c::σ ct

I c6∈Σ

I tTΣ(enthältnichtc)

I Typvariablen intauch inσ

I Lemma: KonstantendefinitionistkonservativeErweiterung I Weitere konservative Erweiterungen:

I Typdefinitionen,Datentypen.

7 [19]

Isabelle Theorien

I Strukturierung der Entwicklung inTheorien

ITheorien bildenDAG I Theorieelemente (Auszug):

IKonstantendeklaration:consts f :: T

IKonstantendefinitionendefinition f :: T where "f == E"

IEdarffnicht enthalten,FV(E)FV(f),FVType(E)⊆FVType(f)

ITypdeklaration:typedecl t

ITypsynonym:types t = S

IBeweise:lemmaodertheorem

ISonstiges (Syntax erweiterbar)

8 [19]

(2)

Typdefinitionen in Isabelle

Definitioneines neuenTypen:

I Gegeben TypR, PrädikatS:RBool

I Neuer TypTmitabsT:RT,repT:TRso dass

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

I Tnicht leer:∃t.S t

R S

repT absT

T

I Lemma:Typdefinitionen sindkonservative Erweiterungen.

I In dieser Formseltendirekt benutzt.

9 [19]

Beispiel: Produkte

I AusgangstypRα,βαβBool I Neuer TypTα,βα×β

IIdee: Prädikatp:αβBoolrepräsentiert(a,b) p x y=true←→x=a∧y=b I S f=∃a b.(f=λx y.x=ay=b)

I Repräsentationsfunktion:

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

I Abstraktionsfunktion:

abs×p=ιa b.p a b

I DamitEigenschaftenalsTheoremeherleitbar.

10 [19]

Nützliche Isabelle/HOL-Typen

I Vordefinierte Typen

I Algebraische Datentypen

I Benannte Produkte (labelled records)

11 [19]

Natürliche Zahlen und unendliche Datentypen

I Natürliche Zahlen: nichtkonservativ!

I ErfordertzusätzlichesAxiomUnendlichkeit.

I Neuer Typindmit KonstantenZ::ind,S:indindund inj S S x6=Z

I Damitnatdefinierbar.

I Warumind? Auch fürandereDatentypen

12 [19]

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 xoderNone

List ’a list Listen

Map ’a ~=> ’b partielleAbbildungen (’a => ’b option)

Typsynonym

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

13 [19]

Algebraische Datentypen

I InIsabelle/HOLwie inHaskell

I Eigenschaften werden (hinter den Kulissen)bewiesen:

IInjektivitätder Konstruktoren

IDisjunktheitder Konstruktoren

IGeneriertheitdurch Konstrukturen

IAbgeleitete Schemen:

IInduktion

IFallunterscheidung

I Einschränkung: nurkovarianteRekursion

14 [19]

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"

15 [19]

Labelled Records

I InIsabelle/HOLähnlich wie inHaskell I Syntax:

record point2d = x :: int y :: int

IDefiniert:

IKonstrukturen(|x= 3, y= 4|)

ISelektorenx :: point2d => int

IUpdatep (|x := 3 |)

I Erweiterbar:

record point3d = point2d + z :: int

16 [19]

(3)

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

17 [19]

Rekursion

Primitiv:

funf :: τ where

equations

Allgemein:

functionf :: τ where

equations

bycompleteness-proof

termination bytermination-proof

18 [19]

Zusammenfassung

I Isabelle:LCF-Architekturmitlogischem 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:funundfunction

I Fast wie in Haskell, aber immertotal.

19 [19]

Referenzen

ÄHNLICHE DOKUMENTE

I Interaktiv: Beweis wird durch den Benutzer konstruiert und von Isabelle geprüft. I

Formale Methoden der Softwaretechnik Vorlesung vom 30.05.11: Logik Höherer Stufe.. Till Mossakowski &

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

I Gelingt oder schlägt fehl: keine neuen Subgoals. I Klassischer

I Jede Logik, die Peano-Arithmetik formalisiert, ist entweder inkonsistent oder unvollst¨ andig. I G¨

I Logik h¨ oherer Stufe (HOL): alle endlichen Quantoren. I Keine wesentlichen Vorteile von

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

Options -B , -D , -R , -X , -a , -d , -g , -x and the remaining command-line ar- guments specify sessions as in isabelle build (§2.3): the cumulative PIDE database of all their