Formale Methoden der Softwaretechnik Vorlesung vom 30.05.11: Logik Höherer Stufe
Till Mossakowski & Christoph Lüth Universität Bremen Sommersemester 2011
Rev. 1466 1 [15]
Fahrplan
I Alles überLogik höherer Stufe (Higher-order Logic, HOL):
ITypenundTerme
IDie Basis-Axiome
IDefinierteOperatoren
2 [15]
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 Definitionen und konservative Erweiterung
I Automatische Beweisprozeduren
I Isabelle II: Anwendungen
3 [15]
Logik höherer Stufe
I Ziel:Formalisierung von Mathematik
I“Logik für Erwachsene”
I Problem: MöglicheInkonsistenz(Russel’s Paradox) I Lösung:Restriktionvs.Ausdrucksstärke
I AlternativeGrundlagen:
IAndereTyptheorien(Martin-Löf, Calculus of Constructions)
IUngetypteMengenlehre(ZFC) I HOL: guterKompromiss, weit verbreitet.
IKlassische Logikhöherer Stufe nachChurch
ISchwächerals ZFC,stärkerals Typtheorien
4 [15]
Warum Logik höherer Stufe?
I Aussagenlogik: keine Quantoren I Logik1. Stufe: Quantoren über Terme
∀x y.x=y−→y=x
I Logik2. Stufe: Quantoren überPrädikatenundFunktionen
∀P.(P0∧ ∀x.P x−→P(S x))−→ ∀x.P x
I Logik3. Stufe: Quantoren über Argumenten von Prädikaten I Logik höherer Stufe (HOL): alle endlichen Quantoren
I Keinewesentlichen Vorteilevon Logik 2. Ordnung
5 [15]
Vermeidung von Inkonsistenzen
I Russell’sParadox
IR={X|X6∈X}
IAbhilfe:Typen
I Gödel’s2. Unvollständigkeitssatz:
IJedeLogik, die ihre eigeneKonsistenzbeweist, istinkonsistent.
I Unterscheidung zwischenTermenundAussagen
IDadurchinHOL keine AussageüberHOL
6 [15]
Typen
I TypenTypegegeben durch
I Typkonstanten:c∈ CType(MengeCTypedurch Signatur gegeben)
I Prop,Bool∈ CType:Propalle Terme,Boolalle Aussagen
I Typvariablen:α∈ VType(MengeVTypefest)
I Funktionen:s,t∈ Typedanns⇒tinType
I Konvention: Funktionsraumnach rechts geklammert α⇒β⇒γfürα⇒(β⇒γ)
7 [15]
Terme
I TermeTermgegeben durch
IKonstanten:c∈ C(MengeCdurch Signatur gegeben)
IVariablen:v∈ V
IApplikation:s,t∈ Termdanns t∈ Term
IAbstraktion:x∈ V,t∈ Termdannλx.t∈ Term
I Konventionen: Applikationlinks geklammert, mehrfacheAbstraktion λx y z.f x y zfürλx. λy. λz.((f x)y)z
8 [15]
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
I Einbettung (wird weggelassen) trueprop::Bool⇒Prop
I Basis-Operatoren:=,−→, ι I SyntaktischeKonventionen:
I BindendeOperatoren:∀,∃,ι
∀x.P≡ ∀(λx.P)
I Infix-Operatoren:∧,∨,−→,=
I Mixfix-Operator:
if b then p else q≡if b p q
9 [15]
Basis-Axiome I: Gleichheit
I Reflexivität:
t=t refl
I Substitutivität:
s=t P(s) P(t) subst
I Extensionalität:
∀x.fx=gx (λx.fx) = (λx.gx)ext
I Einführungsregel:
(P−→Q)−→(Q−→P)−→(P=Q)iff
10 [15]
Basis-Axiome II: Implikation und Auswahl
I EinführungsregelImplikation:
[P]
... Q P−→Q impl
I EliminationsregelImplikation:
P−→Q P
Q mp
IEliminationsregel Auswahloperator:
(ιx.x=a) =a the_eq
IHOL istklassisch:
(P=true)∨(P=false)true_or_false
11 [15]
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 [15]
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 [15]
Erweiterungen
I WeitereOperatoren
I WeitereTypen: natürliche Zahlen, Datentypen
I Axiomatisch(vgl. Peano/Presburger in FOL)
IMöglicheInkonsistenzen
I Konserverative Erweiterung
ILogikkonsistentzerhaltenderweitern
14 [15]
Zusammenfassung
Logikhöherer Stufe(HOL):
I Syntax basiert auf demeinfach getyptenλ-Kalkül
I DreiBasis-Operatoren,achtBasis-Axiome
I Restfolgt durchkonservative Erweiterung— nächstes Mal
15 [15]