Formale Methoden der Softwaretechnik Vorlesung vom 30.05.11: Logik Höherer Stufe
Till Mossakowski & Christoph Lüth
Universität Bremen
Sommersemester 2011
Fahrplan
I Alles überLogik höherer Stufe (Higher-order Logic, HOL):
I TypenundTerme
I Die Basis-Axiome
I DefinierteOperatoren
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
Logik höherer Stufe
I Ziel:Formalisierung von Mathematik
I “Logik für Erwachsene”
I Problem: Mögliche Inkonsistenz (Russel’s Paradox)
I Lösung:Restriktionvs. Ausdrucksstärke
I AlternativeGrundlagen:
I AndereTyptheorien(Martin-Löf, Calculus of Constructions)
I UngetypteMengenlehre(ZFC)
I HOL: guter Kompromiss, weit verbreitet.
I Klassische Logikhöherer Stufe nachChurch
I Schwächerals ZFC,stärkerals Typtheorien
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 über Prädikatenund Funktionen
∀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
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 über Prädikatenund Funktionen
∀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
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 über Prädikatenund Funktionen
∀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
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 über Prädikatenund Funktionen
∀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
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 über Prädikatenund Funktionen
∀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
Vermeidung von Inkonsistenzen
I Russell’sParadox
I R={X |X 6∈X}
I Abhilfe:Typen
I Gödel’s2. Unvollständigkeitssatz:
I JedeLogik, die ihre eigeneKonsistenz beweist, istinkonsistent.
I Unterscheidung zwischenTermenund Aussagen
I DadurchinHOL keine Aussageüber HOL
Typen
I TypenType gegeben durch
I Typkonstanten:c∈ CType (MengeCType durch Signatur gegeben)
I Prop,Bool∈ CType:Propalle Terme,Boolalle Aussagen
I Typvariablen: α∈ VType (MengeVType fest)
I Funktionen:s,t ∈ Typedanns⇒t inType
I Konvention: Funktionsraum nach rechts geklammert α⇒β⇒γ für α⇒(β ⇒γ)
Terme
I TermeTerm gegeben durch
I Konstanten:c∈ C (MengeC durch Signatur gegeben)
I Variablen:v∈ V
I Applikation:s,t∈ Termdanns t∈ Term
I Abstraktion:x ∈ V,t ∈ Termdannλx.t ∈ Term
I Konventionen: Applikation links geklammert, mehrfache Abstraktion λx y z.f x y z für λ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
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
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
Basis-Axiome II: Implikation und Auswahl
I EinführungsregelImplikation:
[P] ... Q
P −→Q impl
I EliminationsregelImplikation:
P −→Q P
Q mp
I Eliminationsregel Auswahloperator:
(ιx.x =a) =a the_eq
I HOL istklassisch:
(P =true)∨(P =false) true_or_false
Die Basis-Axiome (Isabelle-Syntax)
refl: t=t
subst: [[s =t;P(s)]] =⇒P(t)
ext: [[Vx.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)
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)
Erweiterungen
I WeitereOperatoren
I WeitereTypen: natürliche Zahlen, Datentypen
I Axiomatisch(vgl. Peano/Presburger in FOL)
I MöglicheInkonsistenzen
I Konserverative Erweiterung
I Logikkonsistentzerhaltenderweitern
Zusammenfassung
Logik höherer Stufe(HOL):
I Syntax basiert auf demeinfach getypten λ-Kalkül
I DreiBasis-Operatoren,achtBasis-Axiome
I Restfolgt durchkonservative Erweiterung — nächstes Mal