Formale Modellierung
Vorlesung 8 vom 07.06.14: FOL mit Induktion und Rekursion
Serge Autexier & Christoph Lüth Universität Bremen Sommersemester 2014
1 [39]
Fahrplan
I Teil I: Formale Logik
IEinführung
IAussagenlogik: Syntax und Semantik, Natürliches Schließen
IKonsistenz & Vollständigkeit der Aussagenlogik
IPrädikatenlogik (FOL): Syntax und Semantik
IKonsistenz & Vollständigkeit von FOL
IBeschreibungslogiken
IFOL mit induktiven Datentypen
IFOL mit Induktion und Rekursion
IDie Unvollständigkeitssätze von Gödel I Teil II: Spezifikation und Verifikation
2 [39]
Das Tagesmenü
I Beweis von Eigenschaften von Funktionen mit FOL-ND
I Wohlfundierte Induktion und rekursive Funktionen I Axiomatische Definition von Theorien ist gefährlich I Prädikatenlogik mit mehreren Typen
I Konservative Erweiterungen als sicheres Theorie Definitionsprinzip
I Typdefinitionen
I Wohlfundierte rekursive Funktionen/Prädikate
I Terminierende Funktionen und abgeleitete Induktionsschemata
3 [39]
Mehr Beweise
I Definiere≤und half:
∀x.0≤x (L1)
∀x.∀y.x≤y−→s(x)≤s(y) (L2)
half(0) =0 (H1)
half(s(0)) =0 (H2)
∀x.half(s(s(x))) =s(half(x)) (H3)
I Beweise
(Presburger)(L1)(L2)(H1)(H2)(H3)` ∀x.half(x)≤x
4 [39]
Wohlfundierte Induktion
I Wohlfundiertes Induktionsschema
(∀y.(∀x.x<y∧P(x))⇒P(y))−→ ∀x.P(x)
I <wohlfundierte Relation:
∀X⊆N.X6=∅ −→ ∃x∈X.∀y∈X.¬(y<x)
5 [39]
Beweis mit wohlfundierter Induktion
I <-Relation
∀x.0<s(x) ∀x,y.x<y−→s(x)<s(y)
I Beweise<ist wohlfundiert I
h
∀x.x<c∧P(x) i
... P(c)
∀x.P(x)
c=0∨
c=s(0)∨
∃u.c=s(s(u))
∀x.x<c half(x)≤x
c=0
.. . half(c)≤c
∀x.x<c half(x)≤x c=s(0)
.. . half(c)≤c
∀x.x<c half(x)≤x
∃u.c=s(s(u))
.. . half(c)≤c
∀x.half(x)≤x
6 [39]
Mehr Information
I Besser zum beweisen wäre wenn man gleich hätte
half(0)≤0 half(s(0))≤s(0) h
half(c)≤c i
...
half(s(s(c)))≤s(s(c))
∀x.half(x)≤x
I Vergleiche: half(0) =0 (H1)
half(s(0)) =0 (H2)
∀x.half(s(s(x))) =s(half(x)) (H3)
I Generiere Induktionschema aus rekursiven Funktionsdefinitionen h
P(c)i ...
Weitere Beispiele
LIST:=Nil |cons(N,LIST)
I Sortieren
∀x.sort(Nil) =Nil
∀s,t.m=min(cons(n,l))
−→sort(cons(n,l)) =cons(m,sort(cons(n,l)−m))
∀n.min(cons(n,Nil)) =n
∀n,l.min(cons(m,l))<n−→min(cons(n,cons(m,l))) =min(cons(m,l))
∀n,l.¬(min(cons(m,l))<n)−→min(cons(n,cons(m,l))) =n
I Induktionsschema
∀m,n.m=min(cons(n,l))∧P(cons(n,l)−m)
Weitere Beispiele
I Fibonacci:
fib(0) =0 fib(s(0)) =s(0)
∀n.fib(s(s(n))) =fib(s(n)) +fib(n)
P(0) P(s(0)) h
P(s(c)),P(c)i ... P(s(s(c)))
∀x.P(x)
9 [39]
Weitere Beispiele
I GGT:
∀y.ggt(0,y) =y
∀x.ggt(s(x),0) =s(x)
∀x,y.x≤y−→ggt(x,y) =ggt(x,y−x)
∀x,y.¬(x≤y)−→ggt(x,y) =ggt(x−y,y)
∀y.P(0,y) ∀x.P(s(x),0)
"
x≤y P(x,y−x)
#
... P(x,y)
"
¬(x≤y) P(x−y,x)
#
... P(x,y)
∀x,y.P(x,y)
10 [39]
Zulässige Induktionsschema
I Wann darf man die Rekursionsstruktur verwenden?
I Definierte Funktion muß. . .
I eindeutig definiert sein und . . .
P0−→f(x1, . . . ,xn) =t0
... Pn−→f(x1, . . . ,xn) =tn
Pi∧Pj←→ ⊥,∀i6=j
I terminierend
I Rekursive Definition nach wohlfundierter Relation garantiert Terminierung
Für jedenatomaren, rekursivenAufruff(t1, . . . ,tn)erzeuge Terminierungshypothese
Pi−→(x1, . . . ,xn)>(t1, . . . ,tn)
11 [39]
Grenzen
∀x.x<101−→f(x) =f(f(x+11))
∀x.¬(x<101)−→f(x) =x−10
I f terminiert immer I f ist
f(x) :=
(x−10 ifx>100 91 ifx≤100
I Definition der geeigneten wohlfundierten Relation extrem schwierig.
12 [39]
f ( 9 9 ) = f ( f ( 1 1 0 ) )
= f ( 1 0 0 )
= f ( f ( 1 1 1 ) )
= f ( 1 0 1 )
= 91
f ( 8 7 ) = f ( f ( 9 8 ) )
= f ( f ( f ( 1 0 9 ) ) )
= f ( f ( 9 9 ) )
= f ( f ( f ( 1 1 0 ) ) )
= f ( f ( 1 0 0 ) )
= f ( f ( f ( 1 1 1 ) ) )
= f ( f ( 1 0 1 ) )
= f ( 9 1 )
= f ( f ( 1 0 2 ) )
= f ( 9 2 )
= f ( f ( 1 0 3 ) )
= f ( 9 3 )
. . . . P a t t e r n c o n t i n u e s
= f ( 9 9 )
( same a s on t h e l e f t )
= 91
13 [39]
Zusammenfassung
I Strukturelle Induktionsschema
IEinfach, aber zum Beweisen zu rigide I Wohlfundiertes Induktionsschema
IMächtig und flexibel, wenig Hilfestellung beim Beweisen I Wohlfundierte Relation aus Rekursionsstruktur terminierender
Funktionen
IAngepasst an Beweisproblem und vorhandene Definitionsgleichungen
ITerminierungsbeweis notwendig (einfache Fälle automatisierbar, i.A.
unentscheidbar)
14 [39]
Definition von Theorien
I Was alles schiefgehen kann und wie man das vermeidet I Axiomatische Definition von Theorien ist gefährlich
I Bisher können wir Listen nicht unterscheiden von nat. Zahlen, von binären Bäumen, etc.
I Wir brauchen so etwas wie Typen für die jeweiligen Objekte, die disjunkt voneinander sind
15 [39]
Getypte Prädikatenlogik – Signatur
Ungetypt Getypt SignaturΣ
- TypenT – i,N,Z
- FunktionssymboleF f,ar(f) =n f:τ1× · · · ×τn→τ0,τi∈ T - PrädikatssymboleP P,ar(P) =n P:τ1× · · · ×τn,τi∈ T
˙
=,ar( ˙=) =2 =˙τ:τ×τ,τ∈ T
VariablenX abz. unendlich abz. unendlichXτ für jedes τ∈ T
xi,xN,xZ, . . .
16 [39]
Getypte Prädikatenlogik – Terme & Formeln
Ungetypt Getypt
TermeTermΣ TermΣτ1 ∪ · · · ∪
TermΣ(τn),τ∈ T - Variablen x∈ TermΣx∈X x∈ TermΣτ,x∈Xτ - Funktionen f ∈ F mit ar(f) = n
undt1, . . . ,tn∈ TermΣ, dann f(t1, . . . ,tn) ∈ TermΣ
f : τ1× · · · ×τn →
τ0 ∈ F und ti ∈
TermτΣi,1≤i≤n, dann f(t1, . . . ,tn)∈ TermτΣ0 FormelnFormΣ
- Atome P ∈ P mitar(P) = n
undt1, . . . ,tn∈ TermΣ, dann P(t1, . . . ,tn) ∈ FormΣ
P : τ1× · · · ×τn ∈ P undti∈ TermτΣi,1≤i≤ n, dannP(t1, . . . ,tn) ∈ FormΣ
- PL Konnective ¬ψ, ϕ∧ψ, ϕ∨ψ, ϕ−→ψ, ϕ←→ψ . . . - Quantoren ∀x.φ∈ FormΣ,x∈X ∀xτ.φ∈ FormΣ
∃x.φ∈ FormΣ,x∈X ∃xτ.φ∈ FormΣ
17 [39]
Motivation
I Typen müssen nicht-leere Trägermengen haben Korrektheit
I Neue Typen axiomatisch zu spezifizieren gefährlich
I Konservative Erweiterungen
ITypdefinitionen sind konservative Erweiterungen
ITerminierende totale rekursive Funktionen/Prädikate sind konservative Erweiterungen
18 [39]
Natürliches Schließen — Die Regeln
φ ψ
φ∧ψ ∧I φ∧ψ
φ ∧EL
φ∧ψ
ψ ∧ER
[φ]
... ψ
φ−→ψ−→I
φ φ−→ψ
ψ −→E
⊥
φ⊥
[φ−→ ⊥]
...
⊥
φ raa
19 [39]
Die fehlenden Schlußregeln
[φ]
...
⊥
¬φ ¬I φ ¬φ
⊥ ¬E
φ φ∨ψ ∨IL
ψ φ∨ψ ∨IR
φ∨ψ [φ]
... σ
[ψ]
... σ
σ ∨E
φ−→ψ ψ−→φ
φ←→ψ ←→I φ φ←→ψ
ψ ←→EL ψ φ←→ψ
φ ←→ER
20 [39]
Natürliches Schließen mit Quantoren
φ
∀x.φ∀I (∗) ∀x.φ φt
x ∀E (†)
I (*)Eigenvariablenbedingung:
xnichtfreiin offenen Vorbedingungen vonφ(xbeliebig)
I (†) Ggf.Umbenennungdurch Substitution
I Gegenbeispielefür verletzte Seitenbedingungen
21 [39]
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
22 [39]
Regeln für die Gleichheit
I Reflexivität,Symmetrie,Transitivität:
x=x refl x=y
y=x sym x=y y=z x=z trans
I Kongruenz:
x1=y1, . . . ,xn=yn f(x1, . . . ,xn) =f(y1, . . . ,yn)cong
I Substitutivität:
x1=y1, . . . ,xm=ym P(x1, . . . ,xm)
P(y1, . . . ,ym) subst
Getypte Prädikatenlogik – ND Regeln
φ
∀xτ.φ∀I (∗) ∀xτ.φ φt
x ∀E (†)
I (*)Eigenvariablenbedingung:
xτnichtfreiin offenen Vorbedingungen vonφ(xτbeliebig)
I (†)t∈ TermτΣ; Ggf.Umbenennungdurch Substitution
Der Existenzquantor
∃xτ.φdef=¬∀xτ.¬φ
φt x
∃xτ.φ∃I (†) ∃xτ.φ [φ]
... ψ
ψ ∃E (∗)
I (*)Eigenvariablenbedingung:
xτnicht frei inψ, oder einer offenenen Vorbedingung außerφ I (†)t∈ TermτΣ; Ggf.Umbenennungdurch Substitution
25 [39]
Regeln für die Gleichheit
I Reflexivität,Symmetrie,Transitivität:
x=tx refl x=ty
y=tx sym x=ty y=tz x=tz trans
I Kongruenz:
x1=t1y1, . . . ,xn=tnyn f(x1, . . . ,xn) =tf(y1, . . . ,yn) cong
I Substitutivität:
x1=t1y1, . . . ,xm=tmym P(x1, . . . ,xm)
P(y1, . . . ,ym) subst
26 [39]
Basic Definitions
Definition 1 (Loose Spezifikationen)
SeiΣ = (T,F,P)eine getypte Signature undΦ∈ FormΣ. Dann ist S= (Σ,Φ)einelose Spezifikation.
Die Theorie einer SpezifikationSist Th(S) :={ϕ∈ FormΣ|Φ`ϕ}.
Definition 2 (Konsistenz)
Eine lose SpezifikationSistkonsistentwenn⊥nicht beweisbar inS:
⊥ 6∈Th(S).
I Insbesondere müssen dannalleTypen nicht-leere Trägermengen haben
27 [39]
Spezifikations Erweiterungen
Definition 3 (Erweiterungen)
Eine SpezifikationS0= (Σ0,Φ0)ist eineErweiterungeiner Spezifikation S= (Σ,Φ)genau dann wenn
I Σ⊆Σ0 I Φ⊆Φ0
S0is einekonservative ErweiterungvonSgenau dann wenn Th(S) =Th(S0)|Σ
wobei die|Σdie Einschränkung auf Formeln ausFormΣist Lemma 4
Jede konservative Erweiterung einer konsistenten Theorie ist konsistent.
28 [39]
Typdefinition
I Spezifizierenicht-leereTeilmenge eines gegebenen Typsr
I Deklariere neuen Typtmit Trägermenge isomorph zu Werten in spezifizierter Teilmenge
I Isomorphie wird durch inverse Funktionen Abst:r→t,Rept:t→r axiomatisch Beschrieben
29 [39]
Typdefinitionen sind konservative Erweiterungen
Definition 5 (Typdefinitionen)
SeiS= ((T,F,P),Φ)eine Spezifikation,r∈ T undP∈ FormΣmit genau einer freien Variable vom Typr. Dann ist eine Erweiterung S0= ((T0,F0,P0),Φ0)eineTypdefinitionfür einen Typt6∈ T gdw.
I T0=T ∪ {t}
I F0=F ∪ {Abst:r→t,Rept:t→r}
I P0=P ∪ {=t:t×t}
I Φ0= Φ∪ { ∀xt.Abst(Rept(x)) =tx,
∀xr.P(xr)−→Rept(Abst(x)) =rx}
I Man kann beweisenS` ∃xr.P(x)(bzw. es gilt∃xr.P(x)∈Th(S))
30 [39]
Teminierende, totale Funktionen
I Spezifiziere Funktionen/Prädikate die beweisbar total, eindeutig und terminierend sind
I Theorie-Erweiterungen um beweisbar total, eindeutig und
terminierende Funktionen/Prädikate sind konservative Erweiterungen
I Syntaktische Kriterien für eindeutige und totale Deklarationen
I Beweisverfahren für terminierende Funktionen
31 [39]
Frei Erzeugte Typen
Definition 6 (Frei Erzeugte Typen)
SeiS= ((T,F,P),Φ)eine Spezifikation,t∈ T and
ci:τ1i×τnii→t∈ F,1≤i≤k. Dann isttfrei erzeugtinSdurch Konstruktorenc1, . . . ,ckgdw.
I S` ∀xt.W i=1...k∃yτ1i
1, . . .yτnik
ni.x=ci(y1, . . . ,yni) I S` ∀yτ1i
1
, . . .yτnii ni.∀z1τi
1
, . . .zτnii
ni.ci(y1, . . . ,yni) =ci(z1, . . . ,zni)−→
((y1=z1∧ · · · ∧yni=yni))für alleci I S` ∀yτ1i
1, . . .yτnii ni.∀z1
τ1j, . . .zτnjj
nj.ci(y1, . . . ,yni) =cj(z1, . . . ,znj)für alle i6=j
32 [39]
Kriterien für eindeutig und total
I SeitTyp
I Definitionsgleichungen für Funktionf sind Menge von bedingten geschlossene Gleichungen der Form
∀x1τ1. . .xnτn. . . .P0−→f(x1, . . . ,xn) =t0 ...
∀x1τ1. . .xnτn. . . .Pn−→f(x1, . . . ,xn) =tn
so daß beweisbar
I S` ∀x1τ1. . .xnτn.Pi∧Pj←→ ⊥,∀i6=j
I S` ∀x1τ1. . .xnτn.P1∨. . .∨Pn
33 [39]
Terminierungsbeweise – Idee
I Die natürlichen Zahlen sind frei erzeugt über 0 und s:
I Jedem Grundterm überNkann eine größe zugeordnet werden über die Anzahl der Konstruktoren.
I Zeige für rekursiv definierte Funktionen aufN, dass die rekursiven Argument in rekursiven Funktionsaufrufen kleiner sind bezüglich der Ordnung auf den natürlichen Zahlen unter der entsprechenden BedingungPi.
34 [39]
Terminierung
I Beispiele:
I half(x)eine Hypothese pro Rekursionsgleichung
I fib(x): mehrere Hypothesen pro Rekursionsgleichung
I gcd(x,y): lexicographische Ordnung
I Beweise alle Hypothesen im Kalkül. Terminierung giltrelativzur Terminierung der anderen involvierten Funktionen und Prädikate.
I Analog für Prädikate aufNmit bedingten Äquivalenzen I Allgemeine Typen: für frei erzeugte Datentypen kann Abbildung in
natürliche Zahlen definiert werden, die die Anzahl der Konstruktoren zählt. Damit lässt sich das Terminierungsverfahren auf all frei erzeugten Datentypen erweitern
35 [39]
Erweiterung um totale, terminierende Funktionen ist konservativ
Definition 7 (Funktions- und Prädikatsdefinitionen)
SeiS= ((T,F,P),Φ)eine Spezifikation,f :τ1× · · · ×τn→τ06∈ F (τi∈ T) undΨ∈ FormΣ∪{f}. Dann ist eine Erweiterung
S0= ((T,F0,P),Φ0)eineFunktionsdefinitiongdw.
I Ψist eine eindeutig und totale Definition fürf
I f ist terminierend und alle in der Definition vonf vorkommenden Funktionen und Prädikate sind terminierend
I Φ0= Φ∪Ψ
I F0=F ∪ {f:τ1× · · · ×τn→τ0} Analog fürPrädikatsdefinitionen.
Lemma 8
Funktionsdefinitionen bzw. Prädikatsdefinitionen sind konservativ
36 [39]
Sicheres Spezifikationsprinzip
I Beginne mit Basistheorie mitNund wohlfundiertem
Induktionsschemata fürN(getypte Prädikatenlogik mit TypNund Induktionsschemata!)
I Nhat beweisbar nicht-leere Trägermenge I Erweitere nur konservativ um
I totale, terminierende Funktionen und Prädikate
I Typdefinitionen (ausgehend vonN)
I Erbt Induktionsprinzip über Umweg überN
I Erlaubt Definition von Konstruktoren für neue Typen
I Terminierung: Abbildung der Termgröße aufNmittels geschachtelter Anwendung von Rept
I Wenn freie Erzeugtheit des neuen Typs beweisbar, dann folgt Induktionsschema direkt auf dem neuen Typ
I Damit hat man garantiert immer konsistente Spezifikationen (=
Modellierung).
37 [39]
Abgeleitete Induktionsschemata
I fib(x)
P(0) P(s(0)) ∀x.P(x)∧P(s(x))−→P(s(s(x)))
∀x.P(x)
I half(x)
P(0) P(s(0)) ∀x.P(x)−→P(s(s(x)))
∀x.P(x)
I gcd(x)
P(0,y) x>0−→P(x,0)
∀x,y.x>y∧P(x−y,y)−→P(x,y)
∀x,y.¬(x>y)∧P(x,y−x)−→P(x,y)
∀x.∀y.P(x,y)
38 [39]
Abgeleitetete Induktionsschemata besser zum Beweisen
I Abgeleitete Induktionsschemata erzeugen Fälle, in denen die Rekursionsgleichungen der Funktion/Prädikate direkt anwendbar sind I Abgeleitete Induktionsschemata hilfreich wenn Induktion über
Variablen gemacht wird, die als Argument der entsprechenden Funktion vorkommen.
∀x.ϕ(half(x))
I Fälle:
1.ϕ(half(0)) ϕ(0) 2.ϕ(half(s(0))) ϕ(0)
3.ϕ(half(x))−→ϕ(half(s(s(x)))) ϕ(half(x))−→ϕ(s(half(x)))