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.
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.
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
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.
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)|< .
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
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
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: Σ ={c1:τ1, . . . ,cn:τn}f¨urar(ci) =τi
ITermthatTypτin einemKontextΓ und einerSignaturΣ:
Γ`Σt:τ
IKontext:x1:τ1, . . . ,xn:τn(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))
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
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
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
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
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.
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"
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
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
Zusammenfassung
IAutomatische Beweisprozeduren:simp,blast,clarify,auto
IFunktionsdefinition:funundfunction
IFast wie in Haskell, aber immertotal.
9