• Keine Ergebnisse gefunden

Die Vasa

N/A
N/A
Protected

Academic year: 2022

Aktie "Die Vasa"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 19.10.09:

Einf¨uhrung

Christoph L¨uth, Lutz Schr¨oder

WS 09/10

1

Organisatorisches

IVeranstalter:

Christoph L¨uth Lutz Schr¨oder christoph.lueth@dfki.de lutz.schroeder@dfki.de Cartesium 2.043, Tel. 64223 Cartesium 2.051, Tel. 64216

ITermine: Vorlesung: Montag, 12 – 14, MZH 7210 Ubung:¨ Mittwoch, 12 – 14, MZH 7220

2

Therac-25

INeuartigerLinearbeschleunigerin der Strahlentherapie.

IComputergesteuert(PDP-11, Assembler)

IF¨unf Unf¨alle mitTodesfolge(1985– 1987)

IZu hoheStrahlendosis(4000 – 20000 rad, letal 1000 rad)

IProblem:Softwarefehler

IEin einzelnerProgrammierer(f¨unf Jahre)

IAlles inAssembler, keinBetriebssystem

IProgrammiererauchTester(Qualit¨atskontrolle)

3

Ariane-5

4

Die Vasa

5

Lernziele

1.Modellierung—Formulierungvon Spezifikationen

2.Formaler Beweis—Nachweisvon Eigenschaften

3.Verifikation— Beweis derKorrektheitvon Programmen Dar¨uber hinaus:

IVertrautheit mitaktuellen Techniken

6

Themen

IGrundlagen:

IFormaleLogik, formalesBeweisen

IAnwendung:

IDer TheorembeweiserIsabelle

IFormaleSpezifikationundVerifikation

IFunktionale Programme

IImperative Programme

Plan

IN¨achstesieben Wochen:

I Formale Logik und formaler Beweis

I Vorlesung: Grundlagen

I Ubung: Isabelle¨

INachWeihnachten:

I GrundlagenderVerifikationimperativer Programme

I Semantik, Hoare-Kalk¨ul.

(2)

Der Theorembeweiser Isabelle

IInteraktiverTheorembeweiser

IEntwickelt inCambridgeundM¨unchen IEst. 1993 (?), ca. 500 Benutzer

IAndere: PVS, Coq, ACL-2 IVielf¨altig benutzt:

IVeriSoft (D) —http://www.verisoft.de

IL4.verified (AUS) —

http://ertos.nicta.com.au/research/l4.verified/

ISAMS (Bremen) —http://www.projekt-sams.de

9

Das Problem

Wirklichkeit Modell

10

Formale Logik

IFormale(symbolische) Logik:RechnenmitSymbolen

IProgramme:Symbolmanipulation

IAuswertung:Beweis

ICurry-Howard-Isomorphie: funktionale Programme∼= konstruktiver Beweis

11

Geschichte

IGottlobFrege(1848– 1942)

I ‘Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens’(1879)

IGeorgCantor(1845– 1918), BertrandRussel(1872– 1970), Ernst Zermelo(1871– 1953)

I Einfache Mengenlehre: inkonsistent (Russel’s Paradox)

I Axiomatische Mengenlehre: Zermelo-Fr¨ankel IDavidHilbert(1862– 1943)

I Hilbert’s Programm: ‘mechanisierte’ Beweistheorie

IKurtG¨odel(1906– 1978)

I Vollst¨andigkeitssatz,Unvollst¨andigkeitss¨atze

12

Grundbegriffe der formalen Logik

IAbleitbarkeitTh`P

ISyntaktischeFolgerungung IG¨ultigkeitTh|=P

ISemantischeFolgerung — hiernichtrelevant IKlassischeLogik:P∨ ¬P

IEntscheidbarkeit

IAussagenlogik IKonsistenz:Th6` ⊥

INicht allesableitbar

IVollst¨andigkeit:jede g¨ultige Aussageableitbar

IPr¨adikatenlogikerster Stufe

Unvollst¨ andigkeit

IG¨odels 1.Unvollst¨andigkeitssatz:

I JedeLogik, diePeano-Arithmetikformalisiert, ist entwederinkonsistent oderunvollst¨andig.

IG¨odels 2.Unvollst¨andigkeitssatz:

I JederLogik, die ihre eigeneKonsistenzbeweist, istinkonsistent.

IAuswirkungen:

I Hilbert’s Programmterminiert nicht.

I Programmenicht vollst¨andig spezifierbar.

I Spezifikationssprachenimmerunvollst¨andig(oder uninteressant).

I Mitanderen Worten:Es bleibt spannend.

(3)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 26.10.09:

Formale Logik und nat¨urliches Schließen

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

1

Heute

IEinf¨uhrung in dieformale Logik IAussagenlogik

I Beispiel f¨ur eineeinfache Logik

I GuterAusgangspunkt INat¨urliches Schließen

I Wird auch vonIsabelleverwendet.

IBuchempfehlung:

Dirk van Dalen:Logic and Structure. Springer Verlag, 2004.

2

Fahrplan

ITeil I: Grundlagen der Formalen Logik

IEinf¨uhrung

INat¨urliches Schließen, Aussagenlogik

IPr¨adikatenlogik 1. Stufe

IGrundlagen von Isabelle

ILogik h¨oherer Ordnung ITeil II: Arbeiten mit Isabelle

ITeil III: Modellierung imperative Programme

3

Formale Logik

IZiel:FormalisierungvonFolgerungenwie

I Wenn es regnet, wird die Straße nass.

I Es regnet.

I Also ist die Straße nass.

INachts ist es dunkel.

IEs ist hell.

IAlso ist es nicht nachts.

IEineLogikbesteht aus

I EinerSpracheLvonFormeln(Aussagen)

I Schlußregeln(Folgerungsregeln) auf diesen Formeln.

IDamit:G¨ultige(“wahre”) Aussagen berechnen.

4

Beispiel f¨ ur eine Logik I

ISpracheL={♣,♠,♥,♦}

ISchlußregeln:

♣α ♦

♠β ♣ ♠

♥ γ

♦δ

IBeispielableitung:♥

5

Beispiel f¨ ur eine Logik II

ISpracheL={♣,♠,♥,♦}

ISchlußregeln:

♣α ♦

♠β ♣ ♠

♥ γ

[♦]

...

♥ δ0

IBeispielableitung:♥

6

Aussagenlogik

ISprachePropgegeben durch:

1.VariablenV⊆ Prop(MengeVgegeben) 2.false∈ Prop

3.Wennφ, ψ∈ Prop, dann

Iφ∧ψ∈ Prop

Iφ∨ψ∈ Prop

Iφ−→ψ∈ Prop

Iφ←→ψ∈ Prop

4.Wennφ∈ Prop, dann¬φ∈ Prop.

Wann ist eine Formel g¨ ultig?

ISemantischeG¨ultigkeit|=P:Wahrheitstabellenetc.

I Wirdhiernicht weiter verfolgt.

ISyntaktischeG¨ultigkeit`P:formaleAbleitung,

I Nat¨urliches Schließen

I Sequenzenkalk¨ul

I Andere (Hilbert-Kalk¨ul,gleichungsbasierte Kalk¨ule, etc.) IZiel: Kalk¨ul, umG¨ultigkeitinPropzu beweisen

(4)

Nat¨ urliches Schließen

IVorgehensweise:

1.Erst Kalk¨ul nur f¨ur∧,−→,false 2.DannErweiterungaufalleKonnektive.

IF¨ur jedesKonnektiv:Einf¨uhrungs-undEliminitationsregel

INB:konstruktiver Inhaltder meisten Regeln

9

Nat¨ urliches Schließen — Die Regeln

φ ψ

φ∧ψ ∧I φ∧ψ

φ ∧EL φ∧ψ ψ ∧ER [φ]

... ψ φ−→ψ −→I

φ φ−→ψ

ψ −→E

false φ false

[φ−→false]

... false

φ raa

10

Konsistenz

IDef:Γkonsistentgdw. Γ6`false

ILemma:Folgende Aussagen sind ¨aquivalent:

(i) Γ konsistent

(ii) Es gibt einφso dass Γ6`φ

(iii) Es gibt keinφso dass Γ`φund Γ` ¬φ

ISatz:Aussagenlogik mit nat¨urlichem Schließen istkonsistent.

ISatz:Aussagenlogik mit nat¨urlichem Schließen istvollst¨andigund entscheidbar

11

Die fehlenden Konnektive

IEinf¨uhrung alsAbk¨urzung:

¬φ def= φ−→false

φ∨ψ def= ¬(¬φ∧ ¬ψ)

φ←→ψ def= (φ−→ψ)∧(ψ−→φ)

IAbleitungsregeln alsTheoreme.

12

Die fehlenden Schlußregeln

φ φ∨ψ∨IL

ψ φ∨ψ∨IR

φ∨ψ [φ]

... σ

[ψ]

... σ

σ ∨E

[φ]

... false

¬φ ¬I φ ¬φ

false ¬E

φ−→ψ ψ−→φ

φ←→ψ ←→I φ φ←→ψ

ψ ←→EL ψ φ←→ψ

φ ←→ER

Zusammenfassung

IFormale Logikformalisiertdas (nat¨urlichsprachliche) Schlußfolgern ILogik: Aussagen plus Schlußregeln (Kalk¨ul)

IAussagenlogik: Aussagen mit∧,−→,false

I ¬,∨,←→alsabgeleitete Operatoren INat¨urlichesSchließen: intuitiver Kalk¨ul

IAussagenlogikkonsistent,vollst¨andig,entscheidbar.

IN¨achstes Mal:Quantoren,HOL.

(5)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 02.11.09:

Pr¨adikatenlogik erster Stufe

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

1

Das Tagesmen¨ u

ILogik mitQuantoren

IVon Aussagenlogik zur Pr¨adikatenlogik

INat¨urliches Schließenmit Quantoren

IDie Notwendigkeit von Logik h¨oherer Stufe

2

Fahrplan

ITeil I: Grundlagen der Formalen Logik

IEinf¨uhrung

INat¨urliches Schließen, Aussagenlogik

IPr¨adikatenlogik 1. Stufe

IGleichungslogik und nat¨urliche Zahlen

ITeil II: Arbeiten mit Isabelle

ITeil III: Modellierung imperative Programme

3

Pr¨ adikatenlogik

IBeschr¨ankungder Aussagenlogik:

I Eine Zahlnist eine Primzahl genau dann wenn sie nicht 1 ist und nur durch 1 und sich selbst teilbar ist.

I Eine Zahlmist durch eine Zahlnteilbar genau dann wenn es eine Zahlp gibt, so dassm=n·p.

I Nichtin Aussagenlogkformalisierbar.

IZiel: Formalisierung von Aussagen wie

I AlleZahlen sind ein Produkt von Primfaktoren.

I Es gibtkeinegr¨oßte Primzahl.

4

Erweiterung der Sprache

ITermebeschreiben die zu formalisierenden Objekte.

IFormelnsind logische Aussagen.

IUnserAlphabet:

IPr¨adikatensymbole:P1, . . . ,Pn,= mit˙ Arit¨atar(Pi)∈N,ar( ˙=) = 2

IFunktionssymbole:f1, . . . ,fmmitArit¨atar(ti)∈N

IMengeXvonVariablen(abz¨ahlbar viele)

IKonnektive:∧,−→,false,∀,abgeleitet:∨,←→,¬,←→,∃

5

Terme

IMengeTermderTermegegeben durch:

I Variablen:X⊆ Term

I Funktionssymbolfmitar(f) =nundt1, . . . ,tn∈ Term, dann f(t1, . . . ,tn)∈ Term

I Sonderfall:n= 0, dann istfeineKonstante,f∈ Term

6

Formeln

IMengeFormderFormelngegeben durch:

Ifalse∈ Form

IWennφ∈ Form, dann¬φ∈ Form

IWennφ, ψ∈ Form, dann φ∧ψ∈ Form, φ∨ψ∈ Form, φ−→ψ∈ Form, φ←→ψ∈ Form

IWennφ∈ Form,x∈X, dann∀x.φ∈ Form,∃x.φ∈ Form

IPr¨adikatensymbolpmitar(p) =mundt1, . . . ,tm∈ Term, dann p(t1, . . . ,tm)∈ Form

ISonderfall:t1,t2∈ Term, dannt1=˙t2∈ Form

Beispielaussagen

IAlle Zahlen sind gerade oder ungerade.

IKeine Zahl ist gerade und ungerade.

IEs gibt keine gr¨oßte Primzahl.

IF¨ur jede Primzahl gibt es eine, die gr¨oßer ist.

IEine Funktionf ist stetig an der Stellex0, gdw. es f¨ur jedesε >0 ein δ >0 gibt, so dass f¨ur allexmit|x−x0|< δgilt|f(x)−f(x0)|< .

(6)

Freie und gebundene Variable

IVariablen int∈ Term,p∈ Formsindfrei,gebunden, oderbindend.

Ixbindendin∀x.φ,∃x.ψ

IF¨ur∀x.φund∃x.φistxin Teilformelφgebunden

IAnsonsten istxfrei

IFV(φ): Menge derfreienVariablen inφ IBeispiel:

(q(x)∨ ∃x.∀y.p(f(x),z)∧q(a))∨ ∀r(x,z,g(x))

9

Substitution

Its x

istErsetzungvonxdurchsint IDefiniert durch strukturelleInduktion:

ys x

def

=

s x=y y x6=y f(t1, . . . ,tn)s

x def

= f(t1 s

x , . . . ,tn

s x ) falses

x def

= false (φ∧ψ)s

x def

= φs x

∧ψs x (φ−→ψ)s

x def

= φs x

−→ψs x p(t1, . . . ,tn)s

x def

= p(t1s x

, . . . ,tns x )

(∀y.φ)s x

def

=





∀y.φ x=y

∀y.(φs x

) x6=y,y6∈FV(s)

∀z.((φh z y i

)s x

) x6=y,y∈FV(s) mitz6∈FV(s) (zfrisch)

10

Nat¨ urliches Schließen mit Quantoren

φ

∀x.φ∀I (∗) ∀x.φ φt

x ∀E (†)

I(*)Eigenvariablenbedingung:

xnichtfreiin offenen Vorbedingungen vonφ(xbeliebig)

I(†) Ggf.Umbenennungdurch Substitution

IGegenbeispielef¨ur verletzte Seitenbedingungen

11

Der Existenzquantor

∃x.φdef=¬∀x.¬φ

φt x

∃x.φ ∃I (†) ∃x.φ [φ]

... ψ

ψ ∃E (∗)

I(*)Eigenvariablenbedingung:

xnicht frei inψ, oder einer offenenen Vorbedingung außerφ I(†) Ggf.Umbenennungdurch Substitution

12

Zusammenfassung

IPr¨adikatenlogik: Erweiterung der Aussagenlogik um

IKonstanten- und Pr¨adikatensymbole

IGleichheit

IQuantoren

IDasnat¨urliche Schließenmit Quantoren

IVariablenbindungen— Umbenennungen bei Substitution

IEigenvariablenbedingung

IDas n¨achste Mal:Gleichungenundnat¨urliche Zahlen

(7)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 11.11.09:

Gleichungslogik und nat¨urliche Zahlen

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

1

Das Tagesmen¨ u

IGleichheitin Logik 1. Stufe

IDienat¨urlichen Zahlen

IEigenschaften der nat¨urlichen Zahlen

2

Fahrplan

ITeil I: Grundlagen der Formalen Logik

IEinf¨uhrung

INat¨urliches Schließen, Aussagenlogik

IPr¨adikatenlogik 1. Stufe

IGleichungslogik und nat¨urliche Zahlen

ITeil II: Arbeiten mit Isabelle

ITeil III: Modellierung imperative Programme

3

Regeln f¨ ur die Gleichheit

IReflexivit¨at,Symmetrie,Transitivit¨at:

x=x refl x=y

y=x sym x=y y=z x=z trans

IKongruenz:

x1=y1, . . . ,xn=yn f(x1, . . . ,xn) =f(y1, . . . ,yn)conf

ISubstitutivit¨at:

x1=y1, . . . ,xm=ym P(x1, . . . ,xn)

P(y1, . . . ,ym) subst

4

Die nat¨ urlichen Zahlen

IVerschiedeneAxiomatisierungen:

IPresburger-Arithmetik

I5 Axiome

IKonsistent und vollst¨andig

IEntscheidbar (Aufwand 22cn,nL¨ange der Aussage)

IEnth¨alt Nichtstandardmodelle IPeano-Arithmetik

I8 Axiome

IKonsistent

IUnvollst¨andig (bzgl. Standard-Modellen)

INicht entscheidbar

Zusammenfassung

IGleichungslogik in nat¨urlichem Schließen:

I m¨oglich

I aberumst¨andlich

IEntwicklungnat¨urlicher Zahlenben¨otigt:

I Zus¨atzliche Axiome

I Konzepte h¨oherer Ordnung (Induktion!)

IDeshalbn¨achstes Mal: Logik h¨oherer Stufe

(8)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 16.11.09:

Grundlage von Isabelle

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

I Isabelle/HOL

I Beweise ¨uber funktionale Programme in Isabelle/HOL

I Beweisen mit Isabelle: Simplifikation, Taktiken ITeil III: Modellierung imperative Programme

2

Fahrplan

IGrundlagen:

Ider getypteλ-Kalk¨ul

IUnifikationundResolution

IBeweisenin Isabelle

3

Der λ-Kalk¨ ul

IIn den 30’ern vonAlonzo Churchals theoretisches Berechhnungsmodellerfunden.

IIn den 60’ern Basis vonLisp(John McCarthy)

IMathematische Basis von funktionalen Sprachen (Haskelletc.) IHier: Grundlage derSyntax(“higher-order abstract syntax”)

I Typisierung

I GebundeneVariablen

I Warum?

4

Der polymorph getypte λ-Kalk¨ ul

ITypenTypegegeben durch

ITypkonstanten:c∈ CType

ITypvariablen:α∈ VType(MengeVTypegegeben)

IFunktionen:s,t∈ Typedanns⇒tinType ITermeTermgegeben durch

IKonstanten:c∈ C

IVariablen:v∈ V

IApplikation:s,t∈ Termdanns t∈ Term

IAbstraktion:x∈ V, τ∈ Type,t∈ Termdannλxτ.t∈ Term

ITypτkann manchmal berechnet werden.

ISignaturenth¨altCType,C

5

Typisierung

ISignatur: Σ =hCType,C,ari,ar:C → Type

I Typisierung derKonstanten

I Notation: Σ ={c11, . . . ,cnn}f¨urar(ci) =τi

ITermthatTypτin einemKontextΓ und einerSignaturΣ:

Γ`Σt:τ

IKontext:x11, . . . ,xnn(xi∈ V)

I Typisierung vonVariablen IVergleicheHaskelletc.

6

Typisierung

IDie Regeln:

c:τ∈Σ Γ`Σc:τ CONST

x:τ∈Γ Γ`Σx:τ VAR Γ`Σs:σ⇒τ Γ`Σt:σ

Γ`Σs t:τ APP Γ,x:σ`Σt:τ

Γ`Σλxσ.t:σ⇒τ ABST

Einbettungen

IBeispiel: Einbettung derPr¨adikatenlogikmit PA IBasistypen:

CType={i,o}

IKonstanten:

Σ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,ex: (i⇒o)⇒o}

Σ = ΣT∪ΣA

Iφ∈ Form←→ `Σt:o

IBeispiel:∀x.∃y.(x=y)←→all(λx.ex(λy.(eq x)y))

(9)

Substitution

Ist x

ist Ersetzung vonxdurchtins IDefiniert durch strukturelle Induktion:

ct x

def

= c

yt x

def

=

t x=y y x6=y (r s)t

x def

= rt x

st x

(λy.s)t x

def

=





λy.s x=y

λy.st x

x6=y,y6∈FV(t) λz.(shz

y i

)t x

x6=y,y∈FV(t) mitz6∈FV(t) (zfrisch)

9

Reduktion und ¨ Aquivalenzen

Iβ-Reduktion: (λx.s)t→βst x

Iβ-¨Aquivalenz: =β

def= (→ββ←)

I s=βtiff.∃u.s→βu,t→βu(Church-Rosser) Iα-¨Aquivalenz:λx.t=αλy.ty

x

,y6∈FV(t)

I Name von gebundenen Variablen unerheblich

I In IsabelleImplizit(deBruijn-Indizes) Iη-¨Aquivalenz:λx.tx=ηt,x6∈FV(t)

I “punktfreie” Notation

10

Unifikation

IF¨urs,t∈ Termoders,t∈ Typeist SubstitutionσUnifikatorwenn sσ=tσ

IAllgemeinster Unifikatorτ: alle anderen Unifikatoren sind Instanzen vonτ

IAllgemeinster Unifikatoreindeutig, wenn erexistiert IUnifikationsalgorithmus:

τ(f t,g s) = false τ(f t,f s) = τ(t,s)

τ(t,x) = t x

x6∈FVt τ(y,s) = y

x

y6∈FVs

IMatching:einseitige Unifikation (σmitsσ=t)

11

Grundlagen von Isabelle

IGrundlage:getypter Λ-Kalk¨ul

IUnifikation und Matching (apply (rule r)) IAquivalenzen:¨

I β-Reduktionautomatisch

I α-¨Aquivalenzeingebaut(deBruijn-Indexing)

I η-¨Aquivalenzautomatisch IVariablen, Formeln, Resolution

12

Variablen

IMeta-Variablen: k¨onnenunifiziertund beliebiginstantiiertwerden Ifreie Variablen(fixed):beliebigaberfest

IGebundeneVariablen: Name beliebig (α-¨Aquivalenz) IMeta-Quantoren: IsabellesEigenvariablen

Vx.P(x)

∀x.P(x) allI !!x. P x ==> ALL x. P x

IBeliebiginstantiierbar

IG¨ultigkeitauf diese (Teil)-Formelbegrenzt

13

Formeln

IFormelnin Isabelle:

φ1, . . . , φn

ψ [[φ1, . . . , φn]] =⇒ψ

I φ1, . . . , φnFormeln,ψatomar

I Theoreme:ableitbareFormeln

I Ableitungvon Formeln:Resolution,Instantiierung,Gleichheit IRandbemerkung:

I =⇒,V

,≡formenMeta-Logik

I EinbettungandererLogiken als HOL m¨oglich —generischer Theorembeweiser

14

Resolution

IEinfache Resolution (rule)

IAchtung: LiftingvonMeta-QuantorenundBedingungen

IRandbemerkung: Unifikation h¨oherer Stufeunentscheidbar

IEliminationsresolution(erule)

IDestruktionsresolution(drule)

R¨ uckw¨ artsbeweis

IAusgehend vonBeweiszielψ

IBeweiszustandist [[φ1, . . . , φn]] =⇒ψ

Iφ1, . . . , φn:subgoals

IBeweisverfahren:Resolution,Termersetzung,Beweissuche

(10)

Zusammenfassung

IGetypterλ-Kalk¨ul als Grundlage der Metalogik, Modellierung von Logiken durchEinbettung

IIsabelle:KorrektheitdurchSystemarchitektur IBeweis:R¨uckw¨arts, Resolution

IAnmerkung: auchVorw¨artsbeweism¨oglich

IDonnerstag: Logikh¨oherer Ordnungin Isabelle

17

(11)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 18.11.09:

Logik H¨oherer Stufe in Isabelle

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

Fahrplan

IAlles ¨uberLogik h¨oherer Stufe (Higher-order Logic, HOL):

ITypenundTerme

IDie Basis-Axiome

IDefinierteOperatoren

3

Logik h¨ oherer Stufe

IZiel:Formalisierung von Mathematik

I “Logik f¨ur Erwachsene”

IProblem: M¨oglicheInkonsistenz(Russel’s Paradox) IL¨osung:Restriktionvs.Ausdrucksst¨arke

IAlternativeGrundlagen:

I AndereTyptheorien(Martin-L¨of, Calculus of Constructions)

I UngetypteMengenlehre(ZFC) IHOL: guterKompromiss, weit verbreitet.

I Klassische Logikh¨oherer Stufe nachChurch

I Schw¨acherals ZFC,st¨arkerals Typtheorien

4

Warum Logik h¨ oherer Stufe?

IAussagenlogik: keine Quantoren

ILogik1. Stufe: Quantoren ¨uber Terme

∀x y.x=y−→y=x

ILogik2. Stufe: Quantoren ¨uberPr¨adikatenundFunktionen

∀P.(P0∧ ∀x.P x−→P(S x))−→ ∀x.P x ILogik3. Stufe: Quantoren ¨uber Argumenten von Pr¨adikaten ILogik h¨oherer Stufe (HOL): alle endlichen Quantoren

IKeinewesentlichen Vorteilevon Logik 2. Ordnung

5

Vermeidung von Inkonsistenzen

IRussell’sParadox

I R={X|X6∈X}

I Abhilfe:Typen

IG¨odel’s2. Unvollst¨andigkeitssatz:

I JedeLogik, die ihre eigeneKonsistenzbeweist, istinkonsistent.

IUnterscheidung zwischenTermenundAussagen

I DadurchinHOL keine Aussage¨uberHOL

6

Typen

ITypenTypegegeben durch

ITypkonstanten:c∈ CType(MengeCTypedurch Signatur gegeben)

IProp,Bool∈ CType:Propalle Terme,Boolalle Aussagen

ITypvariablen:α∈ VType(MengeVTypefest)

IFunktionen:s,t∈ Typedanns⇒tinType IKonvention: Funktionsraumnach rechts geklammert

α⇒β⇒γf¨urα⇒(β⇒γ)

Terme

ITermeTermgegeben durch

I Konstanten:c∈ C(MengeCdurch Signatur gegeben)

I Variablen:v∈ V

I Applikation:s,t∈ Termdanns t∈ Term

I Abstraktion:x∈ V,t∈ Termdannλx.t∈ Term

IKonventionen: Applikationlinks geklammert, mehrfacheAbstraktion λx y z.f x y zf¨urλx. λy. λz.((f x)y)z

(12)

Basis-Syntax

= ::α⇒α⇒Bool

−→ ::Bool⇒Bool⇒Bool ι :: (α⇒Bool)⇒α

¬ ::Bool⇒Bool true ::Bool false::Bool

if ::Bool⇒α⇒α⇒α

∀ :: (α⇒Bool)⇒Bool

∃ :: (α⇒Bool)⇒Bool

∧ ::Bool⇒Bool⇒Bool

∨ ::Bool⇒Bool⇒Bool

IEinbettung (wird weggelassen) trueprop::Bool⇒Prop IBasis-Operatoren: =,−→, ι ISyntaktischeKonventionen:

IBindendeOperatoren:∀,∃,ι

∀x.P≡ ∀(λx.P)

IInfix-Operatoren:∧,∨,−→,=

IMixfix-Operator:

if b then p else q≡if b p q

9

Basis-Axiome I: Gleichheit

IReflexivit¨at:

t=trefl

ISubstitutivit¨at:

s=t P(s) P(t) subst

IExtensionalit¨at:

∀x.fx=gx (λx.fx) = (λx.gx) ext

IEinf¨uhrungsregel:

(P−→Q)−→(Q−→P)−→(P=Q)iff

10

Basis-Axiome II: Implikation und Auswahl

IEinf¨uhrungsregelImplikation:

[P]

... Q P−→Q impl

IEliminationsregelImplikation:

P−→Q P

Q mp

IEliminationsregel Auswahloperator:

(ιx.x=a) =athe eq

IHOL istklassisch:

(P=true)∨(P=false)true or false

11

Die Basis-Axiome (Isabelle-Syntax)

refl : t=t

subst : [[s=t;P(s)]] =⇒P(t) ext : [[V

x.fx=gx]] =⇒(λx.fx) = (λx.gx) impl : [[P=⇒Q]] =⇒P−→Q

mp : [[P−→Q;P]] =⇒Q

iff : (P−→Q)−→(Q−→P)−→(P=Q) the eq : (ιx.x=a) =a

true or false : (P=true)∨(P=false)

12

Abgeleitete Operatoren

true ≡ (λx.x) = (λx.x)

∀P ≡ (P=λx.true)

∃P ≡ ∀Q.(∀x.Px−→Q)−→Q false ≡ ∀P.P

¬P ≡ P−→false

P∧Q ≡ ∀R.(P−→Q−→R)−→R P∨Q ≡ ∀R.(P−→R)−→(Q−→R)−→R

if P then x else y ≡ ιz.(P=true−→z=x)∧(P=false−→z=y)

13

Erweiterungen

IWeitereOperatoren

IWeitereTypen: nat¨urliche Zahlen, Datentypen IAxiomatisch(vgl. Peano/Presburger in FOL)

I M¨oglicheInkonsistenzen IKonserverative Erweiterung

I Logikkonsistentzerhaltenderweitern

14

Zusammenfassung

Logikh¨oherer Stufe(HOL):

ISyntax basiert auf demeinfach getyptenλ-Kalk¨ul

IDreiBasis-Operatoren,achtBasis-Axiome

IRestfolgt durchkonservative Erweiterung— n¨achstes Mal

(13)

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

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.

(14)

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

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"

(15)

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

(16)

Formale Methoden der Softwaretechnik 1 Vorlesung vom 02.12.09:

Beweisprozeduren und Funktionsdefinitionen

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

Uberblick ¨

IAutomatischeBeweisprozedurenim ¨Uberblick

IDefinition vonFunktionen

3

Simplifikation

ISimplifikation istTermersetzung:

I Gegeben Theorems=t, ersetzesdurcht.

IBenutzung:apply (simp)

INutzt Gleichungen und Ungleichungen:

I Funktionsdefinitionen

I Vereinfachungsregeln f¨urDatentypen

I DeklarierteTheoreme

I Annahmendes lokalen Subgoals

IBenutztbedingteGleichungen:s1=t1, . . . ,sn=tn=⇒s=t

I Ersetztsdurcht, wenn Gleichungens1=t1. . .sn=tnrekursiv gezeigt werden k¨onnen.

IInstantiiertkeineMeta-Variablen

IErzeugtkeineneuen Subgoals, nur Vereinfachung

4

Klassische Beweiser

IBeweisplaner:blast

IKonstruiert Beweis durch Suche

IGelingt oder schl¨agt fehl:keineneuen Subgoals IKlassischer Beweiser:clarify

IWendet Einf¨uhrungs- und Eliminationsregeln systematisch an

IKeineneuen Subgoals, nur Vereinfachung

ISicher:keine unbeweisbaren Subgoals

Iclarsimp: Kombination mit Simplifikation IVollautomatisch:auto

IKombination verschiedener Beweiser

IInstantiiertMeta-Variablen, erzeugt neue Subgoals

IUnsicher:kann unbeweisbare Subgoals erzeugen

5

Definition von Funktionen

IIn HOL: alle Funktionentotal

I Need-to-know-Prinzip: unbeweisbar ist undefiniert

IDer einfache Fall:primitiv rekursiv

IDer allgemeinere Fall

IImmer mitTerminationsbeweis

6

Einfache Rekursion

funf:: τ where

equations

Volle Rekursion

functionf :: τ where

equations

bycompleteness-proof

termination bytermination-proof

(17)

Zusammenfassung

IAutomatische Beweisprozeduren:simp,blast,clarify,auto

IFunktionsdefinition:funundfunction

IFast wie in Haskell, aber immertotal.

9

Referenzen

ÄHNLICHE DOKUMENTE

Man beweise (informal), daß jede zweistellige Relation R mit der Diamanteneigenschaft konfluent ist.

Mathematisches Institut der Universit¨ at M¨ unchen Helmut Schwichtenberg. Wintersemester 2009/2010

Einführung in die Technik der Dokumentation (Textdokumente, pdf, Powerpoint-Folien) und Präsentation, mit praktischen Übungen zur rhetorischen und didaktischen

Bis er den Kaufpreis vollständig auf seinem Konto habe, wolle er aber das Eigentum an dem Welpen behalten.. S ist einverstanden; die beiden beenden

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

Christoph L¨uth, Dennis Walter Universit¨ at Bremen Wintersemester

length (filter p (x:xs)) 2.1... Induktionbasis length

◦ Endliche Mengen: implementiert durch geordnete Listen, Verstecken der Repr¨ asentation n¨ otig f¨ ur Korrektheit. ◦ Relationen und Graphen: Graphalgorithmen durch