VL-07: Satz von Rice
(Berechenbarkeit und Komplexit¨ at, WS 2017) Gerhard Woeginger
WS 2017, RWTH
BuK/WS 2017 VL-07: Satz von Rice 1/37
Organisatorisches
• November 9: Keine Vorlesung (Fachschaftsversammlung)
• N¨achste Vorlesung:
Mittwoch, November 15, 14:15–15:45 Uhr, Roter H¨orsaal
• Webseite:
http://algo.rwth-aachen.de/Lehre/WS1718/BuK.php
Wiederholung
BuK/WS 2017 VL-07: Satz von Rice 3/37
Wdh.: Bisher betrachtete Probleme
Die Diagonalsprache:
D = {w ∈ {0,1}∗|w =wi undMi akzeptiertw nicht}
Das Diagonalsprachenkomplement:
D = {w ∈ {0,1}∗|w =wi undMi akzeptiertw} Das Halteproblem:
H = {hMiw |M h¨alt aufw} Das spezielle Halteproblem:
H = {hMi |M h¨alt auf Eingabe } Alle diese Probleme sindnicht entscheidbar.
Frage: Was haben sie strukturell gemeinsam?
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
BuK/WS 2017 VL-07: Satz von Rice 5/37
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
Wdh.: Komplement der Diagonalsprache
MD
x
MD
accept reject
accept reject
BuK/WS 2017 VL-07: Satz von Rice 6/37
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
BuK/WS 2017 VL-07: Satz von Rice 7/37
Wdh.: Halteproblem
MD
w hMiiw
accept accept
reject
reject
MH U
i mit wi=w
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
BuK/WS 2017 VL-07: Satz von Rice 9/37
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
Wdh.: Spezielles Halteproblem
MH
x hMi,w
accept reject
reject (Syntax)
Mε hMiundw
mit x=hMiw
hMw∗i
BuK/WS 2017 VL-07: Satz von Rice 10/37
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
H ist nicht entscheidbar MH
Reduktionen
Definition
Es seienL1 undL2 zwei Sprachen ¨uber einem AlphabetΣ.
Dann heisstL1aufL2 reduzierbar(mit der NotationL1≤L2), wenn eine berechenbare Funktionf: Σ∗→Σ∗ existiert, so dass f¨ur allex∈Σ∗ gilt: x∈L1 ⇔ f(x)∈L2.
Satz
FallsL1≤L2 und fallsL2 entscheidbar ist, so istL1entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 12/37
Vorlesung VL-07 Der Satz von Rice
• Der Satz von Rice
• Anwendungsbeispiele
Unentscheidbar versus entscheidbar (1)
Wir haben gesehen, dass die folgenden Probleme unentscheidbar sind:
GegebenhMiundw, giltw ∈L(M)?
GegebenhMi, gilthMi ∈L(M)?
GegebenhMi, giltε∈L(M)?
Analoge Argumente zeigen, dass folgende Probleme unentscheidbar sind: Ubung¨
GegebenhMi, istL(M)leer? GegebenhMi, giltL(M) = Σ∗? GegebenhMi, istL(M)endlich? GegebenhMi, istL(M)unendlich? GegebenhMi, istL(M)regul¨ar? GegebenhMi, istL(M)kontext-frei?
BuK/WS 2017 VL-07: Satz von Rice 14/37
Unentscheidbar versus entscheidbar (1)
Wir haben gesehen, dass die folgenden Probleme unentscheidbar sind:
GegebenhMiundw, giltw ∈L(M)?
GegebenhMi, gilthMi ∈L(M)?
GegebenhMi, giltε∈L(M)?
Analoge Argumente zeigen, dass folgende Probleme unentscheidbar sind:
Ubung¨
GegebenhMi, istL(M)leer?
GegebenhMi, giltL(M) = Σ∗? GegebenhMi, istL(M)endlich?
GegebenhMi, istL(M)unendlich?
GegebenhMi, istL(M)regul¨ar?
GegebenhMi, istL(M)kontext-frei?
Unentscheidbar versus entscheidbar (2)
Andrerseits ist jedes der folgenden Probleme entscheidbar:
GegebenhMi, giltL(M)⊆ {0,1}∗?
GegebenhMi, wirdL(M)von einer TM akzeptiert?
GegebenhMi, gilt2222∈L(M)?
GegebenhMi, gilt2222∈/ L(M)?
GegebenhMi, hathMieine gerade Anzahl von Zust¨anden?
BuK/WS 2017 VL-07: Satz von Rice 15/37
Der Satz von Rice
Partielle Funktionen
TM-berechenbare Funktionen sind partielle Funktionen:
Im Allgemeinen halten TMen nicht auf jeder Eingabe. Sie berechnen daherpartielle Funktionen. Das k¨onnen wir wie folgt formalisieren:
Die von einer TMM berechnete Funktion ist von der Form fM:{0,1}∗→ {0,1}∗∪ {⊥}
Das Zeichen⊥steht dabei f¨urundefiniertund bedeutet, dass die Maschine nicht h¨alt.
Im Fall von Entscheidungsproblemen ist die Funktion von der Form fM:{0,1}∗→ {0,1,⊥}
Dabei steht0f¨urVerwerfen,1f¨urAkzeptierenund⊥f¨ur Nicht-Halten.
BuK/WS 2017 VL-07: Satz von Rice 17/37
Partielle Funktionen
TM-berechenbare Funktionen sind partielle Funktionen:
Im Allgemeinen halten TMen nicht auf jeder Eingabe. Sie berechnen daherpartielle Funktionen. Das k¨onnen wir wie folgt formalisieren:
Die von einer TMM berechnete Funktion ist von der Form fM:{0,1}∗→ {0,1}∗∪ {⊥}
Das Zeichen⊥steht dabei f¨urundefiniertund bedeutet, dass die Maschine nicht h¨alt.
Im Fall von Entscheidungsproblemen ist die Funktion von der Form fM:{0,1}∗→ {0,1,⊥}
Dabei steht0f¨urVerwerfen,1f¨urAkzeptierenund⊥f¨ur Nicht-Halten.
Satz von Rice
Satz
Es seiRdie Menge der von TMen berechenbaren partiellen Funktionen.
Es seiS eine Teilmenge vonRmit∅(S (R.
Dann ist die Sprache
L(S) ={hMi |M berechnet eine Funktion ausS}
nicht entscheidbar.
Mit anderen Worten: Alle nicht-trivialen Aussagen ¨uber die von einer TM berechnete Funktion sind unentscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 18/37
Satz von Rice
Satz
Es seiRdie Menge der von TMen berechenbaren partiellen Funktionen.
Es seiS eine Teilmenge vonRmit∅(S (R.
Dann ist die Sprache
L(S) ={hMi |M berechnet eine Funktion ausS}
nicht entscheidbar.
Mit anderen Worten: Alle nicht-trivialen Aussagen ¨uber die von einer TM berechnete Funktion sind unentscheidbar.
Henry Gordon Rice (1920–2003)
Wikipedia: Henry Gordon Rice was an American logician and
mathematician, best known as the author of Rice’s theorem, which he proved in his doctoral dissertation of 1951 at Syracuse University.
He was also a Professor of Mathematics at the University of New Hampshire. After 1960 he was employed by Computer Sciences Corporation in El Segundo.
Mathematics Genealogy Project
• Henry G. Rice
• Ph.D.: Syracuse University 1951
• Dissertation:
Classes of Recursively Enumerable Sets and Their Decision Problems
• Advisor: Paul Charles Rosenbloom
• No students known
BuK/WS 2017 VL-07: Satz von Rice 19/37
Anwendungsbeispiele (1)
Beispiel 1
Es seiS={fM |fM()6=⊥}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf Eingabe}
= H
Gem¨ass dem Satz von Rice ist das spezielle HalteproblemHnicht entscheidbar. (Aber das wussten wir ja schon. . . )
R
S
Anwendungsbeispiele (1)
Beispiel 1
Es seiS={fM |fM()6=⊥}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf Eingabe}
= H
Gem¨ass dem Satz von Rice ist das spezielle HalteproblemHnicht entscheidbar. (Aber das wussten wir ja schon. . . )
R
S
BuK/WS 2017 VL-07: Satz von Rice 20/37
Anwendungsbeispiele (2)
Beispiel 2
Es seiS={fM | ∀w ∈ {0,1}∗:fM(w)6=⊥}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe}
Diese Sprache ist auch als das totale Halteproblem Htot bekannt. Gem¨ass dem Satz von Rice ist die SpracheHtot nicht entscheidbar.
R
S
Anwendungsbeispiele (2)
Beispiel 2
Es seiS={fM | ∀w ∈ {0,1}∗:fM(w)6=⊥}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe}
Diese Sprache ist auch als dastotale Halteproblem Htot bekannt.
Gem¨ass dem Satz von Rice ist die SpracheHtot nicht entscheidbar.
R
S
BuK/WS 2017 VL-07: Satz von Rice 21/37
Anwendungsbeispiele (3)
Beispiel 3
Es seiS={fM | ∀w ∈ {0,1}∗:fM(w) =1}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe mit Ausgabe 1}
Gem¨ass dem Satz von Rice ist die SpracheL(S)nicht entscheidbar.
R
S={1}
Anwendungsbeispiele (3)
Beispiel 3
Es seiS={fM | ∀w ∈ {0,1}∗:fM(w) =1}.
Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe mit Ausgabe 1}
Gem¨ass dem Satz von Rice ist die SpracheL(S)nicht entscheidbar.
R
S={1}
BuK/WS 2017 VL-07: Satz von Rice 22/37
Beweis des Satzes von Rice
Beweis des Satzes von Rice (0)
Noch einmal der Wortlaut des Satzes:
Satz
Es seiRdie Menge der von TMen berechenbaren partiellen Funktionen.
Es seiS eine Teilmenge vonRmit∅(S (R.
Dann ist die Sprache
L(S) ={hMi |M berechnet eine Funktion ausS}
nicht entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 24/37
Beweis des Satzes von Rice (1)
Wir benutzen die Unterprogrammtechnik:
Aus einer TMML(S), dieL(S)entscheidet, konstruieren wir eine TMMH, die das spezielle Halteproblem H entscheidet.
Einige Vereinbarungen:
Es seiudie ¨uberall undefinierte Funktionu(w)≡ ⊥.
O.B.d.A. u6∈ S.
Es seif eine Funktion ausS. Es seiN eine TM, dief berechnet.
R
u
f S
Anmerkung: Fallsu∈ S gilt, betrachten wir einfachR \ S stattS, und zeigen die Unentscheidbarkeit vonL(R \ S). Hieraus ergibt sich auch unmittelbar die Unentscheidbarkeit vonL(S).
Beweis des Satzes von Rice (1)
Wir benutzen die Unterprogrammtechnik:
Aus einer TMML(S), dieL(S)entscheidet, konstruieren wir eine TMMH, die das spezielle Halteproblem H entscheidet.
Einige Vereinbarungen:
Es seiudie ¨uberall undefinierte Funktionu(w)≡ ⊥.
O.B.d.A. u6∈ S.
Es seif eine Funktion ausS. Es seiN eine TM, dief berechnet.
R
u
f S
Anmerkung: Fallsu∈ S gilt, betrachten wir einfachR \ S stattS, und zeigen die Unentscheidbarkeit vonL(R \ S). Hieraus ergibt sich auch unmittelbar die Unentscheidbarkeit vonL(S).
BuK/WS 2017 VL-07: Satz von Rice 25/37
Beweis des Satzes von Rice (1)
Wir benutzen die Unterprogrammtechnik:
Aus einer TMML(S), dieL(S)entscheidet, konstruieren wir eine TMMH, die das spezielle Halteproblem H entscheidet.
Einige Vereinbarungen:
Es seiudie ¨uberall undefinierte Funktionu(w)≡ ⊥.
O.B.d.A. u6∈ S.
Es seif eine Funktion ausS. Es seiN eine TM, dief berechnet.
R
u
f S
Anmerkung: Fallsu∈ S gilt, betrachten wir einfachR \ S stattS, und zeigen die Unentscheidbarkeit vonL(R \ S). Hieraus ergibt sich auch unmittelbar die Unentscheidbarkeit vonL(S).
Beweis des Satzes von Rice (1)
Wir benutzen die Unterprogrammtechnik:
Aus einer TMML(S), dieL(S)entscheidet, konstruieren wir eine TMMH, die das spezielle Halteproblem H entscheidet.
Einige Vereinbarungen:
Es seiudie ¨uberall undefinierte Funktionu(w)≡ ⊥.
O.B.d.A. u6∈ S.
Es seif eine Funktion ausS.
Es seiN eine TM, dief berechnet.
R
u
f S
Anmerkung: Fallsu∈ S gilt, betrachten wir einfachR \ S stattS, und zeigen die Unentscheidbarkeit vonL(R \ S). Hieraus ergibt sich auch unmittelbar die Unentscheidbarkeit vonL(S).
BuK/WS 2017 VL-07: Satz von Rice 25/37
Beweis des Satzes von Rice (2)
Die neue TMMH mit dem Unterprogramm ML(S) arbeitet wie folgt:
(1) Falls die Eingabe nicht aus einer korrekten G¨odelnummer besteht, so verwirft MH die Eingabe.
(2) Andernfalls berechnet MH aus der Eingabe hMidie G¨odelnummer der TMM∗(siehe n¨achste Folie).
(3) Schlussendlich starten wir ML(S) mit der EingabehM∗i.
Wir akzeptieren (verwerfen) genau dann, wennML(S) akzeptiert (verwirft).
Beweis des Satzes von Rice (2)
Die neue TMMH mit dem Unterprogramm ML(S) arbeitet wie folgt:
(1) Falls die Eingabe nicht aus einer korrekten G¨odelnummer besteht, so verwirft MH die Eingabe.
(2) Andernfalls berechnet MH aus der EingabehMidie G¨odelnummer der TMM∗(siehe n¨achste Folie).
(3) Schlussendlich starten wir ML(S) mit der EingabehM∗i.
Wir akzeptieren (verwerfen) genau dann, wennML(S) akzeptiert (verwirft).
BuK/WS 2017 VL-07: Satz von Rice 26/37
Beweis des Satzes von Rice (2)
Die neue TMMH mit dem Unterprogramm ML(S) arbeitet wie folgt:
(1) Falls die Eingabe nicht aus einer korrekten G¨odelnummer besteht, so verwirft MH die Eingabe.
(2) Andernfalls berechnet MH aus der EingabehMidie G¨odelnummer der TMM∗(siehe n¨achste Folie).
(3) Schlussendlich starten wir ML(S) mit der EingabehM∗i.
Wir akzeptieren (verwerfen) genau dann, wennML(S) akzeptiert (verwirft).
Beweis des Satzes von Rice (3)
Verhalten vonM∗ auf Eingabex
Phase A: Simuliere das Verhalten vonM bei Eingabe auf einer f¨ur diesen Zweck reservierten Spur.
Phase B: Simuliere das Verhalten vonN aufx, halte, sobaldNh¨alt, und ¨ubernimm die Ausgabe.
BuK/WS 2017 VL-07: Satz von Rice 27/37
Beweis des Satzes von Rice (3)
Verhalten vonM∗ auf Eingabex
Phase A: Simuliere das Verhalten vonM bei Eingabe auf einer f¨ur diesen Zweck reservierten Spur.
Phase B: Simuliere das Verhalten vonN aufx, halte, sobaldNh¨alt, und ¨ubernimm die Ausgabe.
Mε
w w=hMi hM∗i
reject (Syntax)
ML(S) Istw eine
G¨odel- nummer?
accept reject
M∗
x f(x)
M N
ε
BuK/WS 2017 VL-07: Satz von Rice 28/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H
⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw
w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H
⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirft hM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirfthM∗i
⇒ MH verwirftw
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirfthM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Satz von Rice f¨ ur C
++Programme
Konsequenz f¨ur C++
Es gibt keine algorithmische Methode (von Hand oder automatisiert) um festzustellen, ob ein gegebenes C++Programm einer
(nicht-trivialen) Spezifikation entspricht.
Analoge Konsequenzen gelten
f¨ur alle anderen h¨oheren Programmiersprachen wie
Java, Pascal, Python, FORTRAN, Algol, LISP, COBOL, etc.
Weitere Anwendungsbeispiele
BuK/WS 2017 VL-07: Satz von Rice 31/37
Anwendungsbeispiele (4)
Beispiel 4 Es sei
L17={hMi |M berechnet bei Eingabe der Zahl 17 die Zahl 42}.
Es ist L17=L(S)f¨urS ={fM|fM(bin(17)) =bin(42)}.
Da∅(S(Rgilt, ist diese SpracheL17gem¨ass dem Satz von Rice nicht entscheidbar.
Anwendungsbeispiele (4)
Beispiel 4 Es sei
L17={hMi |M berechnet bei Eingabe der Zahl 17 die Zahl 42}.
Es ist L17=L(S)f¨urS ={fM|fM(bin(17)) =bin(42)}.
Da∅(S(Rgilt, ist diese SpracheL17gem¨ass dem Satz von Rice nicht entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 32/37
Anwendungsbeispiele (4)
Beispiel 4 Es sei
L17={hMi |M berechnet bei Eingabe der Zahl 17 die Zahl 42}.
Es ist L17=L(S)f¨urS ={fM|fM(bin(17)) =bin(42)}.
Da∅(S(Rgilt, ist diese SpracheL17gem¨ass dem Satz von Rice nicht entscheidbar.
Anwendungsbeispiele (5)
Beispiel 5
Es seiH32={hMi |auf jeder Eingabe h¨altM
nach h¨ochstens 32 Schritten}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstH32entscheidbar?
BuK/WS 2017 VL-07: Satz von Rice 33/37
Anwendungsbeispiele (5)
Beispiel 5
Es seiH32={hMi |auf jeder Eingabe h¨altM
nach h¨ochstens 32 Schritten}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstH32entscheidbar?
Anwendungsbeispiele (5)
Beispiel 5
Es seiH32={hMi |auf jeder Eingabe h¨altM
nach h¨ochstens 32 Schritten}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstH32entscheidbar?
BuK/WS 2017 VL-07: Satz von Rice 33/37
Anwendungsbeispiele (6)
Beispiel 6
Es seiL44={hMi | Es existiert ein Wortw, sodass die TMM bei Abbarbeitung vonw mindestens einmal im Zustandq44ist}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstL44entscheidbar?
Anwendungsbeispiele (6)
Beispiel 6
Es seiL44={hMi | Es existiert ein Wortw, sodass die TMM bei Abbarbeitung vonw mindestens einmal im Zustandq44ist}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstL44entscheidbar?
BuK/WS 2017 VL-07: Satz von Rice 34/37
Anwendungsbeispiele (6)
Beispiel 6
Es seiL44={hMi | Es existiert ein Wortw, sodass die TMM bei Abbarbeitung vonw mindestens einmal im Zustandq44ist}.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstL44entscheidbar?
Anwendungsbeispiele (7)
Beispiel 7
Es seiLD={hMi |M entscheidet die Diagonalsprache}.
Dann istLD =L(S)f¨urS ={fD}wobei
fD(w) =
(1 wennw ∈D 0 sonst.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨ Aber: Diese Sprache ist entscheidbar, denn LD ={}.
S={fD} R
BuK/WS 2017 VL-07: Satz von Rice 35/37
Anwendungsbeispiele (7)
Beispiel 7
Es seiLD={hMi |M entscheidet die Diagonalsprache}.
Dann istLD =L(S)f¨urS ={fD}wobei
fD(w) =
(1 wennw ∈D 0 sonst.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨ Aber: Diese Sprache ist entscheidbar, denn LD ={}.
S={fD} R
Anwendungsbeispiele (7)
Beispiel 7
Es seiLD={hMi |M entscheidet die Diagonalsprache}.
Dann istLD =L(S)f¨urS ={fD}wobei
fD(w) =
(1 wennw ∈D 0 sonst.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨
Aber: Diese Sprache ist entscheidbar, denn LD ={}.
S={fD} R
BuK/WS 2017 VL-07: Satz von Rice 35/37
Anwendungsbeispiele (7)
Beispiel 7
Es seiLD={hMi |M entscheidet die Diagonalsprache}.
Dann istLD =L(S)f¨urS ={fD}wobei
fD(w) =
(1 wennw ∈D 0 sonst.
Uber diese Sprache sagt der Satz von Rice nichts aus!¨ Aber: Diese Sprache ist entscheidbar, denn LD ={}.
S={fD} R
Noch einmal: Das Collatz Problem
Die Collatz’sche Iterationsgleichung lautet:
x ←
(x/2 wennx gerade 3x+1 wennx ungerade
Collatz Problem
Erreicht die Collatz’sche Iteration von jedem nat¨urlichen Startwertx aus irgendwann einmal die Zahlx=1?
Das Collatz-Problem ist einekonkrete Instanzdes totalen Halteproblems. Wir wissen nicht, ob diese Instanz eineJa- oder eineNein-Instanz ist. (Paul Erd¨os: “Mathematics may not be ready for such problems.”) Der Satz von Rice ist f¨urkonkreteProbleminstanzen nutzlos.
BuK/WS 2017 VL-07: Satz von Rice 36/37
Noch einmal: Das Collatz Problem
Die Collatz’sche Iterationsgleichung lautet:
x ←
(x/2 wennx gerade 3x+1 wennx ungerade
Collatz Problem
Erreicht die Collatz’sche Iteration von jedem nat¨urlichen Startwertx aus irgendwann einmal die Zahlx=1?
Das Collatz-Problem ist einekonkrete Instanzdes totalen Halteproblems.
Wir wissen nicht, ob diese Instanz eineJa- oder eineNein-Instanz ist.
(Paul Erd¨os: “Mathematics may not be ready for such problems.”) Der Satz von Rice ist f¨urkonkreteProbleminstanzen nutzlos.
Organisatorisches
• November 9: Keine Vorlesung (Fachschaftsversammlung)
• N¨achste Vorlesung:
Mittwoch, November 15, 14:15–15:45 Uhr, Roter H¨orsaal
• Webseite:
http://algo.rwth-aachen.de/Lehre/WS1718/BuK.php
BuK/WS 2017 VL-07: Satz von Rice 37/37