• Keine Ergebnisse gefunden

Die Churchsche Behauptung

N/A
N/A
Protected

Academic year: 2022

Aktie "Die Churchsche Behauptung"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Modellierung

Vorlesung 9 vom 15.06.15: Berechnungsmodelle

Christoph Lüth Universität Bremen Sommersemester 2015

16:21:39 2015-07-13 1 [13]

Fahrplan

I Teil I: Formale Logik

IEinführung

IAussagenlogik (PL): Syntax und Semantik, Natürliches Schließen

IKonsistenz & Vollständigkeit der Aussagenlogik

IPrädikatenlogik (FOL): Syntax und Semantik

IKonsistenz & Vollständigkeit von FOL

IFOL mit induktiven Datentypen

IFOL mit rekursiven Definitionen

ILogik höherer Stufe (HOL): Syntax und Eigenschaften

IBerechungsmodelle (Models of Computation)

IDie Unvollständigkeitssätze von Gödel I Teil II: Spezifikation und Verifikation

2 [13]

Fahrplan für heute

I Eine Behauptung von Church

I Registermaschinen

I Rekursiv definierbare Funktionen

I Universelle Berechenbarkeit

3 [13]

Die Churchsche Behauptung

Church’s Thesis (1936)

IntuitivberechenbareFunktionen sind genau die durch Rekursion definierbaren.

I Nicht beweisbar: das Konzept “intuitiv berechenbar” ist nicht formalisierbar.

I Aber: es gibt sehrviele,unterschiedliche(und meist voneinandar unabhängig gefundene)formaleDefinition vonBerechenbarkeit, die allegleich mächtigsind.

I Es spricht alles für die Churchsche Behauptung.

4 [13]

Registermaschinen

I Variation vonTuring-Maschinen, konzeptionell etwas einfacher.

Registermaschinen (Minsky)

I Sequenz vonRegisternR1,R2, . . ., die natürliche Zahlen enthalten

I Programmbesteht aus:

I Endliche Anzahl vonZuständenS0,S1,S2, . . ., und

I füri>0, Anweisung (S0:terminalerZustand)

I Anweisungen:

(j,+,k) (j,−,k,l)

Si Rj+ 1

-Sk

Si Rj−1

-Sk

Sl -

ErhöheRjum 1 und gehe zuSk WennRj= 0, gehe zuSl; ansonsten verringereRjum 1 und gehe zuSk.

5 [13]

Beispielprogramme

Programm 1: Programm 2:

1: (1,−,1,2) 2: (2,−,3,0) 3: (1,+,2)

1: (3,−,1,2) 2: (2,−,3,6) 3: (3,+,4) 4: (1,+,5) 5: (1,+,2) 6: (3,−,7,0) 7: (2,+,6) R10:=R2;

R20:= 0 R30:= 0;

R10:=R1+ 2∗R2; R20:=R2

6 [13]

Berechenbarkeit durch Registermaschine

I NB: Jede Registermaschine hatendlichviele Register, aber Gesamtanzahlunbeschränkt.

I Eine RegistermaschineRberechneteine Funktionf :Nk→N(mit einem ProgrammP), wenn beim Start (vonS1) mit Registerinhalt (n1,n2, . . . ,nk,0, . . .) die Maschine schließlich mit Registerinhalt f(n1, . . . ,nk) inR1anhält.

I Aber welche Funktionen sindberechenbar?

7 [13]

Theorem 1: Berechenbare Funktionen

(i) DieProjektionenπi(n1, . . . ,nk) =niist berechenbar.

(ii)const0:N→Nundsucc:N→Nsind berechenbar.

(iii) Komposition:Seif mit Aritätkberechenbar, undg1, . . . ,gkmit Aritätlberechenbar, dann isthberechenbar:

h=deff(g1(n1, . . . ,nl), . . . ,gk(n1, . . . ,nl))

(iv) Rekursion:Seienf undgberechenbar mit Aritätkbzw.k+ 2, dann isthberechenbar:

h(n1, . . . ,nk,0)def=f(n1, . . . ,nk)

h(n1, . . . ,nk,nk+1+ 1)def=g(n1, . . . ,nk,nk+1,h(n1, . . . ,nk,nk+1))

(v)Minimalisierung (µ-Operator):Seif berechenbar mit Aritätk+ 1, dann istg berechenbar:

g(n1, . . . ,nk) =nmit f(n1, . . . ,nk,n) = 0 und

∀m.m<n−→f(n1, . . . ,nk,m)>0

8 [13]

(2)

Berechenbarkeit, Rekursion, Primitive Rekursion

I Primitiv rekursive Funktionen: kleinste unter (i) – (iv) abgeschlosene Klasse von Funktionen

I Rekursive Funktionen: kleinste unter (i) – (v) abgeschlossene Klasse von Funktionen

I Primitiv rekursive Funktionen sindtotal, aber nicht jede totale rekursive Funktion ist primitiv rekursiv. (Gegenbeispiel: Ackermann) I Es gilt der Umkehrschluss:

Theorem 2

Jede rekursive Funktion ist berechenbar.

9 [13]

Kodierung von Programmen

I Programme können durch Zahlenkodiertwerden (Gödel-Kodierung):

(j,+,k)7→2j·5k (j,−,k,l)7→2j·3·5k·7l

i1, . . . ,in7→2i1·3i2·. . .pn−1in

I Notation:fn,kist die durchnkodierte Funktion der Aritätk.

Theorem 3 (Universelle Funktionen)

Es gibtuniversellerekursive Funktion u so dass

I u(n,k,m) =r wenn n ein Programm kodiert, k ein k-Tupel (m1, . . . ,mk)und fn,k(m1, . . . ,mk) =r ,

I und ansonsten u(n,k,m)undefiniert.

10 [13]

Rekursive Funktionen und Peano-Arithmetik

Theorem 4 (Rekursion ist PA)

Jede rekursive Funktion ist in PA definierbar.

I Ohne Multiplikation funktioniert der Beweis nicht.

I Deshalb: nicht jede rekursive Funktion in Presburger-Arithmetik definierbar.

11 [13]

Weitere Modelle von Berechenbarkeit

I Turing-Maschinen (remember those?) I Chomsky-Grammatiken (Typ 0)

I λ-Kalkül

I Kombinatorlogik

I π-Kalkül

I Neuronale Netze

I Gegenbeispiel:Aktoren(Carl Hewitt)

ILiteraturlage nicht eindeutig . . .

12 [13]

Zusammenfassung

I Behauptung von Church: intuitiv berechenbare Funktionen sind genau durch Turing-Maschinen berechenbare.

I Vielzahl vonformalenBerechnungsmodellen, welche die gleiche Mächtigkeithaben.

I Wir haben gesehen:

I Registermaschinen

I Rekursive Funktionen

I In Peano-Arithmetik definierbare Funktionen I Beweis der Mächtigkeit durchKodierung:

I Berechnungen können in Zahlen kodiert werden

I DamituniverselleBerechnungen (Compiler!) möglich

I Nächste Woche: Grenzen der Beweisbarkeit — die Gödelschen Unvollständigkeitssätze

13 [13]

Referenzen

ÄHNLICHE DOKUMENTE

Beachte: Ein primitiv rekursiver Ausdruck stellt stets f¨ur jedes n eine Funktion dar.. Diese k¨onnen recht

Problem: Rekursionsgleichungen (Kleenesche Normalform) lassen sich nicht direkt verwenden.. Argumente müsen “Zahl” als

Beachte: Ein primitiv rekursiver Ausdruck stellt stets f¨ur jedes n eine Funktion dar.. Diese k¨onnen recht

Wir werden Anweisungen durch Zahlen codie- ren und dementsprechend Programme durch die Codierungen der Zahlenfolgen darstellen.. Um die Interpreterfunktion zu simulieren ben¨otigen

Beweis: Simulationstechnik Durch Induktion ¨uber Aufbau der µ- rekursiven Ausdr¨ucken zeige, dass jede partiell rekursive Funktion durch ein while-Programm berechenbar ist.. Somit

Wir haben gezeigt: Jede primitiv-rekursive Funktion und jedes primitiv-rekursives Pr¨ adikat l¨ aßt sich durch eine Σ 1 -Formel darstellen. [Das gilt auch f¨ ur rekursive Funktionen

Weil das erste Paar schon im ersten Monat Nachwuchs bekommt, kann man es verdoppeln, so dass nach einem Monat 2 Paare da sind.. Von diesen vermehrt sich das erste im zweiten

der Compiler kennt nur, was er bereits gelesen hat, aber keine anderen Dateien → globale Variablen und alle Funktionen gelten vom Deklarationspunkt bis zum Ende der Datei