• Keine Ergebnisse gefunden

Formale Methoden der Softwaretechnik 1 Vorlesung vom 30.11.09:

N/A
N/A
Protected

Academic year: 2022

Aktie "Formale Methoden der Softwaretechnik 1 Vorlesung vom 30.11.09:"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 30.11.09:

Isabelle/HOL

Christoph L¨uth, Lutz Schr¨oder Universit¨at Bremen Wintersemester 2009/10

1

Fahrplan

ITeil I: Grundlagen der Formalen Logik ITeil II: Arbeiten mit Isabelle

I Grundlagen von Isabelle

I Logik h¨oherer Ordnung in Isabelle

I Isabelle/HOL

I Beweise ¨uber funktionale Programme in Isabelle/HOL

I Beweisen mit Isabelle: Simplifikation, Taktiken

ITeil III: Modellierung imperative Programme

2

Heute

IVertrauensw¨urdigkeitvon Isabelle

ISystemarchitektur

IKonservative Erweiterung

ITypdefinitionen

IN¨utzliche Typen

3

Generizit¨ at

IIsabelleist einlogisches Rahmenwerk

IBeliebigeLogiken in Isabelle einbetten

IBsp:HOL,ZF,LK, Typentheorie . . .

IHier nurHOL

4

Vertrauensw¨ urdigkeit

IWann k¨onnen wir Isabelle-Beweisentrauen?

1.SinnvolleModellierung 2.Isabelle korrektimplementiert 3.Logikkonsistent

IProblem: ca. 150 Kloc SML Quellcode, ca. 310 Kloc Beweise IMaßnahmen:

1.Review

2.LCF-Systemarchitektur 3.Konservative Erweiterung

5

LCF-Architektur

IProblem:Korrektheitder Implementierung IReduktiondes Problems:

I Korrektheit eineslogischen Kerns

I Rest durchTypisierung

IAbstrakter Datentypthm,Inferenz-RegelnalsOperationen val assume: cterm -> thm

val implies_intr: cterm -> thm -> thm ILogischer Kern:

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

I HandhabbareGr¨oße

6

Konservative Erweiterung

ISignaturΣ =hT,Ωi

ITypdeklarationenT, Operationen Ω

IDefiniert dieSyntax: TermeTΣ¨uber Σ ITheorieTh=hΣ,Axi

IAxiomeAx

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

IErweiterung: Σ⊆Σ0,Th⊆ Th0

IKonservativ gdw.t∈Thm(Th0),t∈TΣdannt∈Thm(Th)

IKeineneuenTheoreme ¨uberalteSymbole

7

Konservative Erweiterung in Isabelle

IIsabelle: Konstruktion von Theorien durchkonservative Erweiterungen IKonstantendefinition (zur Signatur Σ):

c::σ c≡t

I c6∈Σ

I t∈TΣ(enth¨altnichtc)

I Typvariablen intauch inσ

ILemma: KonstantendefinitionistkonservativeErweiterung IWeitere konservative Erweiterungen:

I Typdefinitionen,Datentypen.

8

(2)

Isabelle Theorien

IStrukturierung der Entwicklung inTheorien IKopf:

theory N

imports T1 T2 ... Tn begin

ITheorien bildenDAG ITheorieelemente (Auszug):

ITypdeklaration:typedecl t

ITypsynonym:types t = S

IKonstantendeklaration:consts f :: T

IKonstantendefinitionendefinition f :: T "f == E"

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

IBeweise:lemmaodertheorem

9

Typdefinitionen in Isabelle

Definitioneines neuenTypen:

IGegeben TypR, Pr¨adikatS:R⇒Bool

INeuer TypT mitabsT:R⇒T,repT:T⇒Rso dass

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

I Tnicht leer:∃t.S t

R S

repT absT

T

ILemma:Typdefinitionen sindkonservative Erweiterungen.

IIn dieser Formseltendirekt benutzt.

10

Beispiel: Produkte

IAusgangstypRα,β≡α⇒β⇒Bool INeuer TypTα,β≡α×β

IIdee: Pr¨adikatp:α⇒β⇒Boolrepr¨asentiert (a,b) p(x,y) =true←→x=a∧y=b IS f =∃a b.(f =λx y.x=a∧y=b)

IAbstraktionsfunktion:

abs×p=ιa b.p a b

IRepr¨asentationsfunktion:

rep×(a,b) =pmitp(x,y) =true←→x=a∧y=b IDamitEigenschaftenalsTheoremeherleitbar.

11

N¨ utzliche Isabelle/HOL-Typen

IVordefinierte Typen

IAlgebraische Datentypen

IBenannte Produkte (labelled records)

12

Nat¨ urliche Zahlen und unendliche Datentypen

INat¨urliche Zahlen: nichtkonservativ!

IErfordertzus¨atzlichesAxiomUnendlichkeit.

INeuer TypindmitZ::ind,S:ind⇒Sund inj S S x6=Z

IDamitnatdefinierbar.

IWarumind? Auch f¨urandereDatentypen

13

N¨ utzliche vordefinierte Typen

Theorie Typ Bedeutung

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

Sum ’a + ’b Summentyp

Product Type ’a * ’b Produktyp

Nat nat Nat¨urliche 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)

inComplex Main

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

14

Algebraische Datentypen

IInIsabelle/HOLwie inHaskell

IEigenschaften werden (hinter den Kulissen)bewiesen:

IInjektivit¨atder Konstruktoren

IDisjunktheitder Konstruktoren

IGeneriertheitdurch Konstrukturen

IAbgeleitete Schemen:

IInduktion

IFallunterscheidung

IEinschr¨ankung: nurkovarianteRekursion

15

Algebraische Datentypen

IBeispiel:

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 "nat => ’a"

INichterlaubt:

datatype T = C "T=> bool"

16

(3)

Labelled Records

IInIsabelle/HOL¨ahnlich wie inHaskell ISyntax:

record point2d = x :: int y :: int

IDefiniert:

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

ISelektorenx :: point2d => int

IUpdatep (|x := 3 |)

IErweiterbar:

record point3d = point2d + z :: int

17

Zusammenfassung

IIsabelle:LCF-Architekturmitlogischem KernundMeta-Logik

IKonservative Erweiterung: erh¨altKonsistenz

ITypdefinitionen: Einschr¨ankung bestehender Typen

IDer Typind:Unendlichkeitsaxiom

IN¨utzliche Typen: vordefinierte, algebraische Datentypen, labelled records

18

Referenzen

ÄHNLICHE DOKUMENTE

Begründung: In einem DFA gibt es für jeden Buchstaben und von jedem Zustand aus genau ei- ne Transition. In einem NFA gibt es beliebig viele.. w wird rückwärts gelesen). Hinweis:

Zeigen Sie, dass für jede reguläre Sprache L auch die Umkehrung rev ( L ) regulär ist, indem Sie zeigen, wie man aus einem regulären Ausdruck für die Sprache L einen regulären

2 Es gibt im Allgemeinen mehrere nicht isomorphe DFAs, die minimal sind und die gleiche Sprache wie A erkennen... Begründung: Es gibt einen eindeutigen Minimalautomaten, siehe

(c) Konstruieren Sie einen Kellerautomaten, der L(G) erkennt, und begründen Sie die Korrektheit Ihrer Konstruktion (beispielsweise durch Angabe des entsprechenden Satzes aus

Begründung: Die DTM hält immer: In jedem Schritt, in dem M noch nicht hält, wird der Kopf nach rechts bewegt.. irgendwann muss 2 eingelesen werden, weil die Eingabe zu

Fachbereich Mathematik SS

Begründung: In einem DFA gibt es für jeden Buchstaben und von jedem Zustand aus genau ei- ne Transition. In einem NFA gibt es beliebig viele.. w wird

Aufgabe H1 (Minimalautomaten und Minimierung) (4 Punkte) Finden Sie einen äquivalenten DFA minimaler Größe für den folgenden DFA. ist etwa das Wort aa ba in der Sprache, so fügen