Inferenzmethoden

Werbung
Inferenzmethoden
Einheit 17
Logik höherer Stufe
1. Syntax und Semantik
2. Simulation mathematischer Konstrukte
3. Beweisführung in Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
– Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
Inferenzmethoden §17
1
Logik höherer Stufe
λx.x+2
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
– Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
– Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
– Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
– Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
– Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Quantifizierung über Funktionale, . . .
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Quantifizierung über Funktionale, . . .
• Logik höherer Stufe hat keine Einschränkungen
– Extrem einfache Syntax: x, λx.t, f (a), ∀x P , P ⇒ Q
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Quantifizierung über Funktionale, . . .
• Logik höherer Stufe hat keine Einschränkungen
– Extrem einfache Syntax: x, λx.t, f (a), ∀x P , P ⇒ Q
– Fester Auswertungsmechanismus (β-)Reduktion: (λx.t)(a) −→ t[a/x]
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Quantifizierung über Funktionale, . . .
• Logik höherer Stufe hat keine Einschränkungen
– Extrem einfache Syntax: x, λx.t, f (a), ∀x P , P ⇒ Q
– Fester Auswertungsmechanismus (β-)Reduktion: (λx.t)(a) −→ t[a/x]
• Logik höherer Stufe ist minimale Grundlagentheorie
– Keine Abstützung auf Mengentheorie erforderlich
– Reduktion erklärt Wert von Ausdrücken
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe
• Logik erster Stufe hat nur einfache Variablen
– Keine Quantifizierung über Funktions- oder Prädikatensymbole erlaubt
• Konstrukte höherer Stufe kommen überall vor
–
–
–
–
–
Funktionen (2. Stufe): “Bestimme x+2 bei Eingabe x”
λx.x+2
Induktionsprinzip:
∀P .P (0) ∧ (∀y:N.P (y) ⇒ P (y+1)) ⇒ ∀x:N.P (x)
Zwischenwertsatz: ∀f :R→R.∀a < b:R.(f (a)>0 ∧ f (b)<0) ⇒ ∃x:R.f (x)=0
Funktionale (3. Stufe): Ableitungsoperator
λf.df /dx
Quantifizierung über Funktionale, . . .
• Logik höherer Stufe hat keine Einschränkungen
– Extrem einfache Syntax: x, λx.t, f (a), ∀x P , P ⇒ Q
– Fester Auswertungsmechanismus (β-)Reduktion: (λx.t)(a) −→ t[a/x]
• Logik höherer Stufe ist minimale Grundlagentheorie
– Keine Abstützung auf Mengentheorie erforderlich
– Reduktion erklärt Wert von Ausdrücken
– Mathematische Konzepte werden nicht über Axiome erklärt sondern als
definitorische Abkürzung für komplexe Terme
(logizistischer Ansatz)
Inferenzmethoden §17
1
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
Inferenzmethoden §17
2
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
• Terme
– Variablen x ∈ V
Inferenzmethoden §17
2
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
• Terme
– Variablen x ∈ V
– λx.t, wobei x ∈ V und t Term
– f t, wobei t und f Terme
λ-Abstraktion
Applikation
– (t), wobei t Term
Inferenzmethoden §17
2
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
• Terme
– Variablen x ∈ V
– λx.t, wobei x ∈ V und t Term
– f t, wobei t und f Terme
λ-Abstraktion
Applikation
– (t), wobei t Term
– (P ⇒ Q), wobei P ,Q Terme
– (∀x P ), wobei x ∈ V und P Term
Inferenzmethoden §17
2
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
• Terme
– Variablen x ∈ V
– λx.t, wobei x ∈ V und t Term
λ-Abstraktion
– f t, wobei t und f Terme
Applikation
– (t), wobei t Term
– (P ⇒ Q), wobei P ,Q Terme
– (∀x P ), wobei x ∈ V und P Term
• Konventionen
– Applikation bindet stärker als λ-Abstraktion
– Applikation ist links-assoziativ:
Inferenzmethoden §17
2
f t1 t2 =
ˆ (f t1) t2
Logik höherer Stufe
Logik höherer Stufe – Syntax
• Alphabet für erlaubte Symbole
– V: Variablensymbole
• Terme
– Variablen x ∈ V
– λx.t, wobei x ∈ V und t Term
λ-Abstraktion
– f t, wobei t und f Terme
Applikation
– (t), wobei t Term
– (P ⇒ Q), wobei P ,Q Terme
– (∀x P ), wobei x ∈ V und P Term
• Konventionen
– Applikation bindet stärker als λ-Abstraktion
– Applikation ist links-assoziativ:
f t1 t2 =
ˆ (f t1) t2
– Notation f (t1,. . . tn) entspricht iterierter Applikation f t1...tn
Inferenzmethoden §17
2
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
Inferenzmethoden §17
3
(z neue Variable)
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
Inferenzmethoden §17
3
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
• (β-)Reduktion: Auswertung von Termen
– Ersetze Teilterm der Gestalt (λx.t)(s) (Redex) durch t[s/x] (Kontraktum)
Inferenzmethoden §17
3
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
• (β-)Reduktion: Auswertung von Termen
– Ersetze Teilterm der Gestalt (λx.t)(s) (Redex) durch t[s/x] (Kontraktum)
∗
– t ist reduzierbar auf u (t −→ u), wenn u aus t durch endlich viele
Reduktionen und Umbenennungen entsteht
(=ˆ Termersetzung)
Inferenzmethoden §17
3
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
• (β-)Reduktion: Auswertung von Termen
– Ersetze Teilterm der Gestalt (λx.t)(s) (Redex) durch t[s/x] (Kontraktum)
∗
– t ist reduzierbar auf u (t −→ u), wenn u aus t durch endlich viele
Reduktionen und Umbenennungen entsteht
(=ˆ Termersetzung)
• (Semantische) Gleichheit t = s
∗
∗
– Es gibt einen Term u mit t −→ u und s −→ u
Inferenzmethoden §17
3
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
• (β-)Reduktion: Auswertung von Termen
– Ersetze Teilterm der Gestalt (λx.t)(s) (Redex) durch t[s/x] (Kontraktum)
∗
– t ist reduzierbar auf u (t −→ u), wenn u aus t durch endlich viele
Reduktionen und Umbenennungen entsteht
(=ˆ Termersetzung)
• (Semantische) Gleichheit t = s
∗
∗
– Es gibt einen Term u mit t −→ u und s −→ u
• Normalform von t: Wert eines Terms
– Irreduzibler (Redex-freier) Term u mit t = u
– Der Wert eines Terms ist eindeutig
– Nicht jeder Term hat einen Wert
Inferenzmethoden §17
3
∗
ist konfluent)
( −→
(keine starke Normalisierbarkeit)
Logik höherer Stufe
Logik höherer Stufe – (Wert-)Semantik
• α-Konversion: Umbenennung gebundener Variablen
– Ersetze Teilterm der Gestalt λx.t durch λz.t[z/x]
(z neue Variable)
– Ersetze Teilterm der Gestalt ∀x P durch ∀z P [z/x]
– Terme t und u sind kongruent (α-konvertibel), wenn sie auseinander
durch endlich viele Umbenennungen gebundener Variablen entstehen
• (β-)Reduktion: Auswertung von Termen
– Ersetze Teilterm der Gestalt (λx.t)(s) (Redex) durch t[s/x] (Kontraktum)
∗
– t ist reduzierbar auf u (t −→ u), wenn u aus t durch endlich viele
Reduktionen und Umbenennungen entsteht
(=ˆ Termersetzung)
• (Semantische) Gleichheit t = s
∗
∗
– Es gibt einen Term u mit t −→ u und s −→ u
• Normalform von t: Wert eines Terms
– Irreduzibler (Redex-freier) Term u mit t = u
– Der Wert eines Terms ist eindeutig
– Nicht jeder Term hat einen Wert
∗
ist konfluent)
( −→
(keine starke Normalisierbarkeit)
• Semantik von ∀ und ⇒ analog zur Prädikatenlogik
Inferenzmethoden §17
3
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡
Disjunktion
∨ ≡
Falschheit
⊥ ≡
Negation
¬ ≡
Existenzquantor ∃x A ≡
.
= ≡
Gleichheit
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡
Falschheit
⊥ ≡
Negation
¬ ≡
Existenzquantor ∃x A ≡
.
= ≡
Gleichheit
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡ λA.λB.∀P ((A ⇒ P ) ⇒ (B ⇒ P )) ⇒ P
Falschheit
⊥ ≡
Negation
¬ ≡
Existenzquantor ∃x A ≡
.
= ≡
Gleichheit
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡ λA.λB.∀P ((A ⇒ P ) ⇒ (B ⇒ P )) ⇒ P
Falschheit
⊥ ≡ ∀P P
Negation
¬ ≡
(intuitionistisch)
Existenzquantor ∃x A ≡
.
= ≡
Gleichheit
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡ λA.λB.∀P ((A ⇒ P ) ⇒ (B ⇒ P )) ⇒ P
Falschheit
⊥ ≡ ∀P P
Negation
¬ ≡ λA.∀P (A ⇒ P )
(intuitionistisch)
Existenzquantor ∃x A ≡
.
= ≡
Gleichheit
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡ λA.λB.∀P ((A ⇒ P ) ⇒ (B ⇒ P )) ⇒ P
Falschheit
⊥ ≡ ∀P P
Negation
¬ ≡ λA.∀P (A ⇒ P )
(intuitionistisch)
Existenzquantor ∃x A ≡ ∀P (∀x (A ⇒ P )) ⇒ P
.
Gleichheit
= ≡
Inferenzmethoden §17
4
Logik höherer Stufe
Definition logischer Standardkonzepte
Junktoren werden zu benutzerdefinierten Funktionen
Konjunktion
∧ ≡ λA.λB.∀P (A ⇒ (B ⇒ P )) ⇒ P
Disjunktion
∨ ≡ λA.λB.∀P ((A ⇒ P ) ⇒ (B ⇒ P )) ⇒ P
Falschheit
⊥ ≡ ∀P P
Negation
¬ ≡ λA.∀P (A ⇒ P )
(intuitionistisch)
Existenzquantor ∃x A ≡ ∀P (∀x (A ⇒ P )) ⇒ P
.
Gleichheit
= ≡ λx.λy.∀P ( P (x) ⇒ P (y) )
Inferenzmethoden §17
4
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
exp
≡ λm.λn.λf.λx. n m f x
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
exp
≡ λm.λn.λf.λx. n m f x
zero
≡ λn. n (λn.F) T
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
exp
≡ λm.λn.λf.λx. n m f x
zero
≡ λn. n (λn.F) T
≡ λn. (n (λfx. hs, let hf,xi = fx in f xi) hλz.0, 0i).2
p
Inferenzmethoden §17
5
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
exp
≡ λm.λn.λf.λx. n m f x
zero
p
≡ λn. n (λn.F) T
≡ λn. (n (λfx. hs, let hf,xi = fx in f xi) hλz.0, 0i).2
N
≡ λx.∀P (∀y P(y) ⇒ P(s y)) ⇒ P(0) ⇒ P(x)
Inferenzmethoden §17
5
N (x)=x
ˆ ∈N
Logik höherer Stufe
Definition von Zahlen: Church Numerals
n
s
≡ λf.λx. f n x
≡ λf.λx. f (f . . . (f x) . . . )
|
{z
}
n-mal
≡ λn.λf.λx. n f (f x)
add
≡ λm.λn.λf.λx. m f (n f x)
mul
≡ λm.λn.λf.λx. m (n f ) x
exp
≡ λm.λn.λf.λx. n m f x
zero
p
≡ λn. n (λn.F) T
≡ λn. (n (λfx. hs, let hf,xi = fx in f xi) hλz.0, 0i).2
N
≡ λx.∀P (∀y P(y) ⇒ P(s y)) ⇒ P(0) ⇒ P(x)
N (x)=x
ˆ ∈N
Abkürzungen
T
F
if b then s else t
hs,ti
let hx,y i = pair in t
Inferenzmethoden §17
≡
≡
≡
≡
≡
λx.λy.x
λx.λy.y
bst
λp. p s t
pair (λx.λy.t)
5
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡ (λn.λf.λx. n f (f x)) (λf.λx. f n x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡ (λn.λf.λx. n f (f x)) (λf.λx. f n x)
−→ λf.λx. (λf.λx. f n x) f (f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡ (λn.λf.λx. n f (f x)) (λf.λx. f n x)
−→ λf.λx. (λf.λx. f n x) f (f x)
−→ λf.λx. (λx. f n x) (f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
Inferenzmethoden §17
6
≡
n+1
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
add m n ≡ (λm.λn.λf.λx. m f (n f x)) m n
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
add m n ≡ (λm.λn.λf.λx. m f (n f x)) m n
−→ (λn.λf.λx. m f (n f x)) n
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
add m n ≡ (λm.λn.λf.λx. m f (n f x)) m n
−→ (λn.λf.λx. m f (n f x)) n
−→ λf.λx. m f (n f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
≡
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
λf.λx. f m ((λf.λx. f n x) f x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
≡
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
λf.λx. f m ((λf.λx. f n x) f x)
λf.λx. f m ((λx. f n x) x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
≡
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
λf.λx. f m ((λf.λx. f n x) f x)
λf.λx. f m ((λx. f n x) x)
λf.λx. f m (f n x)
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
≡
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
λf.λx. f m ((λf.λx. f n x) f x)
λf.λx. f m ((λx. f n x) x)
λf.λx. f m (f n x)
λf.λx. f m+n x
Inferenzmethoden §17
6
Logik höherer Stufe
Church Numerals: Auswertung von Funktionen
sn
≡
−→
−→
−→
−→
add m n ≡
−→
−→
≡
−→
−→
≡
−→
−→
−→
(λn.λf.λx. n f (f x)) (λf.λx. f n x)
λf.λx. (λf.λx. f n x) f (f x)
λf.λx. (λx. f n x) (f x)
λf.λx. f n (f x)
λf.λx. fn+1 x
≡
n+1
(λm.λn.λf.λx. m f (n f x)) m n
(λn.λf.λx. m f (n f x)) n
λf.λx. m f (n f x)
λf.λx. (λf.λx. f m x) f (n f x)
λf.λx. (λx. f m x) (n f x)
λf.λx. f m (n f x)
λf.λx. f m ((λf.λx. f n x) f x)
λf.λx. f m ((λx. f n x) x)
λf.λx. f m (f n x)
λf.λx. f m+n x
≡
m+n
Inferenzmethoden §17
6
Logik höherer Stufe
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
Inferenzmethoden §17
7
Logik höherer Stufe
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
• Erweiterte Matrixcharakterisierung der Gültigkeit
– F ist gültig gdw. alle Pfade durch F komplementär
Inferenzmethoden §17
7
Logik höherer Stufe
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
• Erweiterte Matrixcharakterisierung der Gültigkeit
– F ist gültig gdw. alle Pfade durch F komplementär
– Komplementarität mit erweitertem Substitutionsbegriff
· Prädikats- und Funktionssymbole dürfen ersetzt werden
· Konnektierte Terme müssen nur semantisch gleich sein
Inferenzmethoden §17
7
Logik höherer Stufe
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
• Erweiterte Matrixcharakterisierung der Gültigkeit
– F ist gültig gdw. alle Pfade durch F komplementär
– Komplementarität mit erweitertem Substitutionsbegriff
· Prädikats- und Funktionssymbole dürfen ersetzt werden
· Konnektierte Terme müssen nur semantisch gleich sein
• Erweitertes Beweissuchverfahren
→ TPS (Andrews)
– Konnektionen-orientiertes Pfadüberprüfungsverfahren
Inferenzmethoden §17
7
Logik höherer Stufe
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
• Erweiterte Matrixcharakterisierung der Gültigkeit
– F ist gültig gdw. alle Pfade durch F komplementär
– Komplementarität mit erweitertem Substitutionsbegriff
· Prädikats- und Funktionssymbole dürfen ersetzt werden
· Konnektierte Terme müssen nur semantisch gleich sein
• Erweitertes Beweissuchverfahren
→ TPS (Andrews)
– Konnektionen-orientiertes Pfadüberprüfungsverfahren
– Komplementaritätstest mit Unifikation höherer Stufe
· i.A. unentscheidbar (!) und erheblich komplizierteres Verfahren
Inferenzmethoden §17
7
Logik höherer Stufe
→ Huet
Beweisführung in Logik höherer Stufe
Extensionsverfahren ähnlich wie bei Prädikatenlogik
• Erweiterte Matrixcharakterisierung der Gültigkeit
– F ist gültig gdw. alle Pfade durch F komplementär
– Komplementarität mit erweitertem Substitutionsbegriff
· Prädikats- und Funktionssymbole dürfen ersetzt werden
· Konnektierte Terme müssen nur semantisch gleich sein
• Erweitertes Beweissuchverfahren
→ TPS (Andrews)
– Konnektionen-orientiertes Pfadüberprüfungsverfahren
– Komplementaritätstest mit Unifikation höherer Stufe
· i.A. unentscheidbar (!) und erheblich komplizierteres Verfahren
• Beweise sind i.A. sehr kurz und elegant
– Aber erheblich schwerer zu finden
Inferenzmethoden §17
7
Logik höherer Stufe
→ Huet
Beweis der Grundeigenschaften der Gleichheit
.
= ≡ λx.λy.∀P (P (x) ⇒ P (y))
.
• Reflexivität: a=a
Inferenzmethoden §17
P aT P aF
8
Logik höherer Stufe
Beweis der Grundeigenschaften der Gleichheit
.
= ≡ λx.λy.∀P (P (x) ⇒ P (y))
.
• Reflexivität: a=a
P aT P aF
.
.
• Kommutativität: a=b ⇒ b=a
XaF P bT
XbT
Inferenzmethoden §17
8
P aF
[λz.¬P z/X]
Logik höherer Stufe
Beweis der Grundeigenschaften der Gleichheit
.
= ≡ λx.λy.∀P (P (x) ⇒ P (y))
.
• Reflexivität: a=a
P aT P aF
.
.
• Kommutativität: a=b ⇒ b=a
XaF P bT
P aF
XbT
.
.
.
• Transitivität: a=b ∧ b=c ⇒ a=c
XaF Y bF
XbT
Inferenzmethoden §17
[λz.¬P z/X]
8
P aT
P cF
Y cT
[P/X, P/Y ]
Logik höherer Stufe
Beweis der Grundeigenschaften der Gleichheit
.
= ≡ λx.λy.∀P (P (x) ⇒ P (y))
.
• Reflexivität: a=a
P aT P aF
.
.
• Kommutativität: a=b ⇒ b=a
XaF P bT
P aF
XbT
.
.
.
• Transitivität: a=b ∧ b=c ⇒ a=c
[λz.¬P z/X]
XaF Y bF
XbT
.
• Substitutivität: P a ∧ a=b ⇒ P b
P aT
P cF
Y cT
[P/X, P/Y ]
P aT XaF P bF
XbT
Inferenzmethoden §17
8
[P/X]
Logik höherer Stufe
Intuitionistische Logik höherer Stufe
• Unterstützt formale Manipulation von Algorithmen
– Synthese aus Spezifikationen, Optimierung, Verifikation, . . .
– Einheitliche Sprache für Spezifikation, Programmierung, Deduktion. . .
Inferenzmethoden §17
9
Logik höherer Stufe
Intuitionistische Logik höherer Stufe
• Unterstützt formale Manipulation von Algorithmen
– Synthese aus Spezifikationen, Optimierung, Verifikation, . . .
– Einheitliche Sprache für Spezifikation, Programmierung, Deduktion. . .
• (Zur Zeit noch) viele verschiedene Formulierungen
–
–
–
–
Martin-Löf’sche Typentheorie (Computational Type Theory)
Kalkül der Konstruktionen
System F
LCF (Logik berechenbarer Funktionen)
..
Inferenzmethoden §17
9
Logik höherer Stufe
Intuitionistische Logik höherer Stufe
• Unterstützt formale Manipulation von Algorithmen
– Synthese aus Spezifikationen, Optimierung, Verifikation, . . .
– Einheitliche Sprache für Spezifikation, Programmierung, Deduktion. . .
• (Zur Zeit noch) viele verschiedene Formulierungen
–
–
–
–
Martin-Löf’sche Typentheorie (Computational Type Theory)
Kalkül der Konstruktionen
System F
LCF (Logik berechenbarer Funktionen)
..
• Beweissysteme interaktiv mit taktischer Steuerung
–
–
–
–
–
AUTOMATH (historischer Vorläufer)
Nuprl, MetaPRL (Computational Type Theory)
Alf / Agda, ... (Martin-Löf Typentheorie)
Lego, Coq (Kalkül der Konstruktionen)
Cambridge LCF
Inferenzmethoden §17
9
Logik höherer Stufe
Intuitionistische Logik höherer Stufe
• Unterstützt formale Manipulation von Algorithmen
– Synthese aus Spezifikationen, Optimierung, Verifikation, . . .
– Einheitliche Sprache für Spezifikation, Programmierung, Deduktion. . .
• (Zur Zeit noch) viele verschiedene Formulierungen
–
–
–
–
Martin-Löf’sche Typentheorie (Computational Type Theory)
Kalkül der Konstruktionen
System F
LCF (Logik berechenbarer Funktionen)
..
• Beweissysteme interaktiv mit taktischer Steuerung
–
–
–
–
–
AUTOMATH (historischer Vorläufer)
Nuprl, MetaPRL (Computational Type Theory)
Alf / Agda, ... (Martin-Löf Typentheorie)
Lego, Coq (Kalkül der Konstruktionen)
Cambridge LCF
• Viele erfolgreiche Anwendungen
Inferenzmethoden §17
9
Logik höherer Stufe
Herunterladen